G:(23740\+256*23741\+1),2:55216 a(24601`=175ƾ24602`=211)(24601`+24602`=0)9997 ' :(23740\+256*23741\+1),2:6;1;" * TOOLKIT EPROM * "'''0;"Select Function-"''4;"1. Block Line Renumberer."''4;"2. Hex/Dec Loader."''4;"3. Disassembler."''4;"4. Tri-Base Arithmetic."''4;"5. UDG Generator."''4;"6. Header Reader."''4;"7. Configure Print Driver."''4;"8. Return to HOME Bank.":"Function Nr: ";q:100d*q+(100dq>3) dBlock Line Renumberer. e/24601`+24602`=09997 ' nR:2;1;" * Block Line Renumberer * "'':56891;:q=25092b x7"Old starting line number: ";:q:q=010 i25110b,q-256*(q/256):25111b,(q/256):''"Old starting line number: ";q:q q=25120 b 25112b,q-256*(q/256):25113b,(q/256):"Address: ";q,"Length: ";(q+2)+256*(q+3)+4 >"Relative address: ";q-23635S\-256*23636T\'' F"Address: ";q,"Length: ";(q+2)+256*(q+3)+4 >"Relative address: ";q-23635S\-256*23636T\'' 7"New starting line number: ";:q:q=010 25114b,q-256*(q/256):25115b,(q/256):"New starting line number: ";q'':q''"Step: ";:q:q=010 25118b,q-256*(q/256):25119b,(q/256):"Step: ";q'':q''"Old stopping line number: ";:q:q=010 25116b,q-256*(q/256):25117b,(q/256):"Old stopping line number: ";q:q:"Inputs OK (y/n)? ";q$:q$"Y"q$"y":120x q=25151?b '''" Renumbering complete."''''':15,5;"Renumbering complete.":(23631O\+256*23632P\+16)=5"Copy (y/n)? ";q$:q$="Y"q$="y" 900 L24601`+24602`=09997 ': Hex/Dec Loader. ::5;1;" * Hex/Dec Loader * "'':23658j\,8:h$(4):h$="0000":A=10 :B=11 :C=12 :D=13 :E=14:F=15:(23740\+256*23741\+1),2:55228 N"Hex or Decimal Codes (H/D)? ";b$:b$="A"b$="Q"b$="STOP"b$=""290" 4b$=""(b$(1)"H"b$(1)"D")210 8b$=("Hex. "b$(1)="H")+("Dec. "b$(1)="D") ;"Address? ";i$:i$="A"i$="Q"i$="STOP"i$=""290" Di$=""(i$(1)"H"i$(1)"D"i$(1)"R")220 Ci$(1)="R"i=23635S\+256*23636T\:226 ߡi$(1)="H"h$(6-i$)=i$(2):i=4096*h$(1)+256*h$(2)+16*h$(3)+h$(4):i$=i$(2):228 i=i$(2) [i>65535'"Address exceeds maximum."''':''"Address exceeds maximum."''':220 8i:i=023670v\,0:23671w\,0 h$=h$:25110b x=i:h=x:x$=((h/16)+480+7*((h/16)>9 )):h=h-16*(h/16):x$=x$+(h+480+7*(h>9 )) j=05-i:" ";:j:i;" ";h$;" ";(" "Ʊx<3);(" "Ʊx=1);x;" ";x$;" ";:5-i;i;6;h$;15-x;x;16;x$;" "; 6(b$);"Code? ";x$:x$="Q"x$="STOP"x$=""290" x$="A"'':'':220 x$="":260 b$(1)="H"237 x$="H"b$="Hex. ":230 x=x$:x>255230 h=x:x$=((h/16)+480+7*((h/16)>9 )):h=h-16*(h/16):x$=x$+(h+480+7*(h>9 )):240 x$="D"b$="Dec. ":230 x$2230 &x=16*x$(1)+x$(2) i,x ^(" "Ʊx<3);(" "Ʊx=1);x;" ";x$':(" "Ʊx<3);(" "Ʊx=1);x;" ";x$' i=i+1:225 "[''':(23631O\+256*23632P\+16)=5"Copy (Y/N)? ";i$:i$="Y" #+"More (Y/N)? ";i$:i$="Y"''':210 $h$=h$:25158Fb:10 ,P24601`+24602`=09997 ': BASIC Disassembler. -:3;1;" * BASIC Disassembler * ":23658j\,8:d$(8,4):(23740\+256*23741\+1),2:301-:j=18:d$(j):j:"B","C","D","E","H","L","(HL)","A" .""Address? ";k$:k$=""302. /#k$="Q"k$="STOP"k$=""10 0k$(1)"D"3084 1k$>6k$="D"302. 2 385 3a=(k$(2)):3117 4(k$(1)"H"űk$5302. 5 389 6 384 7 c=0: 8Fb$="":c$="":363k:366n:c$(c$-1)="ED"333M 9"c$(c$-1)="CB"335O :"c$(c$-1)="DD"340T ;"c$(c$-1)="FD"341U <>c$<"39"c$(2)="0"c$(2)="8"c$>"0F"394 = 374v >*n$="":371s:n$=0323C ?n$=1322B @G366n:366n:b$=c$(c$-1)+c$(c$-3̱c$-2) An=n$(1)-480-(7n$(1)>"@"):i$=i$(n-1)+b$+(i$(n+1+(n$=2))i$(i$)"#"):325E B+366n:b$=c$(c$-1):321A C!i$=""i$="Not def.":325E D i$(1)="*"i$="Not def." EW0;a$;6;c$;15;i$:a$;" ";c$;:j=19 -c$:" ";:j:i$ F$c=c+1:c=22355c Gi$="RST 28h"330J Hi$="RST 08h"c$="":363k:366n:i=16*c$(1)+c$(2)-47/-(7c$(2)>"@"):i$=" ERR "+(i+480+(7i>9 )):325E I 3128 Jc$="":363k:366n:i$="DEFB "+c$:0;a$;6;c$;15;i$:a$;" ";c$;:j=19 -c$:" ";:j:i$:c$="38"326F K$c=c+1:c=22355c L 330J MZ366n:b=b-64@:b<0(b>59;b<96`)b>123{i$="":323C N/420+(b/10 ):376x:318> O!366n:336P:318> P\b<64@450:v=(b/8)-8*(b/64@):j=0v:i$:j:338R Qzi$=("BIT "b<128)+("RES "b>127b<192)+("SET "b>191)+((b-64@*(b/64@))/8)+"," Ri$=""i$="****": S'v=b-8*(b/8):383: Tx$="IX":342V U x$="IY" V 366n W"c$(c$-1)="CB"353a Xy=b:374v:k=1 Y-k>i$-1y=235i$="":323C Z!i$(kk+1)="HL"348\ [k=k+1:345Y \.y43+y=579y225351_ ]4366n:u$="":kɱi$-1u$=i$(k+2) ^@i$=i$(1k-1)+x$+"+"+c$(c$-1)+u$:318> _Fu$="":kɱi$-1u$=i$(k+2):y=41)u$(2)=x$ `+i$=i$(1k-1)+x$+u$:318> ad366n:366n:b=(a-1):(b+2)/8ɺ((b+2)/8)i$="":323C bN336P:i$=i$(̱i$-3)+x$+"+"+c$(56)+i$(i$):324D c)"More? (Y/N/C/Q) ";q$:q$="Q"10 dq$="N"302. eq$="Y"360h fK(23631O\+256*23632P\+16)5q$"C"355c g :355c hi$="RST 28h"362j i"i$"DEFB "+c$c$="38"3117 j:c=0:330J ka$="":r=a:k=3 l_i=(r/(16^k)):a$=a$+(i+480+(7i>9 )):r=r-(16^k)*i:k=0 mk=k-1:364l na>65535368p ob=a:i=(b/16):c$=c$+(i+480+(7i>9 ))+(b-16*i+480+(7(b-16*i)>9 )):a=a+1: p21,6;"Address exceeds maximum.":''"Address exceeds maximum."'':3,10 :300,:21,6;" ":c=0302. qV(23631O\+256*23632P\+16)=5"Copy (Y/N)? ";q$:q$="Y" r 302. s,n$="":j=1̱i$:i$(j)"#"373u t)n$=n$+(j+480+(7j>9 )) uj: vb64@377y w400+(b/10 ) x-j=0b-10 *(b/10 ):i$:j: yb191379{ zh410+((b-192)/10 ):j=0b-10 *((b-192)/10 )-192:i$:j: {'b=b-64@:b=546i$="HALT": |Gb<64@v=(b/8):i$="LD ":383:i$=i$+",":382~ }=b=b-64@:440:v=(b/8):j=0v:i$:j ~v=b-8*v:383: Ke$=d$(1+v):i$=i$+e$(11+(31+v=7)): va=0:a$=k$(2):j=14:a=a+(16^(4-j))*(a$(j)-480-(7a$(j)>"@")):j:  k=2  k$(k)<"0"k$(k)>"9"302. k=k$3073 k=k+1:386  k=2 8(k$(k)"0"k$(k)"9")(k$(k)"A"k$(k)"F")392  302. k=k$3106 k=k+1:390 460:j=0̺(b/8)-2:i$:j:366n:q=a:q$=a$:a=a+b-(256b>127):363k:i$=i$+a$:a=q:a$=q$:325E _"NOP","LD BC,##","LD (BC),A","INC BC","INC B","DEC B","LD B,#","RLCA","EX AF,AF'","ADD HL,BC" Y"LD A,(BC)","DEC BC","INC C","DEC C","LD C,#","RRCA","","LD DE,##","LD (DE),A","INC DE" T"INC D","DEC D","LD D,#","RLA","","ADD HL,DE","LD A,(DE)","DEC DE","INC E","DEC E" S"LD E,#","RRA","","LD HL,##","LD (##),HL","INC HL","INC H","DEC H","LD H,#","DAA" S"","ADD HL,HL","LD HL,(##)","DEC HL","INC L","DEC L","LD L,#","CPL","","LD SP,##" b"LD (##),A","INC SP","INC (HL)","DEC (HL)","LD (HL),#","SCF","","ADD HL,SP","LD A,(##)","DEC SP"  "INC A","DEC A","LD A,#","CCF" _"RET NZ","POP BC","JP NZ,##","JP ##","CALL NZ,##","PUSH BC","ADD A,#","RST 00h","RET Z","RET" a"JP Z,##","","CALL Z,##","CALL ##","ADC A,#","RST 08h","RET NC","POP DE","JP NC,##","OUT (#),A" \"CALL NC,##","PUSH DE","SUB #","RST 10h","RET C","EXX","JP C,##","IN A,(#)","CALL C,##","" h"SBC A,#","RST 18h","RET PO","POP HL","JP PO,##","EX (SP),HL","CALL PO,##","PUSH HL","AND #","RST 20h" ]"RET PE","JP (HL)","JP PE,##","EX DE,HL","CALL PE,##","","XOR #","RST 28h","RET P","POP AF" Y"JP P,##","DI","CALL P,##","PUSH AF","OR #","RST 30h","RET M","LD SP,HL","JP M,##","EI" !"CALL M,##","","CP #","RST 38h" e"IN B,(C)","OUT (C),B","SBC HL,BC","LD (##),BC","NEG","RETN","IM 0","LD I,A","IN C,(C)","OUT (C),C" `"ADC HL,BC","LD BC,(##)","","RETI","","LD R,A","IN D,(C)","OUT (C),D","SBC HL,DE","LD (##),DE" M"","","IM 1","LD A,I","IN E,(C)","OUT (C),E","ADC HL,DE","LD DE,(##)","","" F"IM 2","LD A,R","IN H,(C)","OUT (C),H","SBC HL,HL","","","","","RRD" <"IN L,(C)","OUT (C),L","ADC HL,HL","","","","","RLD","","" V"SBC HL,SP","LD (##),SP","","","","","IN A,(C)","OUT (C),A","ADC HL,SP","LD SP,(##)" ,"","","","","","","LDI","CPI","INI","OUTI" &"","","","","LDD","CPD","IND","OUTD" /"","","LDIR","CPIR","INIR","OTIR","","","","" "LDDR","CPDR","INDR","OTDR" ="ADD A,","ADC A,","SUB ","SBC A,","AND ","XOR ","OR ","CP " 3"RLC ","RRC ","RL ","RR ","SLA ","SRA ","","SRL " 1"DJNZ ","JR ","JR NZ,","JR Z,","JR NC,","JR C," Q24601`+24602`=09997 ': Tri-Base Arithmetic. :3;1;" * Tri-Base Arithmetic * ":23658j\,8:h$(5):m$(17):A=10 :B=11 :C=12 :D=13 :E=14:F=15:(23740\+256*23741\+1),2:55239 f$=""  l=1  "Input: ";i$  W(i$(1)>"/"i$(1)<":")(i$(1)="-"i$"-")i$(1)="D"541  Ni$(1)="H"n=0:i=2̱i$:n=16*n+i$(i):i:581E  Mi$(1)="B"n=0:i=2̱i$:n=2*n+i$(i):i:581E i$="V"i$="CLS" M(23631O\+256*23632P\+16)=5i$="Z"i$="COPY" 6l=0:i$="A"i$="Q"i$="STOP"i$=""595S Bi$="+"i$="-"i$="*"i$="/"i$="AND"i$="OR"i$="XOR"544   l=2 i$="+/-"556, i$="STO"570: i$="RCL"571;  l=3 i$="="545! i$="C"557- i$="SL"i$="SR"558. i$<3522  >i$(12)="RL"i$(12)="RR"5600  521  6n=i$(1+(1i$(1)="D")):581E  ,i$:i$:546":f$=i$:l$=m$:522  !546":n=x:580D " f$=""x=n #f$="+"x=x+n $f$="-"x=x-n %f$="*"x=x*n &f$="/"x=(x/n) 'f$"AND"f$"OR"f$"XOR" (Fn=0:i=217:f$="AND"n=2*n+(m$(i)ưl$(i)) )&f$="OR"n=2*n+(m$(i)Űl$(i)) *:f$="XOR"n=2*n+((m$(i)Űl$(i))(m$(i)ưl$(i))) + i:x=n: ,n=-n:580D -)i$="1's Compl":n=-n-1:580D .In=(2*ni$(2)="L")+((n/2)i$(2)="R"):580D 02m=i$(3):m>16m<1522  1z=1:i=217-m:m$(i)="0":i:n=0:i=217:n=2*n+m$(i):i:i$(2)="R"5655 2"n<2^(m-1)z=0 3+n=2*n+z:n>2^mn=n-2^m 4 580D 5#n/2=(n/2)z=0 61n=(n/2)+z*2^(m-1):580D :"STO":"STO":s=n:521  ;n=s Di$:i$ E)n<65536n>-65537583G F)"OVERFLOW!"::"OVERFLOW!"::520 Gn<0585I H=z=n:h$(1)=" ":586J:m$(1)=" ":588L IIz=65536+n:h$(1)="F":586J:m$(1)="C":588L J8z:z=023670v\,0:23671w\,0 Kh$=h$:25110b: L8z:z=023670v\,0:23671w\,0 Mm$=m$:25159Gb Nl=1: Ori=16-n:" ";:i:n;" ";h$;" ";m$:6-n;n;8;h$;15;m$:l=0522  Pl=2521  Q 520 Sh$=h$:25185ab:m$=m$:25185ab:(23631O\+256*23632P\+16)=5"Copy (Y/N)? ";a$:a$="Y"a$="y" T 10 XJ24601`+24602`=09997 ': UDG Generator. Y:11 ;1;" * UDG Generator * ";0;14,0;" Key No Shift Cap Shft Sym Shft";14,0;1;"_____ ________ ________ ________";0''" A-U Define Replace Replace Arrow Move Cur Mv & Ink Mv & Pap 1 ------ All Ink All Pap 2,3,9 ------ Ink Paper 4 ------ Toggle Toggle 0 ------ Exit Exit ":57012:25092 b Z]"Restore original graphics (y/n)? ";a$:a$="Y"a$="y"57299:25092b:602Z [](23631O\+256*23632P\+16)=5"Copy (y/n)? ";a$:a$="Y"a$="y" \2"Save UDG's (y/n)? ";a$:a$"Y"a$"y"10 ]5"Name for SAVE? ";a$:a$=""űa$>10 605] ^a$23675{\+256*23676|\,65536-23675{\-256*23676|\::10 ,7;1;" REWIND to VERIFY ":.5,12 :"":.5,12 :10 ,7;" ";12 ,8+a$;"is OK." _-"More (y/n)? ";a$:a$="Y"a$="y"601Y ` 10 J24601`+24602`=09997 ': Header reader. :6;1;" * Header Reader * ":(23740\+256*23741\+1),2:702:a=25110b25153Ab:c:a,c:a ]175,557,221,33!,66B,98b,17,17,0,243 d245,219,255,203,255,211,255,219,244,502 ^65A,98b,62>,1,211,244,241,205,252,0 b58:,65A,98b,211,244,219,255,203,191,211 '255,251,201,0 >i=06:"a"+i,0:i:"a"+7,126~ ĥ25154Bb,4::10 ,8;"Start the tape-":25110b::type=25154Bb:type>310 ,9 ;1;" Not a Header ":719 a$="":i=09 :a$=a$+¾(25155Cb+i):i:len=25165Mb+256*25166Nb:start=25167Ob+256*25168Pb:pa=25169Qb+256*25170Rb:var=len-pa:"Name: ";a$'':"Name: ";1;0,6;a$'':type712 "Program type: BASIC."''"Program area: ";pa;" bytes."''"Variables area: ";var;" bytes."'':"Program type: BASIC."''"Program area: ";pa;" bytes."''"Variables area: ";var;" bytes."'':start>9999'"No auto-start."'''':"No auto-start.":718 Q"Auto-start at Line ";start;"."'''':"Auto-start at Line ";start;".":718 Bt$="Code Block.":start=16384@len=6912t$="Screen." `type=1t$="Numeric Array.":n$=(25168Pb-64@)+" or "+(25168Pb-32 ) htype=2t$="Character Array.":n$=(25168Pb-128)+"$ or "+(25168Pb-96`)+"$" v"Type: ";t$'':"Type: ";t$'':type=1type=2"Array Variable Name: ";n$'':"Array Variable Name: ";n$'' Jtype=3"Starting Address: ";start'':"Starting Address: ";start'' 8"Length: ";len;" bytes."'''':"Length: ";len;" bytes." ](23631O\+256*23632P\+16)=5"Copy (y/n)? ";r$:r$="Y"r$="y" <"Read another header (y/n)? ";r$:r$="Y"r$="y"708  10  I24601`+24602`=09997 ': Configure Print Driver. !:1;1;" * Configure Print Driver * "''':4;"1. Aerco."''4;"2. Tasman (B)."''4;"3. Tasman (C)."''4;"4. T/S 2040."''4;"5. A & J."''4;"6. Byte-Back Parallel."''4;"7. Other." *7"Select a Number: ";q:q<1q>7810* 4rq=q-1:q=3q=23631O\+256*23632P\+15:q,0:(q+1),5:10 956352 :25092b :q=6"Enter the starting address of your driver software:";q:q:23321[,23670v\:23322[,23671w\:q=6 >x20,0;"Do you want an automatic LINE FEED with CARRIAGE RETURN? (y/n)":q$:q$="Y"q$="y"q=q+128 Hq$=" ":23326[,q:20,0;q$'q$;18,0;"Now input initial print mode:"'q$;4;"1. NORMAL."'4;"2. UP-ARROW.":0,4;"3. RAW ASCII.",q:q<1q>3840H R&q=q-1:23327[,q:10 Return to HOME Bank. .56224:25092b:restore home vars x24601`,0:24602`,0:(23740\+256*23741\+1),0:23750\,0: :"Byte Contents";1;0,0;"____ ________"'':i=117:3-i;i;12 -(25131+b+i);(25153Ab+i):i:718 '  '  ' -56250:25092b::save home vars ':23750\,0:244,240:23635S\,10 :23636T\,128:23627K\,32776:23628L\,32777 :(1+32776+256*32777 ):23641Y\,23670v\:23642Z\,23671w\:: ':32776,23627K\:32777 ,23628L\:23627K\+256*23628L\,128:1+23627K\+256*23628L\,13 :2+23627K\+256*23628L\,128 999' :1+23627K\+256*23628L\,13 :2+23627K\+256*23628L\,128 815 2=6"Enter the starting address of your driver software:";q:q:23321[,23670v\:23322[,23671w\:q=6 7\+256*23628L\,13 :2+23627K\+256*23628L\,128 507 6\+256*23628L\,13 :2+23627K\+256*23628L\,128 506 5K\+256*23628L\,13 :2+23627K\+256*23628L\,128 505 4K\+256*23628L\,13 :2+23627K\+256*23628L\,128 504 3K\+256*23628L\,13 :2+23627K\+256*23628L\,128 503 2\+256*23628L\,13 :2+23627K\+256*23628L\,128 502 03;1;" * Tri-Base Arithmetic * ":23658j\,8:h$(5):m$(17):A=10 :B=11 :C=12 :D=13 :E=14:F=15:(23740\+256*23741\+1),2:55239 +1),2:55239 \,13 :2+23627K\+256*23628L\,128 205 4K\+256*23628L\,13 :2+23627K\+256*23628L\,128 204 3K\+256*23628L\,13 :2+23627K\+256*23628L\,128 203 2\+256*23628L\,13 :2+23627K\+256*23628L\,128 202 0:5;1;" * Hex/Dec Loader * "'':23658j\,8:h$(4):h$="0000":A=10 :B=11 :C=12 :D=13 :E=14:F=15:(23740\+256*23741\+1),2:55228 +1),2:55228 627K\+256*23628L\,13 :2+23627K\+256*23628L\,128 1:(23740\+256*23741\+1),2:55216 99999999999999999999999999999999999999999999999999999999@*v\{d:w\*M\"b:v\????;b''''G0:8w#*M\++++++~րw:w\*M\##b:v\???? w#>w++w*K\"`*Y\"`+"K\O>@Nݯɯ N>@u  !0[*O\ s#r:[(#(y0y x֥E8J. oN.gy^(W:[^ y@00O:[(:2[2[2[7y2[![4K{\&o))) [#![I2[2[ [((,(D(D(R(Yyg y4 55 ۿG ={y{>>yA >AAyB(y![^#V by[![(` y w> @>8@ y22[:2[G0 G wIܯ( I`Kb*S\~#8 ~8+DM#^#V#*b[bKb~#8~+'~#8~+r#sKb #N#F DM#> #####>(<(> #>:( > +(#6#B8#!bDEFINE A = "" ABCDEFGHIJKLMNOPQRSTU ˾Ó!pbD!t"\!@~#/w$~w$ ~w :\wo&C~w$w?b!n(Ͱ:\@8(2 bO2%bÿ(M01 z(q#l4 ~/w#[z w2VbNv Ub5(6(*7(8 ,:\(%4w :\(5w:\(5v :\(4v!>[{\ô: b=_*{\