1 ! 12/01/85 10 ! L$="R/WS " for "R/WBIN" 20 ! 30 ! 40 !************************************************************************** 50 ! READ/WRITE ANY DISC SECTOR 52 ! Format :- RDISC "String",Sector#,MSUS$ 54 ! Format :- WDISC "String",Sector#,MSUS$ 56 ! String must be dimensioned to 256 60 !************************************************************************** 65 BPGM# EQU 205 70 NAM 205,R/WSECT 80 DEF RUNTIM 90 DEF ASCIIS 100 DEF PARSE 110 DEF ERMSG 120 DEF INIT 125 !************************************************************************* 130 PARSE BSZ 2 135 DEF RSP 136 DEF WSP 138 !************************************************************************* 140 RUNTIM BSZ 2 150 DEF RS. 155 DEF WS. 160 BYT 377,377 165 !************************************************************************* 170 ASCIIS BSZ 0 175 ASP "RDISC" 176 ASP "WDISC" 180 BYT 377 185 !************************************************************************* 190 ERMSG BSZ 0 200 BYT 377 205 !************************************************************************* 210 INIT RTN 220 !************************************************************************* 500 RSP BIN 510 PUBD R43,+R6 ! Save token for READ DISC 520 JSB =SCAN ! Fetch next token 530 JSB =STREF ! Parse a string reference 540 WINP JEZ ERR ! JIF not there 550 CMB R14,=54 ! Is next token a comma? 560 JNZ ERR ! JIF not 570 JSB =NUMVA+ ! Scan and parse a numeric 580 JEZ ERR ! JIF error 590 CMB R14,=54 ! Is next token a comma? 600 JNZ ERR ! JIF not 620 JSB =STREX+ ! Is next token a string? 630 JEZ ERR ! JIF not 640 BTOK POBD R55,-R6 ! Recover original token 650 LDB R56,=BPGM# ! Load binary pgm number 660 LDB R57,=371 ! and bpgm token 670 STMI R55,=PTR2- ! Push them 680 RTN ! Done 690 ! ***************************************************************** 700 ERR POBD R77,-R6 ! Clean up R6 stack 710 JSB =ERROR+ ! Call error routine 720 BYT 130 ! Error 88 BAD STATEMENT 730 RTN ! Done 740 ! ***************************************************************** 750 WSP BIN 760 PUBD R43,+R6 ! Save token for WRITE DISC 770 JSB =STREX+ ! Parse a string expression 775 JMP WINP 780 ! ***************************************************************** 1000 BYT 241 1010 RS. BIN 1020 DRP R40 1030 CLB R40 1040 STBD R40,=LAB1 1050 LDB R40,=2 1060 STBD R40,=LAB2 1070 DRP R20 1080 ARP R6 1085 LDM R20,R6 1090 ADM R20,=7,0 1100 STMD R20,=LAB3 1110 DRP R14 1120 LDMD R14,=LAB4 1130 DRP R12 1140 ARP R14 1145 STMD R12,R14 1150 JSB =ROMJSB 1160 DEF LAB5 ! MASS STORAGE 1170 BYT 320 1180 JSB =LAB6 1190 DRP R46 1200 ARP R32 1205 STM R46,R32 1210 DRP R75 1220 LDM R75,=200,206,0 1230 STMD R75,=LAB7 1240 JSB =ROMJSB 1250 DEF LAB8 ! MASS STORAGE 1260 BYT 320 1270 DRP R40 1280 CLB R40 1290 STBD R40,=LAB2 1300 DRP R17 1310 CMB R17,=300 1320 JCY JL9 1330 DRP R66 1340 LDM R66,=0,1 1350 ARP R12 1355 PUMD R66,+R12 1360 DRP R65 1370 LDM R65,=200,206,0 1380 PUMD R65,+R12 1390 JSB =LAB10 1400 JL9 RTN 1410 !*********************************************** 1420 BYT 241 1430 WS. BIN 1440 DRP R40 1450 CLB R40 1460 STBD R40,=LAB1 1470 LDB R40,=2 1480 STBD R40,=LAB2 1490 DRP R20 1500 ARP R6 1505 LDM R20,R6 1510 ADM R20,=7,0 1520 STMD R20,=LAB3 1530 DRP R14 1540 LDMD R14,=LAB4 1550 DRP R12 1560 ARP R14 1565 STMD R12,R14 1570 JSB =ROMJSB 1580 DEF LAB5 ! MASS STORAGE 1590 BYT 320 1600 JSB =LAB6 1610 DRP R46 1620 ARP R32 1625 STM R46,R32 1630 DRP R65 1640 ARP R12 1645 POMD R65,-R12 1650 STMD R65,=LAB7 1660 DRP R46 1670 POMD R46,-R12 1680 JSB =ROMJSB 1690 DEF LAB11 ! MASS STORAGE 1700 BYT 320 1710 DRP R40 1720 CLB R40 1730 STBD R40,=LAB2 1740 RTN 1750 !*********************************************** 1860 ROMJSB DAD 6223 1870 ERROR+ DAD 10220 1880 ERROR DAD 10224 1890 STREX+ DAD 23721 1900 LAB1 DAD 101671 1910 LAB2 DAD 104224 1920 LAB3 DAD 104066 1930 LAB4 DAD 103412 1940 LAB5 DAD 61371 1950 LAB6 DAD 12153 1960 LAB7 DAD 177715 1970 LAB8 DAD 77126 1980 LAB10 DAD 46472 1990 LAB11 DAD 77040 2000 LAB12 DAD 104070 2010 SCAN DAD 21110 2020 STREF DAD 24056 2030 NUMVA+ DAD 22403 2040 PTR2- DAD 177715 2100 FIN