"|"******************************************************************************" -80 128 - . 9/86 G("******************************************************************************n2" <7,(27)"P"(27)"Q"(27)"@"(13)(14)""(27)"C""FAST"(13)"LIST"F5,(27)"Q"(13):1,(27)"K":4,"OPEN15,8,15,"(34):6,(34)":CLOSE15"(13)LP2,(27)(79)"͒"(34)(20): HANDY SHIFT-MZ""(14):%:6,1: CD$(100,6),CD(100,4),AD(100):CT1d"":B$"RUCE OWDEN EURISTICS":M$B$:4940:"":M$B$:4940:"":M$B$:4940:"":M$B$:4940Cn"":B$"PRESENTS":M$B$:4940:"":M$B$:4940:"":M$B$:4940:""x"":M$"A WRITTEN IN ,":4940:M$"TO THE 80 FROM 128 .":4940:""X M$"(LEASE NOTE THAT WHILE THE CODE MAY BE ASSEMBLED, SAVED AND LOADED [8,1],":4940:M$"EXTRA PROGRAMMING WILL BE REQUIRED TO ACTIVATE THE 80)." 4940:"":M$" AND ARE INVITED TO IMPROVE UPON THIS PROGRAM AND THEIR NAME":4940-!M$"TO THE LIST OF PROGRAMMERS AT THE END OF THIS CODE!":4940:"":M$"RESS ANY EY TO ONTINUE": 4940A!A$:A$""160!"":M$"LEASE INDICATE A NEW FILE OR DISK OPERATION BY Ε OR ĕ, RESPECTIVELY":4940!A$:A$"N" A$"D"180!A$"D"CT0:5000T""":M$"LEASE ENTER THE HEXADECIMAL START ADDRESS FOR THIS ASSEMBLY:":4940: SA$:(SA$,1)"$" SA$(SA$,(SA$)1)""":M$"(LL NUMBERS AND ADDRESSES USED BY THIS PROGRAM MUST BE HEX)":4940: 3:"":420#"---------------------------------------------------------------------/#"ANDY-ANDY AND NIFTY STUFF!Z# 4940: ADDRESS FOR CENTERING ROUTINE# 4970: NON-VALID MNEMONIC MESSAGE# 420: ENTRY OF NEW INSTRUCTION# 4330: START OF PARSING ACTIVITY#4890: PROGRAM LISTER SUBROUTINE$$""OST SIGNIFICANT VARIABLES BEING USED:r$, CD$ AND CD ARE THE CODE DATA ARRAYS, WHERE CD HANDLES THE ACTUAL VALUES$6 CT IS A COUNT OF PLACE IN THE ARRAY, CONSIDER IT A SUBSCRIPT$@ I$ HOLDS THE LAST LINE OF CODE ENTERED %J I1$ AND I2$ HOLD THE MNEMONIC AND OPERAND, RESPECTIVELYF%T"PECIAL NOTES AND REMINDERS:%^ THE CD(X,Y) ARRAY CONTAINS -999S WHERE THERE ARE LESS THAN 4 BYTES%h "AVE OUTINE...&rB$(2)"Z80BASM":B$(1)B$(2)".BK":(14):X12::"CRATCHING ";B$(X):(B$(X)):"": (B$(2)"*")r&|"AVING ";B$(X):(B$(X)""):"ERIFYING ";B$(X):(B$(X)):"": (B$(2)"*"):""::&"------------------------------------------------------------------------------:'"    EDICATED TO A BEAUTIFUL WOMAN, ͕ARGIE •OWDEN    '"-------------------------------------------------------------------------------(YY0:X14:CD(CT,X)999:CD$(CT,X)""::I$"":(27)"G"(14)"NSTRUCTION (USE A ^ TO END, \ FOR OOPS): "(142);/(A$:A$"^"CTCT1:5000V(A$"\"(27)"J"(27)"Q";:420h(A$(13)(A$;"";:(A$)192(A$)219A$((A$)128)(A$"$"430(I$I$A$:430((" *"((I$,1)(32)I$(I$,(I$)1):510$)(I$,1)(32)I$(I$,(I$)1):520)I(I$," "): I0 (I$)4 4970:"":M$"HERE MUST BE A BETWEEN THE MNEMONIC AND OPERAND! OOL!":4940:420)I0I$I$" -":510: THUS COMPLETING THE PREP FOR LONE MNEMONICS)*&I1$(I$,I1):I2$(I$,(I$)I): NOW WE HAVE THE TRUE MNEMONICV*0(I1$,1)(32)I1$(I1$,(I1$)1):560*:(I1$,1)(32)I1$(I1$,(I1$)1):570*D(I2$,1)(32)I2$(I2$,(I2$)1):580*N(I2$,1)(32)I2$(I2$,(I2$)1):590 +XXX((I$,1))64:XX1XX24 4970:420_+b"* XX CONTAINS THE POSITIONAL VALUE OF THE FIRST LETTER OF THE MNEMONIC *+l XX 650,680,710,740,770,790,810,840,870,900,920,950,970,1000,1030,1060,1080,1110,1140,1160,1180,1200,1220,1250,v --------------------------------------------------/, THIS IS THE FIRST LETTER A?,1440:4260x, --------------------------------------------------, THIS IS THE FIRST LETTER B,1560:4260, --------------------------------------------------- THIS IS THE FIRST LETTER C-1750:4260L- --------------------------------------------------m- THIS IS THE FIRST LETTER D}-1930:4260- --------------------------------------------------- THIS IS THE FIRST LETTER E-2040:4260 .  --------------------------------------------------8.4970:420: NO F'Sq.  --------------------------------------------------.*4970:420: NO G'S.4 --------------------------------------------------.> THIS IS THE FIRST LETTER H.H2160:4260,/R --------------------------------------------------M/\ THIS IS THE FIRST LETTER I]/f2200:4260/p --------------------------------------------------/z THIS IS THE FIRST LETTER J/2370:42600 --------------------------------------------------04970:420: NO K'SQ0 --------------------------------------------------r0 THIS IS THE FIRST LETTER L02460:42600 --------------------------------------------------04970:420: NO M'S 1 ---------------------------------------------------1 THIS IS THE FIRST LETTER N=12860:4260v1 --------------------------------------------------1 THIS IS THE FIRST LETTER O12920:42601 --------------------------------------------------2 THIS IS THE FIRST LETTER P2$3060:4260J2. --------------------------------------------------b284970:420: NO Q'S2B --------------------------------------------------2L THIS IS THE FIRST LETTER R2V3140:42603` --------------------------------------------------&3j THIS IS THE FIRST LETTER S63t3610:4260o3~ --------------------------------------------------34970:420: NO T'S3 --------------------------------------------------34970:420: NO U'S4 --------------------------------------------------)44970:420: NO V'Sb4 --------------------------------------------------z44970:420: NO W'S4 --------------------------------------------------4 THIS IS THE FIRST LETTER X44010:426005"-----------------------------------------------------------------{5"HE FOLLOWING DATA TELLS THE PROGRAM EVERYTHING IT NEEDS TO KNOW5"ABOUT LEGITIMATE Z-80 INSTRUCTIONS5  THE FORM OF ENTRY IS5 NUMBER OF MNEMONICS UNDER ALPHABETIC SECTION"6 MNEMONIC : NUMBER OF OPERAND VARIANTSn6( VARIANT ARGUMENTS : HEXADECIMAL NUMERIC CODE WITH $ AS END DESIGNATORt62:6< THE OPERANDS ARE STRAIGHT OPERANDS USING @ OR & TO COMPARE6F FOR HEXADECIMAL NUMERIC ARGUMENTS OF EIGHT BITS AND \ TO COMPARE47P FOR HEXADECIMAL NUMERIC ARGUMENTS OF SIXTEEN BITS:7Z:g7d NULL OPERANDS ARE REPRESENTED BY A "-"7n THE END OF EVERY MNEMONIC REGION IS DESIGNATED BY A "%"7x THE END OF EVERY ALPHABETIC REGION IS DESIGNATED BY A "#"18"-----------------------------------------------------------------R8" THE A'SX8:8 3,ADC,15,"A,(HL)",8E,$,"A,(IX+@)",DD,8E,@,$,"A,(IY+@)",FD,8E,@,$,"A,A",8F,$,"A,B",88,$,"A,C",89,$,"A,D",8A,$,"A,E",8B,$,"A,H",8C,$,"A,L",8D,$A9 "A,@",CE,@,$,"HL,BC",ED,4A,$,"HL,DE",ED,5A,$,"HL,HL",ED,6A,$,"HL,SP",ED,7A,$,%G9:9 ADD,23,"A,(HL)",86,$,"A,(IX+@)",DD,86,@,$,"A,(IY+@)",FD,86,@,$,"A,A",87,$,"A,B",80,$,"A,C",81,$,"A,D",82,$,"A,E",83,$,"A,H",84,$,"A,L",85,$#: "A,@",C6,@,$,"HL,BC",09,4A,$,"HL,DE",19,$,"HL,HL",29,$,"HL,SP",39,$i: "IX,BC",DD,09,$,"IX,DE",DD,19,$,"IX,IX",DD,29,$,"IX,SP",DD,39,$: "IY,BC",FD,09,$,"IY,DE",FD,19,$,"IY,IY",FD,29,$,"IY,SP",FD,39,$,%::.; AND,11,(HL),A6,$,(IX+@),DD,A6,@,$,(IY+@),FD,A6,@,$,A,A7,$,B,A0,$,C,A1,$,D,A2,$,E,A3,$,H,A4,$,L,A5,$,@,E6,@,$,%,#g; --------------------------------------------------;" THE B'S;:; 1,BIT,80,"0,(HL)",CB,46,$,"0,(IX+@)",DD,CB,@,46,$,"0,(IY+@)",FD,CB,@,46,$F<" "0,A",CB,47,$,"0,B",CB,40,$,"0,C",CB,41,$,"0,D",CB,42,$,"0,E",CB,43,$,"0,H",CB,44,$,"0,L",CB,45,$<, "1,(HL)",CB,4E,$,"1,(IX+@)",DD,CB,@,4E,$,"1,(IY+@)",FD,CB,@,4E,$<6 "1,A",CB,4F,$,"1,B",CB,48,$,"1,C",CB,49,$,"1,D",CB,4A,$,"1,E",CB,4B,$,"1,H",CB,4C,$,"1,L",CB,4D,$<=@ "2,(HL)",CB,56,$,"2,(IX+@)",DD,CB,@,56,$,"2,(IY+@)",FD,CB,@,56,$=J "2,A",CB,57,$,"2,B",CB,50,$,"2,C",CB,51,$,"2,D",CB,52,$,"2,E",CB,53,$,"2,H",CB,54,$,"2,L",CB,55,$=T "3,(HL)",CB,5E,$,"3,(IX+@)",DD,CB,@,5E,$,"3,(IY+@)",FD,CB,@,5E,$S>^ "3,A",CB,5F,$,"3,B",CB,58,$,"3,C",CB,59,$,"3,D",CB,5A,$,"3,E",CB,5B,$,"3,H",CB,5C,$,"3,L",CB,5D,$>h "4,(HL)",CB,66,$,"4,(IX+@)",DD,CB,@,66,$,"4,(IY+@)",FD,CB,@,66,$?r "4,A",CB,67,$,"4,B",CB,60,$,"4,C",CB,61,$,"4,D",CB,62,$,"4,E",CB,63,$,"4,H",CB,64,$,"4,L",CB,65,$I?| "5,(HL)",CB,6E,$,"5,(IX+@)",DD,CB,@,6E,$,"5,(IY+@)",FD,CB,@,6E,$? "5,A",CB,6F,$,"5,B",CB,68,$,"5,C",CB,69,$,"5,D",CB,6A,$,"5,E",CB,6B,$,"5,H",CB,6C,$,"5,L",CB,6D,$? "6,(HL)",CB,76,$,"6,(IX+@)",DD,CB,@,76,$,"6,(IY+@)",FD,CB,@,76,$`@ "6,A",CB,77,$,"6,B",CB,70,$,"6,C",CB,71,$,"6,D",CB,72,$,"6,E",CB,73,$,"6,H",CB,74,$,"6,L",CB,75,$@ "7,(HL)",CB,7E,$,"7,(IX+@)",DD,CB,@,7E,$,"7,(IY+@)",FD,CB,@,7E,$A "7,A",CB,7F,$,"7,B",CB,78,$,"7,C",CB,79,$,"7,D",CB,7A,$,"7,E",CB,7B,$,"7,H",CB,7C,$,"7,L",CB,7D,$,%,#LA --------------------------------------------------mA" THE C'SsA:A 8,CALL,9,"C,\",DC,\,$,"M,\",FC,\,$,"NC,\",D4,\,$,\,CD,\,$,"NZ,\",C4,\,$,"P,\",F4,\,$,"PE,\",EC,\,$,"PO,\",E4,\,$,"Z,\",CC,\,$,%A:B CCF,1,-,3F,$,%B:B CP,11,(HL),BE,$,(IX+@),DD,BE,@,$,(IY+@),FD,BE,@,$,A,BF,$,B,B8,$,C,B9,$,D,BA,$,E,BB,$,H,BC,$,L,BD,$,@,FE,@,$,%B:B CPD,1,-,ED,A9,$,%B:B& CPDR,1,-,ED,B9,$,%B0:B: CPI,1,-,ED,A1,$,%BD:CN CPIR,1,-,ED,B1,$,%CX:%Cb CPL,1,-,2F,$,%,#^Cl --------------------------------------------------Cv" THE D'SC:C 4,DAA,1,-,27,$,%C:3D DEC,16,(HL),35,$,(IX+@),DD,35,@,$,(IY+@),FD,35,@,$,A,3D,$,B,05,$,BC,0B,$,C,0D,$,D,15,$,DE,1B,$,E,1D,$,H,25,$,HL,2B,$,IX,DD,2B,$,IY,FD,2B,$JD L,2D,$,SP,3B,$,%PD:dD DI,1,-,F3,$,%jD:D DJNZ,1,@,10,@,$,%,#D --------------------------------------------------D" THE E'SD:D 3,EI,1,-,FB,$,%E:[E  EX,5,"(SP),HL",E3,$,"(SP),IX",DD,E3,$,"(SP),IY",FD,E3,$,"AF,AF'",08,$,"DE,HL",EB,$,%aE:xE  EXX,1,-,D9,$,%,#E* --------------------------------------------------E4 NO F MNEMONICSE> --------------------------------------------------FH NO G MNEMONICSMFR --------------------------------------------------nF\" THE H'StFf:Fp 1,HALT,1,-,76,$,%,#Fz --------------------------------------------------F" THE I'SF:G 7,IM,3,0,ED,46,$,1,ED,56,$,2,ED,5E,$,%!G:G IN,8,"A,(C)",ED,78,$,"A,(@)",DB,@,$,"B,(C)",ED,40,$,"C,(C)",ED,48,$,"D,(C)",ED,50,$,"E,(C)",ED,58,$,"H,(C)",ED,60,$,"L,(C)",ED,68,$,%G:DH INC,16,(HL),34,$,(IX+@),DD,34,@,$,(IY+@),FD,34,@,$,A,3C,$,B,04,$,BC,03,$,C,0C,$,D,14,$,DE,13,$,E,1C,$,H,24,$,HL,23,$,IX,DD,23,$,IY,FD,23,$[H L,2C,$,SP,33,$,%aH:yH IND,1,-,ED,AA,$,%H:H INDR,1,-,ED,BA,$,%H:H INI,1,-,ED,A2,$,%H :H INIR,1,-,ED,B2,$,%,#I$ --------------------------------------------------1I. " THE J'S7I8 :IB 2,JP,12,(HL),E9,$,(IX),DD,E9,$,(IY),FD,E9,$,"C,\",DA,\,$,"M,\",FA,\,$,"NC,\",D2,\,$,\,C3,\,$,"NZ,\",C2,\,$IL "P,\",F2,\,$,"PE,\",EA,\,$,"PO,\",E2,\,$,"Z,\",CA,\,$,%IV ::J` JR,5,"C,@",38,@,$,@,18,@,$,"NC,@",30,@,$,"NZ,@",20,@,$,"Z,@",28,@,$,%,#sJj --------------------------------------------------Jt NO K MNEMONICSJ~ --------------------------------------------------J " THE L'SJ :K 5,LD,132,"(BC),A",02,$,"(DE),A",12,$K "(HL),A",77,$,"(HL),B",70,$,"(HL),C",71,$,"(HL),D",72,$,"(HL),E",73,$,"(HL),H",74,$,"(HL),L",75,$,"(HL),@",36,@,$K "(IX+@),A",DD,77,@,$,"(IY+@),A",FD,77,@,$K "(IX+@),B",DD,70,@,$,"(IY+@),B",FD,70,@,$L "(IX+@),C",DD,71,@,$,"(IY+@),A",FD,71,@,$KL "(IX+@),D",DD,72,@,$,"(IY+@),D",FD,72,@,${L "(IX+@),E",DD,73,@,$,"(IY+@),E",FD,73,@,$L "(IX+@),H",DD,74,@,$,"(IY+@),H",FD,74,@,$L "(IX+@),L",DD,75,@,$,"(IY+@),L",FD,75,@,$M "(IX+@),&",DD,36,@,&,$,"(IY+@),&",FD,36,@,&,$M "(\),A",32,\,$,"(\),BC",ED,43,\,$,"(\),DE",ED,53,\,$,"(\),HL",22,\,$,"(\),IX",DD,22,\,$,"(\),IY",FD,22,\,$,"(\),SP",ED,73,\,$M "A,(BC)",0A,$,"A,(DE)",1A,$,"A,(HL)",7E,$,"A,(IX+@)",DD,7E,@,$,"A,(IY+@)",FD,7E,@,$iN "A,A",7F,$,"A,B",78,$,"A,C",79,$,"A,D",7A,$,"A,E",7B,$,"A,H",7C,$,"A,I",ED,57,$,"A,L",7D,$,"A,@",3E,@,$,"A,R",ED,5F,$N "B,(HL)",46,$,"B,(IX+@)",DD,46,@,$,"B,(IY+@)",FD,46,@,$(O( "B,A",47,$,"B,B",40,$,"B,C",41,$,"B,D",42,$,"B,E",43,$,"B,H",44,$,"B,L",45,$,"B,@",06,@,$,"BC,(\)",ED,4B,\,$,"BC,\",01,\,$fO2 "C,(HL)",4E,$,"C,(IX+@)",DD,4E,@,$,"C,(IY+@)",4E,46,@,$O< "C,A",4F,$,"C,B",48,$,"C,C",49,$,"C,D",4A,$,"C,E",4B,$,"C,H",4C,$,"C,L",4D,$,"C,@",0E,@,$PF "D,(HL)",56,$,"D,(IX+@)",DD,56,@,$,"D,(IY+@)",FD,56,@,$PP "D,A",57,$,"D,B",50,$,"D,C",51,$,"D,D",52,$,"D,E",53,$,"D,H",54,$,"D,L",55,$,"D,@",16,@,$,"DE,(\)",ED,5B,\,$,"DE,\",11,\,$PZ "E,(HL)",5E,$,"E,(IX+@)",DD,5E,@,$,"E,(IY+@)",FD,5E,@,$#Qd "E,A",5F,$,"E,B",58,$,"E,C",59,$,"E,D",5A,$,"E,E",5B,$,"E,H",5C,$,"E,L",5D,$,"E,@",1E,@,$aQn "H,(HL)",66,$,"H,(IX+@)",DD,66,@,$,"H,(IY+@)",FD,66,@,$Qx "H,A",67,$,"H,B",60,$,"H,C",61,$,"H,D",62,$,"H,E",63,$,"H,H",64,$,"H,L",65,$,"H,@",26,@,$,"HL,(\)",2A,\,$,"HL,\",21,\,$;R "I,A",ED,47,$,"IX,(\)",DD,2A,\,$,"IX,\",DD,21,\,$,"IY,(\)",FD,2A,\,$,"IY,\",FD,21,\,$yR "L,(HL)",6E,$,"L,(IX+@)",DD,6E,@,$,"L,(IY+@)",FD,6E,@,$R "L,A",6F,$,"L,B",68,$,"L,C",69,$,"L,D",6A,$,"L,E",6B,$,"L,H",6C,$,"L,L",6D,$,"L,@",2E,@,$ RLA,1,-,17,$,%^H :y_R RLC,10,"(HL)",CB,06,$,"(IX+@)",DD,CB,@,06,$,"(IY+@)",FD,CB,@,06,$,A,CB,07,$,B,CB,00,$,C,CB,01,$,D,CB,02,$,E,CB,03,$,H,CB,04,$,L,CB,05,$,%_\ :_f RLCA,1,-,07,$,%_p :_z RLD,1,-,ED,6F,$,%_ :H` RR,10,"(HL)",CB,1E,$,"(IX+@)",DD,CB,@,1E,$,"(IY+@)",FD,CB,@,1E,$,A,CB,1F,$,B,CB,18,$,C,CB,19,$,D,CB,1A,$,E,CB,1B,$,H,CB,1C,$,L,CB,1D,$,%N` :c` RRA,1,-,1F,$,%i` :` RRC,10,"(HL)",CB,0E,$,"(IX+@)",DD,CB,@,0E,$,"(IY+@)",FD,CB,@,0E,$,A,CB,0F,$,B,CB,08,$,C,CB,09,$,D,CB,0A,$,E,CB,0B,$,H,CB,0C,$,L,CB,0D,$,%` :a RRCA,1,-,0F,$,%a :3a RRD,1,-,ED,67,$,%9a :a RST,8,0,C7,$,8,CF,$,10H,D7,$,18H,DF,$,20H,E7,$,28H,EF,$,30H,F7,$,38H,FF,$,%,#a --------------------------------------------------a" THE S'Sa:b 7,SBC,15,"A,(HL)",9E,$,"A,(IX+@)",DD,9E,@,$,"A,(IY+@)",FD,9E,@,$,"A,A",9F,$,"A,B",98,$,"A,C",99,$,"A,D",9A,$,"A,E",9B,$,"A,H",9C,$,"A,L",9D,$b$ "A,@",DE,@,$,"HL,BC",ED,42,$,"HL,DE",ED,52,$,"HL,HL",ED,62,$,"HL,SP",ED,72,$,%b.:b8 SCF,1,-,37,$,%bB:DcL SET,80,"0,(HL)",CB,C6,$,"0,(IX+@)",DD,CB,@,C6,$,"0,(IY+@)",FD,CB,@,C6,$cV "0,A",CB,C7,$,"0,B",CB,C0,$,"0,C",CB,C1,$,"0,D",CB,C2,$,"0,E",CB,C3,$,"0,H",CB,C4,$,"0,L",CB,C5,$c` "1,(HL)",CB,CE,$,"1,(IX+@)",DD,CB,@,CE,$,"1,(IY+@)",FD,CB,@,CE,$[dj "1,A",CB,CF,$,"1,B",CB,C8,$,"1,C",CB,C9,$,"1,D",CB,CA,$,"1,E",CB,CB,$,"1,H",CB,CC,$,"1,L",CB,CD,$dt "2,(HL)",CB,D6,$,"2,(IX+@)",DD,CB,@,D6,$,"2,(IY+@)",FD,CB,@,D6,$ e~ "2,A",CB,D7,$,"2,B",CB,D0,$,"2,C",CB,D1,$,"2,D",CB,D2,$,"2,E",CB,D3,$,"2,H",CB,D4,$,"2,L",CB,D5,$Qe "3,(HL)",CB,DE,$,"3,(IX+@)",DD,CB,@,DE,$,"3,(IY+@)",FD,CB,@,DE,$e "3,A",CB,DF,$,"3,B",CB,D8,$,"3,C",CB,D9,$,"3,D",CB,DA,$,"3,E",CB,DB,$,"3,H",CB,DC,$,"3,L",CB,DD,$f "4,(HL)",CB,E6,$,"4,(IX+@)",DD,CB,@,E6,$,"4,(IY+@)",FD,CB,@,E6,$hf "4,A",CB,A7,$,"4,B",CB,E0,$,"4,C",CB,E1,$,"4,D",CB,E2,$,"4,E",CB,E3,$,"4,H",CB,E4,$,"4,L",CB,E5,$f "5,(HL)",CB,EE,$,"5,(IX+@)",DD,CB,@,EE,$,"5,(IY+@)",FD,CB,@,EE,$g "5,A",CB,EF,$,"5,B",CB,E8,$,"5,C",CB,E9,$,"5,D",CB,EA,$,"5,E",CB,EB,$,"5,H",CB,EC,$,"5,L",CB,ED,$^g "6,(HL)",CB,F6,$,"6,(IX+@)",DD,CB,@,F6,$,"6,(IY+@)",FD,CB,@,F6,$g "6,A",CB,F7,$,"6,B",CB,F0,$,"6,C",CB,F1,$,"6,D",CB,F2,$,"6,E",CB,F3,$,"6,H",CB,F4,$,"6,L",CB,F5,$ h "7,(HL)",CB,FE,$,"7,(IX+@)",DD,CB,@,FE,$,"7,(IY+@)",FD,CB,@,FE,$wh "7,A",CB,FF,$,"7,B",CB,F8,$,"7,C",CB,F9,$,"7,D",CB,FA,$,"7,E",CB,FB,$,"7,H",CB,FC,$,"7,L",CB,FD,$,%}h: i SLA,10,"(HL)",CB,26,$,"(IX+@)",DD,CB,@,26,$,"(IY+@)",FD,CB,@,26,$,A,CB,27,$,B,CB,20,$,C,CB,21,$,D,CB,22,$,E,CB,23,$,H,CB,24,$,L,CB,25,$,%i:i  SRA,10,"(HL)",CB,2E,$,"(IX+@)",DD,CB,@,2E,$,"(IY+@)",FD,CB,@,2E,$,A,CB,2F,$,B,CB,28,$,C,CB,29,$,D,CB,2A,$,E,CB,2B,$,H,CB,2C,$,L,CB,2D,$,%i:9j SRL,10,"(HL)",CB,3E,$,"(IX+@)",DD,CB,@,3E,$,"(IY+@)",FD,CB,@,3E,$,A,CB,3F,$,B,CB,38,$,C,CB,39,$,D,CB,3A,$,E,CB,3B,$,H,CB,3C,$,L,CB,3D,$,%?j(:j2 SUB,11,"(HL)",CB,96,$,"(IX+@)",DD,CB,@,96,$,"(IY+@)",FD,CB,@,96,$,A,CB,97,$,B,CB,90,$,C,CB,91,$,D,CB,92,$,E,CB,93,$,H,CB,94,$,L,CB,95,$,@,D6,@,$,%,#k< --------------------------------------------------(kF NO T MNEMONICSakP --------------------------------------------------vkZ NO U MNEMONICSkd --------------------------------------------------kn NO V MNEMONICSkx --------------------------------------------------l NO W MNEMONICSKl --------------------------------------------------kl" THE X'Sql:l 1,XOR,11,"(HL)",AE,$,"(IX+@)",DD,AE,@,$,"(IY+@)",FD,AE,@,$,A,AF,$,B,A8,$,C,A9,$,D,AA,$,E,AB,$,H,AC,$,L,AD,$,@,EE,@,$,%,#l ***Fm"-----------------------------------------------------------------dm"DIAGNOSTIC ROUTINESlmA$m (A$,"@")0 (A$)1 A$""""A$""m (A$,"\")0 (A$)1 A$""""A$""m (A$,"&")0 (A$)1 A$""""A$""2n A$"%" B$:B$"#"B$""B$"":A$:4050`n A$"%" B$:B$:B$""B$"":A$:4050n A$"$" (B$" ",6)C$:C$"":4050nA$A$" "n" (A$,"")0 C$C$(A$,19):4050o,C$C$(A$,16):4050Zo6"-----------------------------------------------------------------po@"STRING PLAYoJ"HAT IS THE FIRST (LONG) MESSAGE";M1$:"HAT IS THE SECOND (SHORT) MESSAGE";M2$:VL(M1$,M2$):VLVL1oTVL19p^"";M1$;" WITH A LENGTH OF";(M1$):"";M2$;" WITH A LENGTH OF";(M2$)phA$(M1$,VL):"";A$;" WITH A LENGTH OF";(A$):B$(M1$,(M1$)VL(M2$)):"";B$;" WITH A LENGTH OF";(B$)pr:ՙ"HE SECOND STRING DOESN'T OCCUR WITHIN THE FIRST!"q|:M$""A$""M2$""B$"":4940::q"HAT IS THE NEXT (LONG) MESSAGE";M1$:"HAT IS THE NEXT (SHORT) MESSAGE";M2$:VL(M1$,M2$):VLVL1:4180q"-----------------------------------------------------------------r"EADING THE START OF AN ALPHABETICAL LISTINGLrM$" ":4940rM$"     ":4940rM$"       ":49402sM$"    THINKING ABOUT IT    ":4940~sM$"      ":4940sM$"     ":4940 tM$" ":4940't (14);"": NM,A$,Not A$I1$ CD$(CT,5)A$:"";A$;" = ";I1$;"":4380:ՙA$;" <> ";I1$tA$:A$"%"4350tA$:A$"#"4970:420t N:4340tA$t&A$I2$ NB(1)999:NB(2)999:4720: FINAL EMPLACEMENT OF CODEu0(A$,"@")0 (A$,"&")0 (A$,"\")0 4660: WHICH MEANS THAT IF THERE IS NO EQUALITY AND NUMERICS ARE LACKING, THEN NOT SAMEu:A$"@" (I2$)2 NB(1)(I2$):NB(2)999:NB$(1)A$:4720vDA$"\" (I2$)4 (I2$,",")0 NB(1)(I2$):NB(2)999:NB$(1)A$:4720.vNA$"@"A$"\"4660PvXX1:Y1:NB(1)999:NB(2)999ovbB$(I2$,X,1):C$(A$,Y,1)uvl:vvB$C$ vXX1:YY1vX(I2$)Y(A$)4450:Չ4640vv:v (C$"@"C$"&") (I2$)X11 PwNB(2)((I2$,X,2)):NB$(2)C$:XX2:YY1:NB(1)999 NB(1)NB(2):NB$(1)NB$(2):NB(2)999twX(I2$)Y(A$)4450:Չ4640w: C$"@"C$"&" 4970:420w:wC$"\"(I2$)X13 xNB(2)((I2$,X,4)):NB$(2)C$:XX4:YY1:NB(1)999 NB(1)NB(2):NB$(1)NB$(2):NB(2)999AxX(I2$)Y(A$)4450:Չ4640Hxwx4660: NOTHING WORKS, ON TO NEXT MNEMONICx "--------------------------------------------------------------------------- y" LAST CHECK FOR APPROPRIATE LENGTH IN COMPARISON1y  X(I2$)Y(A$)4720:Ս4970:420y*"---------------------------------------------------------------------------y4A$;" <> ";I2$y>A$:A$"$"4670yHA$:A$"%"4970:M$"BAD OPERAND": 4940:420yR4390Bz\"--------------------------------------------------------------------------zf"HE CORRECT MNEMONIC AND OPERAND ARE FOUND. HIS GENERATES THE CODEzpX1:I2$"-" CD$(CT,6)I2$:I2$zzB$: B$"@" B$"&" zY1 {NB$(Y)B$B$((NB(Y)),2):YY1:4750{4850{,{ B$"\" 4{Y1\{NB$(Y)B$B$(NB(Y)):YY1:4800f{4850m{{B$"$" 4890:CTCT1:420{CD(CT,X)(B$):CD$(CT,X)B$:XX1:4730{(B$)4CD(CT,X)((B$,2)):CD$(CT,X)(B$,2):B$(B$,2):XX1|4840[|"-------------------------------------------------------------------------|"ROGRAM MNEMONICS LISTER SUBROUTINE}"":AD(1)(SA$):X1CT:"";((AD(X))" ",7);"";:AD(X1)AD(X):Y14:AD(X1)AD(X1)((CD$(X,Y))2.5):\}$Y14:(CD$(X,Y)" ",7);:CD$(X,Y)""CD(X,Y)(CD$(X,Y)): CD(X,Y)999}.:Y56:"";(CD$(X,Y)" ",10);::::}8"------------------------------------------------------------------ ~B"80-COLUMN MESSAGE CENTERING ROUTINE9~LY(80(M$))2:X1Y:M$" "M$::M$:~V"---------------------------------------------------------------------------~` THIS IS THE INVALID MNEUMONIC MESSAGE, OBVIOUSLY~jM$(14)"O, NO, ! OT A VALID MNEMONIC!":4940nt"******************************************************************************~"HE CONCLUDING ROUTINES""(27)"R":M$"LEASE CHOOSE AN ACTION:":4940:") SSEMBLY (NEMONIC ODE) PERATIONS"F") ROGRAM (ACHINE ODE) PERATIONS":") ISK PERATIONS"") ETURN TO ILE SSEMBLY":") UIT THE PROGRAM"A$:A$""5030:Ռ5070:X0ƀXX1:B$:B$"EOF"5030׀B$A$5040(27)"N":X 5090,5180,5270,5460,5530 A,P,D,R,Q,EOFJ" ***""(27)"R":M$"LEASE CHOOSE AN ACTION:":4940") RINT THE NEMONIC ODE ISTING":") AVE THE NEMONICS TO ISK":") OAD THE NEMONICS FROM ISK")") ETURN TO THE AIN ENU"IA$:A$""5120:Ռ5160:X0f XX1:B$:B$"EOF"5120wB$A$5130(27)"N":X 5600,5660,6070,5000( P,S,L,R,EOF2" ***<""(27)"R":M$"LEASE CHOOSE AN ACTION:":4940F") RINT THE ECIMALIZED ACHINE ODE":") AVE THE SSEMBLED ACHINE ODE TO ISK"P") ETURN TO THE AIN ENU"ʃZA$:A$""5210:Ռ5250:X0dXX1:B$:B$"EOF"5210nB$A$5220xX 5760,5820,5000  P,S,R,EOFR" ***""(27)"R":M$"LEASE CHOOSE AN ACTION:":4940") ATALOG THE ELEVANT ISK ILES":") ELETE A ISK ILE":") ORMAT A ISK ILE"c") ETURN TO THE AIN ENU":"1) 1571 INGLE-IDED ISK":"2) 1571 OUBLE-IDED ISK"A$:A$""5300:Ռ5340:X0XX1:B$:B$"EOF"5210B$A$5310(27)"N":X 5490,5560,5430,5000,5370,5400 C,D,F,R,1,2,EOFQ"-----------------------------------------------------------------------------{"INGLE-IDED 1571 RIVE ETTING15,8,15,"U0>M0":15:5490"-----------------------------------------------------------------------------"OUBLE-IDED 1571 RIVE ETTING;15,8,15,"U0>M1":15:5490""----------------------------------------------------------------------------,"ISK ORMATTING#6(27)"N""":M$"LEASE ENTER THE NAME THE DISK IS TO HAVE":4940:A$:15,8,15,"N:"A$","(TI$,2):15:5490x@"--------------------------------------------------------------------------J"OING BACK TO ENTERING CODET4890:CTCT1:420 ^"--------------------------------------------------------------------------$h"ATALOG DISPLAYYr6040:"":M$"RESS ANY KEY TO CONTINUE":4940n|A$:A$""5500x5000ω"----------------------------------------------------------------------------Չ+"---------------------------------------------------------------------------C"ILE DELETION6040:"":M$"LEASE ENTER THE FILE NAME FOR DELETION":4940A$:5940:(A$):5490"-----------------------------------------------------------------------------%"RINTOUT ROUTINE FOR MNEMONIC CODEk(27)"N""":M$"REPARE THE PRINTER AND PRESS ANY KEY":4940A$:A$""56103,4,7:X1CT:3,(AD(X))"... ";:Y163,(CD$(X,Y)" ",10);::3::3:5000<"-----------------------------------------------------------------------------e"ISK SAVE OF THE MNEMONIC CODEČ""(27)"N":6040:M$"LEASE ENTER THE NAME THIS CODE IS TO BE SAVED UNDER":4940:A$&(A$,3)""A$(A$,(A$)3)0A$(A$" ",13)""M:M$"LEASE STANDBY WHILE THE CODE IS BEING SAVED":4940D9,8,7,"0:"A$",S,W":9,(251)"0,80":9,"NUMBER OF STEPS=":9,(CT):9,"STARTING ADDRESS=":9,SA$ԍNX1CT:9,(AD(X)):Y16XCD$(X,Y)""9,CD$(X,Y):՘9," "b::9,"EOF":9:5490ml"-----------------------------------------------------------------------------v"RINTING THE STRAIGHT DECIMAL CODE VALUES玀(27)"N""":M$"REPARE THE PRINTER AND PRESS ANY KEY":4940A$:A$""577043,4,7:X1CT:Y14:CD(X,Y)999:3::3:5000T3,CD(X,Y),::3::3:5000"-----------------------------------------------------------------------------史"AVING THE MACHINE CODE WITH PROPER ADDRESSINGD""(27)"N":6040:M$"LEASE ENTER THE NAME THIS CODE IS TO BE SAVED UNDER":4940:A$g(A$,2)"."A$(A$,(A$)2)A$(A$" ",14)"."ːM$"LEASE STANDBY WHILE THE CODE IS BEING SAVED":4940.9,8,7,"0:"A$",P,W":9,(((SA$,2)));:9,(((SA$,2)));: THE STARTING ADDRESS IS IN PLACEAX1CT:Y14cCD(X,Y)9999,(CD(X,Y));n::9  AND SO THE CODE IS SAVED AS A NORMAL NON-RELOCATABLE PROGRAM FILE, READY TO BE LOADED WITH A LOADER AND THE INFORMATION PASSED TO THE Z80! WOW!5490b "-------------------------------------------------------------------------*"HE FILE NAME HANDLER FOR MNEMONIC-TYPE DISK OPERATIONSǒ4 (A$,1)"*"A$(A$,(A$)1)> (A$,3)""A$(A$,(A$)3)HA$A$"????????????????":A$(A$,13)"":qR"-------------------------------------------------------------------------\"HE FILE NAME HANDLER FOR TRUE CODE DISK OPERATIONSғf (A$,1)"*"A$(A$,(A$)1)p (A$,2)"."A$(A$,(A$)2)&zA$A$"????????????????":A$(A$,14)".":z"-------------------------------------------------------------------------"HE DIRECTORY LISTING ROUTINEM$"HE CURRENT FILES ARE:":4940:"": "??????????????.": "?????????????":"":R"-------------------------------------------------------------------------|"NEMONIC CODE READ-BACK ROUTINEە(27)"N""":6040:M$"LEASE ENTER THE NAME OF THE CODE TO BE LOADED":4940:A$:5940M$"LEASE STANDBY WHILE THE CODE IS BEING LOADED":4940r9,8,7,"0:"A$",S,R":9,CT$:9,CT$:CT$:9,CT$:CT(CT$):CT:9,SA$:SA$:9,SA$:SA$X1CT:9,CT$:AD(X)(CT$):"";(AD(X))" ";"";:Y16:CD$(X,Y)""#9,C$: C$(13) CD$(X,Y)CD$(X,Y)C$: 6110(CD$(X,Y)" ",7);2M$CD$(X,Y):6190:CD$(X,Y)B$T CD$(X,Y)" " CD$(X,Y)""y:::9,A$:9: A$"EOF" 5460̗"":M$"OAD RROR - THE END OF THE FILE IS OUT OF PLACE!":4940: 2:5000 "-------------------------------------------------------------------------X$"ETSCII TO CONVERTER FOR MNEMONIC FILES.B$"":XX1(M$):B((M$,XX,1)): B96 B123 BB328B$B$(B)::B"-------------------------------------------------------------------------QL"-------------------------------------------------------------------------V"ROGRAMMERS WHO HAVE CONTRIBUTED TO THIS PROGRAM:ϙ` "RUCE . OWDEN 9/86 - SIMPLE ASSEMBLER AND DISK ROUTINES"j "--- 3110 AWNDALE RIVE, REENSBORO 27408".t "--- OMPUERVE # 74176,2144"