image of READY prompt

Wang2200.org

Listing of file='TBO.\$GIO' on disk='vmedia/toolbox.wvd.zip'

# Sector 578, program filename = 'TBO.$GIO'
0010 %.TBO.$GIO 12/30/87
0015 LOAD T"$GIOs"5000,9999BEG 20
   : ERRORGOTO 20
0016 DEFFN'15
0020 REM %0 A$ A$80, B$ B$1, C$ C$1, A A, B B, C C
0030 REM %0 A$(   Address array,  A9 # address items, A1$ addr #1, A2$ addr #2
0040 REM %0 A5$ Addr array item, C Buffer ptr, C0 Buffer ptr reset, D Mode/Pas
     s
0050 COM A$(100,60)5,A9
   : REM /.ADDRESS ARRAY
   : DIM A1$2,A2$2,A5$5,A9$2
0060 DIM W$(60)4,R$60,L$32,H$2,H0$2,H1$2,K$1,A$80,B$1,T$80,M$2,P$1,H8$2,H4$4,C
     $80,D$80
0070 GOSUB 5000
0140 REM %0 F$ File name, W$( 4K ucode area
0150 REM %0 L$ Display line, H$ Ucode addr, H0$ Ucode addr, H1$ Ucode addr w/a
0160 REM %0 T$ Listing Title, K$ KBD w/a
0170 SELECT PRINT 005(80)
   : PRINT HEX(03);"$GIO DISASSEMBLER"
0180 PRINT C$
   : PRINT D$
0190 INPUT "TITLE FOR LISTING",T$
   : IF T$=" "THEN 200
   : SELECT PRINT 215(125)
   : PRINT HEX(0C0D0E);T$
0200 R$=" "
   : LINPUT "Description",-R$
0210 H8$=HEX(0000)
0220 REM %^.Control loop
0230 INIT(FF)A$()
   : STR(A$(),1,5)="P"&HEX(0A800101)
   : A9=1
   : SELECT PRINT 005(80)
0240 IF T$<>" "THEN SELECT PRINT 215(120)
0250 P=A9
   : P$="D"
   : A9$=STR(A$(),(P*5)+7,2)
   : REM %.Pass 2. List program with mnemonics
   : GOSUB 270
   : PRINT HEX(07)
   : STOP "END OF JOB "#
0260 REM %..Read loop
0270 C=1
0280 IF T$<>" "THEN PRINT HEX(0C0D0E);T$
0290 GOSUB 310
   : SELECT PRINT 005
   : RETURN
0300 REM %^.Disassemble code
0310 M=LEN(W$())
0320 FOR A=1 TO M STEP 2
   : A2$,B$=STR(W$(),A,2)
   : RESTORE LINE 990
   : HEXUNPACKA2$ TO H4$
   : PRINT HEXOF(H8$);"  ";H4$;"   ";
0330 READ A$
   : IF A$=" "THEN 370
   : IF STR(A$,,1)<>STR(H4$,,1)THEN 330
   : B$=STR(A$,2)
   : IF B$="r"OR B$="h"OR B$="a"THEN 360
   : IF STR(A$,,2)<>STR(H4$,,2)THEN 330
   : IF STR(A$,,4)=STR(H4$,,4)THEN 360
0340 B$=STR(A$,3)
   : IF B$="r"OR B$="h"OR B$="a"THEN DO
   : B$=STR(A$,4)
   : IF B$<>"r"OR B$<>"h"OR B$<>"a"THEN 350
   : END DO
   : IF STR(A$,3,1)<>STR(H4$,3,1)THEN 330
0350 B$=STR(A$,4)
   : IF B$="r"OR B$="h"OR B$="a"THEN DO
   : B$=STR(A$,3)
   : IF B$<>"r"OR B$<>"h"OR B$<>"a"THEN 360
   : END DO
   : IF STR(A$,4,1)<>STR(H4$,4,1)THEN 330
0360 PRINT STR(A$,,4);" ";STR(A$,5,LEN(A$)-4);
0370 PRINT
   : ADDC(H8$,01)
   : NEXT A
   : STOP "Display is of last sequence from line 5000+ Delete and key '15"
0380 DEFFN'14
   : LIST 5000,
0990 REM %^.$GIO command set
1000 DATA "0rhh.Store Immediate hh in Register r"
1010 DATA "1000.Set Condition code true"
1020 DATA "1010.Set Condition code if device is ready"
1030 DATA "1020.Wait for ready with timeout"
1040 DATA "11rr.Move Register r1 to Register r2"
1050 DATA "1200.Disable delay"
1060 DATA "12r1.Set coarse delay (50 usecs) before OBS or CBS"
1070 DATA "12r2.Set timeout delay (1 Msecs.) in r and r+1."
1080 DATA "13dd.Set fine delay   ( 5 usecs.) in d and d+1."
1090 DATA "14rr.IF r1 NE r2 set compare bit 8,8 to 1."
1100 DATA "15rr.IF r1 NE r2 set compare bit 8,8 to 1, then condition code"
1110 DATA "16aa.IF complemented status."
1120 DATA "17aa.IF status."
1130 DATA "18aa.Set data buffer to Arg.3 element 'aa'"
1140 DATA "19r0.Increment register r by 1."
1150 DATA "19r1.Increment register r by 2."
1160 DATA "19r2.Decrement register r by 2."
1170 DATA "19r3.Decrement register r by 1."
1180 DATA "19r4.Increment register pair by 1."
1190 DATA "19r5.Increment register pair by 2."
1200 DATA "19r6.Decrement register pair by 2."
1210 DATA "19r7.Decrement register pair by 1."
1220 DATA "1Aaa.Set data buffer to Arg.3 element 'aa'"
1230 DATA "1A00.Increment data buffer ptr to next buffer to register r"
1240 DATA "1Br1.Write 1 byte from data buffer to register r"
1250 DATA "1Br2.Read  1 byte from data buffer to register r"
1260 DATA "1Crr.Set condition code if register r1 = register r2"
1270 DATA "1Drr.Set condition code if register pair r1 = register r2"
1280 DATA "1Err.Set condition code if register r1 > register r2"
1290 DATA "1Frr.Set condition code if register pair r1 > register r2"
1300 DATA "40hh.WR,OBS/Imm"
1310 DATA "41hh.   OBS/Imm"
1320 DATA "42r0.WR,OBS/Indirect"
1330 DATA "43r0.   OBS/Indirect"
1340 DATA "44hh.WR,CBS/Immediate"
1350 DATA "45hh.   CBS/Immediate"
1360 DATA "46r0.WR,CBS/Indirect"
1370 DATA "47r0.   CBS/Indirect"
1380 DATA "50hh.WR,OBS/Imm,W5,CPB,IBS"
1390 DATA "51hh.   OBS/Imm,W5,CPB,IBS"
1400 DATA "52rr.WR,OBS/Ind,W5,CPB,IBS,Save"
1410 DATA "53rr.   OBS/Ind,W5,CPB,IBS,Save"
1420 DATA "54hh.WR,CBS/Imm,W5,CPB,IBS"
1430 DATA "55hh.   CBS/Imm,W5,CPB,IBS"
1440 DATA "56rr.WR,CBS/Ind,W5,CPB,IBS,Save"
1450 DATA "57rr.   CBS/Ind,W5,CPB,IBS,Save"
1460 DATA "60hh.WR,OBS/Imm,W5,CPB,IBS,    ,Verify"
1470 DATA "61hh.   OBS/Imm,W5,CPB,IBS,    ,Verify"
1480 DATA "62rr.WR,OBS/Ind,W5,CPB,IBS,Save,Verify"
1490 DATA "63rr.   OBS/Ind,W5,CPB,IBS,Save,Verify"
1500 DATA "64hh.WR,CBS/Imm,W5,CPB,IBS,    ,Verify"
1510 DATA "65hh.   CBS/Imm,W5,CPB,IBS,    ,Verify"
1520 DATA "66hh.WR,CBS/Ind,W5,CPB,IBS,Save,Verify"
1530 DATA "67hh.   CBS/Ind,W5,CPB,IBS,Save,Verify"
1540 DATA "68hh.WR,OBS/Imm,W5,CPB,IBS,     Verify,  Set CC if VFY bit set"
1550 DATA "69hh.   OBS/Imm,W5,CPB,IBS,     Verify,  Set CC if VFY bit set"
1560 DATA "6Arr.WR,OBS/Ind,W5,CPB,IBS,Save,Verify,  Set CC if VFY bit set"
1570 DATA "6Brr.   OBS/Ind,W5,CPB,IBS,Save,Verify,  Set CC if VFY bit set"
1580 DATA "6Chh.WR,CBS/Imm,W5,CPB,IBS,Save,Verify,  Set CC if VFY bit set"
1590 DATA "6Dhh.   CBS/Imm,W5,CPB,IBS,    ,Verify,  Set CC if VFY bit set"
1600 DATA "6Err.WR,CBS/Ind,W5,CPB,IBS,Save,Verify,  Set CC if VFY bit set"
1610 DATA "6Frr.   CBS/Ind,W5,CPB,IBS,Save,Verify,  Set CC if VFY bit set"
1630 DATA "71hh.ABS/IMM."
1640 DATA "73r0.ABS/Ind."
1650 DATA "75hh.Delay immediate"
1660 DATA "760r.Status request in register r"
1670 DATA "77r0.Delay immediate"
1680 DATA "80hh.CPB,IBS,Verify/Imm"
1690 DATA "81hh.WR,CPB,IBS,Verify/Imm"
1700 DATA "82rr.   CPB,IBS,Save,Verify/Imm"
1710 DATA "83rr.WR,CPB,IBS,Save,Verify/Imm"
1720 DATA "8600.   CPB,IBS."
1730 DATA "860r.   CPB,IBS,Save"
1740 DATA "862r.   CPB,IBS,Check ENDI + Save"
1750 DATA "8700.WR CPB,IBS."
1760 DATA "870r.WR CPB,IBS.Save"
1770 DATA "872r.WR CPB,IBS.Check ENDI + Save"
1780 DATA "88hh.   CPB,IBS,Verify/Imm.   Set CC if VFY bit set"
1790 DATA "89hh.WR,CPB,IBS,             Verify/Imm. Set CC if VFY bit set"
1800 DATA "8Arr.   CPB,IBS,SAVE,        Verify/Ind. Set CC if VFY bit set"
1810 DATA "8Brr.WR,CPB,IBS,SAVE,        Verify/Ind. Set CC if VFY bit set"
1820 DATA "920r.CPB,IBS.Save,WR,Echo/OBS"
1830 DATA "930r.CPB,IBS.Save,   Echo/OBS"
1840 DATA "960r.CPB,IBS.Save,WR,Echo/CBS"
1850 DATA "970r.CPB,IBS.Save,   Echo/CBS"
1860 DATA "A00h. (WR,DataOut/OBS),LEND"
1870 DATA "A10h. (   DataOut/OBS),LEND"
1880 DATA "A20h. (WR,DataOut/OBS),LEND (25 usec. version)"
1890 DATA "A40h. (WR,DataOut/CBS),LEND"
1900 DATA "A50h. (   DataOut/CBS),LEND"
1910 DATA "A60h. SCAN DATA BUFFER, CALCULATE LRC, LEND"
1920 DATA "Ahhh. Multicharacter output"
1930 DATA "C22h.(CPB,IBS, No timeout or delay, Check ENDI, SaveData) LEND"
1940 DATA "C3hh.( WR,IBS, Check T1, SaveData, Check T2) LEND"
1950 DATA "C5hh.(CPB,IBS,       Echo/OBS,Check T,SaveData, Check T) LEND"
1960 DATA "C6hh.(CPB,IBS,Check T1, SaveData, Check T2) LEND"
1970 DATA "C8hh.(WR, OBS/W5, CPB, IBS,  Check T1,SaveData, Check T2) LEND"
1980 DATA "Daaa.Branch to address aaa, if true"
1990 DATA "Eaaa.Branch to address aaa, if false"
2000 DATA " "
5000 REM %^.$GIO Sequences
5010 D$="Description"
   : R$="Release containing code"
   : W$()=HEX(010210204000)
8900 RETURN