з_ * * лда TYPE INSTRUCTIONS. ста IS HANDLED AS A SPECIAL CASE * лдатыпе ═ста═опцоде ═йср═реадарг ═лдь═аргтыпе ═лда═лдатаб,ьЮ;цORRECTIONS TO BASE OPCODE ═бми═:ерр ═лдь═мленЮ;фIRST CHECK IMMEDIATE ═цмп═#$09 ═бея═:сть ═лдь═#1Ю;ARG LENGTH ═цмп═#$0дЮ;ABS MIGHT CHANGE IT ═бея═:абс ═цмп═#$1дЮ;SAME FOR ABS,X ═бея═:абс ═цмп═#$19Ю;AND ABS,Y IS ALWAYS 2 BYTES ═бне═:оут ═лдь═#2 :оут═цпь═аргленЮ;мAKE SURE ARGUMENT ISN'T LARGER ═бцц═:еррЮ;THAN POSSIBLE E.G. лда ($1234) :сть═сть═темп ═ора═опцоде ═цмп═#$89Ю;тHIS WOULD BE ста # ═бея═:ерр ═ймп═пцоде :абс═лдь═аргленЮ;LOW NYBBLE IS 5, д, OR ф ═цпь═#2 ═бея═:оут ═анд═#$ф5Ю;ZP -- TAKES 0д -> 05 ═цпь═#1 ═бея═:оут ═ора═#$0ф ═лдь═#03Ю;йUUUUUST IN CASE! ═бне═:оут :ерр═лда═#бадмодеЮ;иLLEGAL ADDRESSING MODE ═ста═еррор ═ртс * аRGUMENT TYPES: * 0 = NO ARG 1 = IMMEDIATE 2 = ABSOLUTE * 3 = ABS,X 4 = ABS,Y 5 = ABS,S * 6 = ABS,ABS * 7 = (ZP) 8 = (ZP),Y 9 = (ZP,X) * 10 = (ZP,S),Y 11= [ZP] 12 = [ZP],Y * * оPCODES ARE CONSTRUCTED BY ораING BELOW WITH "BASE" * OPCODE. хIGH BIT SET MEANS ILLEGAL ADDRESSING MODE. * лдатаб═дфб═$фф,$09,$0д,$1д,$19,$03 ═дфб═$фф,$12,$11,$01,$13,$07,$17 * * йср INSTRUCTION * ийср ═йср═реадарг ═лдь═аргтыпе ═цпь═#2Ю;ABS ═бне═:инд ═лда═#$22Ю;йср LONG ═лдь═арглен ═цпь═#3 ═бея═:оут ═лда═#$20 :ь2═лдь═#2 :оут═сть═темп ═ймп═пцоде :инд═лда═#$фц ═цпь═#9Ю;йср (ADDR,X) ═бея═:ь2 :ерр═лда═#бадмодеЮ;иLLEGAL ADDRESSING MODE ═ста═еррор ═ртс * иMPLIED INSTRUCTIONS * ... ARE HANDLED AUTOMATICALLY! * асл TYPE INSTRUCTIONS * аLSO бит, лдь, лды ибит аслтыпе ═ста═опцоде ═пха ═йср═реадарг ═пла ═лдь═аргтыпе ═бея═:ацц ═деьЮ;IMMED -- бит лдь лды ONLY ═бея═:бит ═деьЮ;ZP OR ADDR ═бея═:аддр ═деьЮ;ZP,X OR ADDR,X ═бне═:зпы ═цмп═#$а2Ю;лдь -> ERROR ═бне═:зпь :зпы═деьЮ;ZP,Y OR ADDR,Y ═бне═:ерр ═цмп═#$а2Ю;лдь ONLY ═бне═:ерр ═лда═#$16 ═дфб═$2ц :зпь═лда═#$14Ю;ZP,X ═дфб═$2ц :аддр═лда═#$04Ю;ZP ═лдь═арглен ═сть═темп ═деь ═бея═:ора ═деь ═бне═:еррЮ;2 BYTES MAX ═ора═#$0ц :ора═ора═опцоде :ймп═ймп═пцоде :ацц═сть═темп ═лда═#$0а ═лдь═опцоде ═бми═:децЮ;дец AND инц HAVE DIFFERENT FORM ═цпь═#$20Ю;бит ═бне═:ора ═бея═:ерр :дец ═цпь═#$ц0Ю;лдь AND лды < $ц0 ═бцц═:ерр ═лда═#$1а ═цпь═#$е0Ю;инц ═бцс═:ймп ═лда═#$3а ═бне═:ймп :бит═лдь═ьлен ═лда═опцоде ═бпл═:ц1 ═сть═темп ═цмп═#$ц0Ю;лдь лды CHECK ═бцц═:ймп ═бцс═:еррЮ;инц/дец :ц1═лдь═млен ═сть═темп ═цмп═#$20Ю;бит ═бне═:ерр ═лда═#$89 ═бея═:ймп :ерр═лда═#бадмодеЮ;иLLEGAL ADDRESSING MODE ═ста═еррор ═ртс * бRANCH INSTRUCTIONS, пер лонгрел бранцх ═пха ═йср═реадарг ═пла ═ста═опцоде ═стз нумрелсЮ;дON'T OUTPUT AS рел ═лдь═аргтыпе ═цпь═#2Ю;аBS ONLY ═бне═:ерр ═деь ═сец ═анд═#$02Ю;брл/пер * ста темп ═бея═:схорт ═инь ═цлцЮ;LONG IS ARG-*-3 :схорт═лда═арг1 ═сбц═#2 ═ста═арг1 ═бцс═:ц1 ═лда═арг1+1 ═сбц═#00 ═ста═арг1+1 ═бцс═:ц1 ═дец═арг1+2 :ц1═сть═темп ═лда═арглен ═цмп═#3 ═бцс═:ерр2 ═лда═арг1 ═сец ═сбц═цодепЮ;ARG-*-2 ═ста═арг1 ═лда═арг1+1 ═сбц═цодеп+1 ═ста═арг1+1 ═лда═арг1+2 ═сбц═цодеп+2 ═ста═арг1+2 ═бея═:ок ═цмп═#$фф ═бне═:ерр2 :ок ═деьЮ;аRG LENGTH ═бне═:лонг ═йср═еьтцхецк ═лда═арг1Ю;0-$00007ф AND $фффффф-$фффф80 ONLY ═цлц ═адц═#$80Ю;+128 GIVES 0-$0000фф ═лда═арг1+1 ═адц═#00 ═бцц═:ц2 ═инц═арг1+2 :ц2═ора═арг1+2 ═бне═:ерр2 :лонг═лда═опцоде ═ймп═пцоде :ерр═лдь═#бадмоде ═дфб═$2ц :ерр2═лдь═#бадбран ═лда═еррор ═бне═:ртс ═сть═еррор :ртс═ртс * брк AND цоп CAN IN PRINCIPLE HAVE AN ARGUMENT, SO * WHAT THE HECK. ибрк ═пха ═йср═реадарг ═пла ═лдь═аргтыпе ═бея═:ймп ═цпь═#2 ═бне═:еррЮ;бIZARRE :ймп═лдь═арглен ═сть═темп ═ймп═пцоде :ерр═лдь═#бадмоде ═сть═еррор ═ртс * цпь AND цпы ицпь ═пха ═йср═реадарг ═пла ═лдь═аргтыпе ═деь ═бне═:аддр ═лдь═ьлен :ймп═сть═темп ═ймп═пцоде :аддр═деь ═бне═:ерр ═ора═#$04 ═лдь═арглен ═цпь═#1 ═бея═:ймп ═ора═#$0ц ═цпь═#2 ═бея═:ймп :ерр═лдь═#бадмоде ═сть═еррор ═ртс * гO AHEAD, AND JUUU-UMP иймп ═йср═реадарг ═лдь═аргтыпе ═цпь═#12 ═бцс═:ерр ═лда═:таб,ь ═бми═:цхк ═лдь═#2 ═цмп═#$4ц ═бне═:сть ═цпь═арглен ═бцс═:сть ═инь ═ора═#$10Ю;лONG JMP :сть═цпь═аргленЮ;E.G. (LONG) ═бцц═:ерр ═сть═темп ═ймп═пцоде :цхк═лдь═#$02 ═цмп═#$дц ═бея═:сть :ерр═лдь═#бадмоде ═сть═еррор ═ртс :таб═дфб═$фф,$фф,$4ц,$фф,$фф,$фф,$фф ═дфб═$6ц,$фф,$7ц,$фф,$дц * лONG JUMP/JSR иймл ═пха ═йср═реадарг ═пла ═лдь═аргтыпе ═цпь═#2 ═бне═ерр1 ═инь ═сть═темп ═ймп═пцоде иможе ═йср═цодеоут ═йср═реадарг ═лда═аргтыпе ═цмп═#6 ═бне═ерр1 ═лда═арг1+1 ═ора═арг1+2 ═бне═ерр1 ═лда═арг2+1 ═ора═арг2+2 ═бне═ерр1 ═лда═арг1 ═йср═цодеоут ═лда═арг2 ═ймп═цодеоут ерр1═лдь═#бадмоде ═сть═еррор ═ртс ипеа ═пха ═йср═реадарг ═пла ═лдь═аргтыпе ═цпь═#2 ═бне═ерр1 ипеа1═цпь═арглен ═бцц═ерр1 ═сть═темп ═ймп═пцоде ипеи ═пха ═йср═реадарг ═пла ═лдь═аргтыпе ═цпь═#7 ═бне═ерр1 ═лдь═#1 ═бне═ипеа1 иреп ═ста═опцоде ═йср═реадарг ═лдь═регфлаг ═бми═:цонт2 ═лда═опцоде ═цмп═#$ц2 ═бне═:сеп ═лда═арг1 ═еор═#$фф ═анд═срег ═ста═срег ═ймп═:цонт :сеп═лда═арг1 ═ора═срег ═ста═срег :цонт═йср═сетрегЮ;.а = срег :цонт2═лда═опцоде ═лдь═аргтыпе ═цпь═#1 ═бне═ерр1 ═бея═ипеа1 исть ═пха ═йср═реадарг ═пла ═лдь═аргтыпе ═цпь═#2 ═бне═:ц1 ═лдь═арглен ═цпь═#3 ═бцс═ерр2 ═цпь═#2 ═бне═:сть ═ора═#$0ц :сть═сть═темп ═ймп═пцоде :ц1═цпь═#5 ═бцс═ерр2 ═цмп═:таб1,ь ═бне═ерр2 ═ора═#$10 ═лдь═#1 ═цпь═арглен ═бея═:сть ═бне═ерр2 :таб1═дфб═00,00,00,$84,$86 истз ═йср═реадарг ═лдь═аргтыпе ═цпь═#2 ═бне═:ц1 ═лда═#$9ц ═цпь═арглен ═бея═:сть ═бцц═ерр2 ═деь ═лда═#$64 :сть═сть═темп ═ймп═пцоде :ц1═лда═#$9е ═цпь═#3 ═бне═ерр2 ═лдь═#2 ═цпь═арглен ═бея═:сть ═бцц═ерр2 ═деь ═лда═#$74 ═бне═:сть ерр2═лдь═#бадмоде ═сть═еррор ═ртс итрб ═пха ═йср═реадарг ═пла ═лдь═#2 ═цпь═аргтыпе ═бея═ерр2 ═цпь═арглен ═бея═:ц1 ═бцц═ерр2 ═деь ═дфб═$2ц :ц1═ора═#$0ц :сть═сть═темп ═ймп═пцоде * * пSEUDO-OPCODES * дфбфлаг═дфб═00 дфблен═дфб═00 Ю;дEFINE ADDRESS (.а = LENGTH) идфб═ста═дфбленЮ;дфб/да ═инц═дфбфлаг :лооп═йср реадарг ═лда═аргтыпе ═бея═ерр3 ═цмп═#3 ═бцс═ерр3 ═лда═дфблен ═ста═темп ═йср═жароут ═йср═цхкцом ═бне═:доне ═ины ═бне═:лооп :доне═дец═дфбфлаг ═ртс ерр3═лда═#бадарг ═ста═еррор ═ртс дсбыте═дфб═00 идсЮ;дEFINE STORAGE ═йср═неьтцхар ═бцц═ерр3 ═инц═дфбфлагЮ;хANDLE COMMAS SPECIAL ═лда═#00 ═ста═дсбыте ═лда═[теьтп],ы ═цмп═#'^'Ю;фILL TO END OF PAGE ═бея═:филл ═йср═реадарг ═лда═аргтыпе ═цмп #1Ю;дфбфлаг FORCE ═бне ерр3 :цхк═йср═цхкцом ═бне═:ц2 ═йср═арг2арг ═ины ═йср═реадарг ═лда═аргтыпе ═цмп #1 ═бне═ерр3 ═лда═арг1 ═ста═дсбыте ═йср═арг1арг :ц2═лда═арг1 ═ора═арг1+1 ═бея═:ртс ═инц═арг1+1 ═лдь═арг1 ═лда═дсбыте :л2═йср═цодеоут ═деь ═бне═:л2 ═дец═арг1+1 ═бне═:л2 :ртс═дец═дфбфлаг ═ртс :филл═лда═#00 ═сец ═сбц цодепЮ;нUMBER OF BYTES ═ста арг1 ═стз арг1+1 ═ины ═бне═:цхк жсаже═дфб═0,0Ю;жARIABLE TABLE POSITION иеяу ═сты═темпы ═лды═#00Ю;фIRST MAKE SURE A LABEL IS ═лда═[теьтп],ыЮ;PRESENT ═анд═#$7ф ═цмп═#32 ═бея═:ерр ═лда═жарпнтЮ;лABEL PRESENT MEANS адджар JUST ═ста═жсажеЮ;ADDED TO LIST AND жарпнт POINTS Ю;EXACTLY TO IT. ═лда═жарпнт+1 ═ста═жсаже+1 ═инц═ноеьтЮ;еьт FORBIDDEN ═лды═темпы ═йср═реадарг ═лда═аргтыпе ═цмп═#2 ═бне═:ерр2 ═лда═жсаже ═ста═жарпнт ═лда═жсаже+1 ═ста═жарпнт+1 ═сты═темпы ═йср═ромоут ═лды═#03 :л1═лда═арг1-1,ы ═ста═(жарпнт),ы ═деы ═бне═:л1 ═лда═#$феЮ;цHANGE VARIABLE TYPE ═лдь═ислабЮ;иF EQUATED TO A LABEL, ═бея═:ста ═лда═#$фдЮ;THEN SPECIAL (FOR рел) :ста═ста═(жарпнт),ы ═ймп═ромин2 :ерр═лда═#баджар ═дфб═$2ц :ерр2 ерр42═лда═#бадарг ═ста═еррор ═ртс * ент, еьт иент ═лдь═релфлаг ═бне :ерр ═сты темпы ═йср═ромоут ═ста (жарпнт)Ю;CHANGE VAR TYPE ═цмп #$е1Ю;еьт ═бне :C0 ═лда #00Ю;AND SET EXT VAL TO ZERO ═лды #01 ═ста (жарпнт),ы ═ины ═ста (жарпнт),ы ═ины ═ста (жарпнт),ы :C0═ймп ромин2 :ерр═лда═#нотрел ═ста═еррор ═ртс ирел═ста═релфлаг ═ста═цодепЮ;$010000 ═ста═цодеп+1 ═ста═дорг ═ста═дорг+1 ═лда═#$01 ═ста═цодеп+2 ═ста═дорг+2 ═лда═нбытес ═ора═нбытес+1 ═бея═:ртс ═лда═#рел1 ═ста═еррор :ртс═ртс итьт ═йср═неьтцхар ═бцц═ерр42 ═лда═[теьтп],ы ═цмп═#39Ю;SINGLE QUOTE ═бея═:ок ═цмп═#34 ═бне═ерр4 :ок═ста═темп :лооп═ины ═йср═фиьцхар ═цмп═темп ═бея═:доне ═йср═цодеоут ═цмп═#13 ═бне═:лооп ═бея═ерр6 :доне═ины :хеь═йср═цхкцомЮ;хEX BYTES MAY FOLLOW ═бне═:ртс ═ины ═йср═реадхеь ═йср═цодеоут ═лда═еррор ═бея═:хеь :ртс═ртс ирег ═йср═неьтцхар ═бцц═ерр4 ═лда═[теьтп],ы ═анд═#$5ф ═цмп═#'O' ═бея═ронофф ═инц═ноеьт ═йср═реадарг ═лдь═аргтыпе ═цпь═#1 ═бне═ерр4 ═лда═арг1 ═ста═срег сетрег═лдь═#1 ═пха ═анд═#$20 ═бне═:ц1 ═инь :ц1═сть═млен ═лдь═#1 ═пла ═анд═#$10 ═бне═:ц2 ═инь :ц2═сть═ьлен ═ртс ронофф═ины ═лда═[теьтп],ы ═анд═#$5ф ═цмп═#'N' ═бне═:офф ═лда═#00 ═ста═регфлаг :ины═ины ═ртс :офф═цмп═#'F' ═бне═ерр4 ═лда═#$фф ═ста═регфлаг ═ины ═лда═[теьтп],ыЮ;мIGHT AS WELL CHECK... ═цмп═#'F' ═бея═:ины ерр4═лда═#бадарг ═дфб═$2ц ерр5═лда═#бадоп ═дфб═$2ц ерр6═лда═#нояуоте ═ста═еррор ═ртс иорг2═ины ═йср═неьтцхар ═бцс═:цонт ═деы ═бне═реорг :цонт═цмп═#'=' ═бне═ерр5 ═ины иорг ═йср═реадарг ═лдь═аргтыпе ═бея═реорг ═цпь═#2 ═бне═ерр4 :лооп═лда═арг1,ь ═ста═цодеп,ь ═деь ═бпл═:лооп ═лда═нбытесЮ;иF FIRST орг THEN SET дорг ═ора═нбытес+1 ═бне═:ртс ═лда═релфлагЮ;WHUPS ═бея═:ерр ═лдь═#2 :л2═лда═цодеп,ь ═ста═дорг,ь ═деь ═бпл═:л2 :ртс═ртс :ерр═лда═#нотрел ═ста═еррор ═ртс реорг═лда═дорг ═цлц ═адц═нбытес ═ста═цодеп ═лда═дорг+1 ═адц═нбытес+1 ═ста═цодеп+1 ═лда═дорг+2 ═адц═#00 ═ста═цодеп+2 ═ртс ихеь ═йср═неьтцхар :лооп═йср═реадхеь ═бцс═:ртс ═йср═цодеоут ═йср═термцхар ═бне═:лооп :ртс═ртс * рEAD A HEX BYTE * оN EXIT: ц SET -> ERROR реадхеь ═лда═#00 ═ста═темп ═йср═:реад ═бцс═:ртсЮ;еRROR ═асл ═асл ═асл ═асл ═ста═темп :реад═йср═гетцхар ═сец ═сбц═#48 ═цмп═#10 ═бцц═:ц1 ═сбц═#7 :ц1═цмп═#16 ═бцц═:ртс ═лда═#баднум ═ста═еррор ═деы :ртс═ора═темп ═ины ═ртс * цONDITIONAL ASSEMBLY INSTRUCTIONS идо ═инц═ноеьт ═йср═реадарг ═лдь═аргтыпе ═цпь═#2Ю;ABS ═бне═доерр ═лда═арг1 ═ора═арг1+1 ═ора═арг1+2 ═ста═дофлаг ═ртс иелсе ═лда═дофлаг ═бне═:ц1 ═лда═#$фф :ц1═еор═дофлаг ═ста═дофлаг ═лда═[теьтп],ы ═цмп═#$0д ═бея═:ртс ═ины :ртс═ртс доремеЮ;цHECK FOR елсе OR фин ═йср неьтцхар ═бея ифин ═бцц ифинртс ═йср═гетцхар ═цмп═#'E' ═бне═:фин ═ины ═йср═гетцхар ═цмп═#'L' ═бне═:неьт ═ины ═йср═гетцхар ═цмп═#'S' ═бне═:неьт ═ины ═бне═иелсе :неьт═ймп═неьтлине :фин═цмп═#'F' ═бне═:неьт ═ины ═йср═гетцхар ═цмп═#'I' ═бне═:неьт ═ины ═йср═гетцхар ═цмп═#'N' ═бне═:неьт ═ины ифин ═лда═#$фф ═ста═дофлаг ифинртс═ртс доерр═лда═#бадарг ═ста═еррор ═ртс * дISK I/O OPS невфиле═дфб 00 олдцурлине ═да═00 олдтеьтп═дла 0 филенаме═дс═18 * * рEAD FILENAME, DEVICE * гетнаме ═йср═неьтцхар ═бцц доерр ═цмп═#39Ю;' ═бея═:цонт ═цмп═#34 ═бне═доерр :цонт═ста═темп ═лдь #00 :л1═ины ═лда═[теьтп],ы ═ста═филенаме,ь ═цмп═темп ═бея═:оут ═цмп═#13 ═бне :инь ═брл :ерр :инь═инь ═цпь═#16 ═бне═:л1 :оут ═йср цхкдежЮ;цHECK FOR DEVICE ═ртс :ерр═лда #нояуоте ═ста еррор ═ртс * пут ипут ═лда филеопен ═бне :ц0 ═ймп :ерр3 :ц0═йср гетнаме ═тыа ═цлц ═адц теьтп ═ста олдтеьтп ═лда теьтп+1 ═адц #00 ═ста олдтеьтп+1 ═лда теьтп+2 ═адц #00 ═ста олдтеьтп+2 ═лда цурлине ═ста олдцурлине ═лда цурлине+1 ═ста олдцурлине+1 ═стз цурлине ═стз цурлине+1 ═тьаЮ;лENGTH ═лдь═#<филенаме ═лды═#>филенаме ═йср═сетнам ═лдь═ластдеж ═лда═#2 ═лды #$фф ═йср сетлфс ═лдь теьтенд ═лды теьтенд+1 ═лда теьтенд+2 ═ста $б0 ═лда #00 ═йср лоад ═бцс дерр * йср опен * бцс дерр ═лда═#00 ═ста═филеопен ═ста═атеоф ═ста сетстуфф ═инц невфиле ═лда═$ае ═ста═теьтп ═лда═$аф ═ста═теьтп+1 ═лда═$б0 ═ста═теьтп+2 ═лда═#00 ═ста═[теьтп] ═лда теьтенд ═ста теьтп ═лда теьтенд+1 ═ста теьтп+1 ═лда теьтенд+2 ═ста теьтп+2 ═лды #00 * йср гетбыте ;аDDRESS * йср гетбыте ═ртс :ерр4═лда═#путмем ═дфб═$2ц :ерр3═лда═#путон ═дфб═$2ц :ерр═лда═#нояуоте ═дфб $2ц дерр═лда═#дискерр ═ста═еррор дртс═ртс * * иNSERT BINARY FILE FROM DISK * блен═дла 00 ибин ═йср гетнаме ═тьаЮ;лENGTH ═лдь═#<филенаме ═лды═#>филенаме ═йср═сетнам ═лдь═ластдеж ═лда═#2 ═лды #$фф ═йср сетлфс ═лдь цод ═лды цод+1 ═лда цод+2 ═ста $б0 ═лда #00 ═йср лоад ═бцс дерр ═лда $ае ═сец ═сбц цодЮ;лENGTH ═ста блен ═лда $аф ═сбц цод+1 ═ста блен+1 ═лда $б0 ═сбц цод+2 ═ста блен+2 ═лда блен ═цлц ═адц цодеп ═ста цодеп ═лда блен+1 ═адц цодеп+1 ═ста цодеп+1 ═лда блен+2 ═адц цодеп+2 ═ста цодеп+2 ═лда блен ═цлц ═адц нбытес ═ста нбытес ═лда блен+1 ═адц нбытес+1 ═ста нбытес+1 ═лда блен+2 ═адц нбытес+2 ═ста нбытес+2 ═лда $ае ═ста цод ═лда $аф ═ста цод+1 ═лда $б0 ═ста цод+2 ═лды темпы ═ртс ***************** ═до═0 * рEAD A BYTE FROM DISK гетбыте ═лдь #2 ═йср цхкин ═бцс цхкерр ═йср гетин цхкерр═лдь $90 ═бея═дртс ═цпь═#64 ═бея═дртс ═пла ═пла ═йср═цлрцхн ═йср═гетерр ═ймп дерр ═фин ********** * цHECK FOR DEVICE NUMBER цхкдеж═ины ═йср═цхкцом ═бне═:доне ═сть═темпь ═ины ═инц═ноеьт ═йср═реадарг ═лдь═темпь ═лда═аргтыпе ═цмп═#2 ═бне═:ерр ═лда═арг1 ═ста═ластдеж :доне═сты═темпы ═ртс :ерр═лда═#бадарг ═ста═еррор ═ртс * рEDIRECT OUTPUT ипрт ═лда пасс ═бне═:неьт ═йср═цлосепрт ═йср═неьтцхар ═сты═темпы ═бцц═:принтер ═цмп═#34 ═бея═:диск ═цмп═#39 ═бне═:ерр2 :диск═ста═темп ═лдь═#00 :лооп═ины ═лда═[теьтп],ы ═ста═буффер,ь ═бея═:ерр ═цмп═#13 ═бея═:ерр ═цмп═темп ═бея═:цонт ═инь ═бпл═:лооп :ерр2═лда═#бадарг ═дфб═$2ц :ерр3═лда═#дискерр ═дфб═$2ц :ерр═лда═#нояуоте ═ста═еррор ═ртс :неьт═йср═неьтлине ═деы ═ртс :цонт═йср═цхкдеж ═лды═#03 :л2═лда═:стр,ы ═ста═буффер,ь ═инь ═деы ═бпл═:л2 ═тьаЮ;лENGTH ═лдь═#<буффер ═лды═#>буффер ═йср═сетнам ═лдь═ластдеж ═дфб═$2ц :принтер═лдь═#4 ═сть═темп ═лда═#4 ═таы ═лдь═темп ═йср═сетлфс ═йср═опен ═бцс═:ерр3 ═лда═темп ═цмп═#4 ═бея═:ок ═йср═опенеррЮ;цHECK FOR DISK ERRORS ═бцс═:ухох ═йср═гетин ═ста═темп ═йср═гетин ═ора═темп ═цмп═#'0' ═бне═:ухох :ок═лдь #4 ═йср цхкоут ═лды═темпы ═ртс :ухох═йср═гетин ═йср═гетерр2 ═ймп═:ерр3 :стр═тьт═'W,S,' * лINKER илинк ═инц═линкфлаг ═ины ═йср═реадарг ═лдь═аргтыпе ═цпь═#2Ю;ABS ═бне═:ерр ═лда═арг1Ю;лOAD ADDRESS ═ста═дорг ═лда═арг1+1 ═ста═дорг+1 ═лда═арг1+2 ═ста═дорг+2 ═йср═линк ═бцц═:ртс ═лда═#линкерр ═ста═еррор :ртс═ртс :ерр═ймп доерр