Listing of file='BSR*S/R' on disk='vmedia/tbo_81.wvd.zip'
# Sector 632, program filename = 'BSR*S/R' 0010 REM BSR*S/R 07/08/80, BSC SUBROUTINE INTERFACE SEND/RECEIVE/STATUS 0020 REM %--DEFINE AND SET VARIABLES 0030 REM GIO ARGUMENTS 0040 COM G9$(1)6,G$64,B$(3)1 0050 COM I$(3)64,O$(192)1,A1$(5)2,A2$(5)2,G$(12)1 0060 REM %.Variable meanings 0070 REM %0 A$ A$64, A A w/a 0080 REM %0 A1$( Arg 2. Receive, A2$( Arg 2. Send 0090 REM %0 B$(1 TC Load Flag, B$(2 TC Control Byte 0100 REM %0 B$(3 Rcv Ready or Not, B$( TC Control Data 0110 REM %0 G$(5 TC status byte 0120 REM %0 G2$( RAM control addr, G9$( BID reset addr 0130 REM %0 G$ Status Arg.1., G$( Status Arg.2. 0140 REM %0 I$( Input from TC, O$( Output to TC 0150 REM %0 '31 Reset/Disconnect, #6 T.C. Board 0160 REM %0 '40 Get TC status, '41 Send TC controls 0170 REM %0 '42 Send TC data, '43 Receive TC data 0180 REM %^ 0190 REM %.'40 Get TC status 0200 DEFFN'40 0210 $GIO#6(G$,G$())A$ : RETURN 0220 REM . Check return code G$(5) 01=ctrl 02=Bid 03=Rcv 04=Snd 0230 REM .NOTE --- From Ctrl G$(5) 01=Norm 02=O.K. 03=O.K. 04=O.K. 0240 REM .NOTE --- From Bid G$(5) 01=?? 02=?? 03=?? 04=?? 0250 REM .NOTE --- From Send G$(5) 01=TA 02=ERR 03=TA 04=Norm 0260 REM .NOTE --- From Rcv G$(5) 01=RA? 02=?? 03=?? 04=?? 0270 REM %^.Send 0280 REM .Step 1). Bid for Line 0290 REM .Set Receive device ready indicator 0300 REM . B$(1)=" " ucode param 0310 REM . B$(2)>'00' TC control, set on GOSUB'41(xx) then reset ='00' 0320 REM . B$(3)="0" Rcv Ready, ="1" Rcv NOT Ready 0330 REM .Step 2).Set data to send into O$() 0340 REM .Step 3).Set byte count into A2$(2) HEX(0050) ie. byte count =80 0350 REM .Step 4). GOSUB'42 to send data 0360 REM .Step 5). Check return code G$(5) 01=ctrl 02=Bid 03=Rcv 04=Snd 0370 REM .NOTE --- Check return code G$(5) 01=O.K. 02=ERR 03=O.K. 04=Norm 0380 REM .NOTE --- From Send G$(5) 01=TA 02=ERR 03=TA 04=Norm 0390 REM .NOTE --- TA means Transmission Aborted 0400 REM %.'42 Send 0410 DEFFN'42 0420 A2$(2)=HEX(0050) : REM /Send fixed length 80 on 2780 or 3780 0430 $GIO#6(6C02 6A40 6A10 A200,A2$())O$()<,A2$(2)> 0440 $GIO#6(G$,G$())A$ : IF A2$(4)=HEX(0000)THEN 450 : ON VAL(G$(5))-3 GOTO 430 0450 RETURN 0460 REM %.Rcv 0470 REM .Step 5). Check return code G$(5) 01=ctrl 02=Bid 03=Rcv 04=Snd 0480 REM .NOTE --- Check return code G$(5) 01=O.K. 02=ERR 03=Norm 04=ERR 0490 REM .NOTE --- From Rcv G$(5) 01=RA? 02=?? 03=?? 04=?? 0500 REM %.'43 Receive 0510 DEFFN'43 0520 AND (A1$(2),02) 0530 $GIO#6(6C03 C660 8601 1113040007551567 03021546,A1$())I$() : $GIO#6(G$,G$())A$ : IF A1$(4)=HEX(5528)THEN 540 : ON VAL(G$(5))-2 GOTO 530 0540 RETURN 0550 REM %^.Other T.C. commands 0560 REM .Reset out of bid and reset BID address 0570 $GIO#6(4580 4400 40104080 A200 4404,A$)G9$()<1,6> 0580 FOR A=1 TO 100 : NEXT A 0590 RETURN 0600 REM %'31 Hard RESET from stop 0610 DEFFN'31 : $GIO#6(4580 4406 01FF02F0 1211 4400 1200 40104080 A200 4404,A$)G9$()<1,6> : STOP "RESET & DISCONNECT" 0620 REM % '41 Set TC BOARD controls 0630 DEFFN'41(B$(2)) 0640 $GIO#6(6C00 40174074 A200 4404,A$)B$() : B$(2)=HEX(00) : RETURN 0650 REM .Send Bid 0660 GOSUB '41(HEX(02)) : RETURN 0670 REM .Send Abort 0680 GOSUB '41(HEX(03)) : RETURN