Listing of file='BSC*010M' on disk='vmedia/731-0111.wvd.zip'
# Sector 451, program filename = 'BSC*010M'
0010 REM BSC*010M, (04/03/81), BISYNC EMULATOR FOR MVP PROCESSOR
0100 GOTO 9900
: ON AGOTO 150,4500,5000,6000
0150 COM P$(4)2,D$(3)9,I$(4)64,O$(255)1,E$1,A1$(5)2,A2$(5)2,G$(12)1,F1,F1$2,F4
$2
0250 F9=0
: IF C=1THEN 290
0260 IF E$>HEX(00)THEN 390
: $IF ON #9,5800
: INIT(20)O$()
: GOSUB 4000
0290 A2$(2)=HEX(0050)
0300 $GIO#6(440210208802424010208A40421010208A10A200,A2$())O$()<,A2$(2)>
: $GIO#6(G$,G$())A$
: IF A2$(4)=HEX(0000)THEN 260
: ON VAL(G$(5))GOTO 350,500,370,300
: GOTO 500
0350 N$="TRANSMISSION ABORTED"
: GOSUB 700
: P$(2)="TA"
: GOTO 5140
0370 N$="TRANSMISSION ABORTED"
: GOSUB 700
: P$(2)="TA"
: GOTO 5435
0390 N$="TRANSMISSION COMPLETED"
: GOSUB 700
: P$(2)="TC"
0400 $GIO#6(G$,G$())A$
: P$(1)=G$(5)
: $PSTAT=P$()
: ON VAL(G$(5))GOTO 5140,500,5435,400
: GOTO 500
0430 AND (A1$(2),02)
: GOSUB 3000
0450 $IF ON #9,5830
: $GIO#6(440310208803C6608601111304000755156703021546,A1$())I$()
: $GIO#6(G$,G$())A$
: IF A1$(4)=HEX(5528)THEN 430
: ON VAL(G$(5))GOTO 510,500,450,500
0500 P$(1)=HEX(05)
: $PSTAT=P$()
: STOP "SYSTEM ERROR"
0510 AND (A1$(1),01)
: A1$(3)="11"
: P$(2)="RC"
: ON VAL(A1$(1))GOTO 5140
: A1$(1)=HEX(0100)
: A1$(2)=HEX(0000)
: INIT(2A)I$()
: N$,STR(I$(1),25,17)="RECEPTION ABORTED"
: P$(2)="RA"
: A1$(5)=HEX(0050)
: PRINT STR(D8$,1,9);TAB(64)
: PRINT STR(D8$,1,9);N$
: GOTO 5140
0700 M,N=0
0710 PRINT STR(D8$,1,4);TAB(50);HEX(0D);N$
: RETURN
3000 STOP "Save"
4000 STOP "Read"
4100 STOP "Open Read"
4500 STOP "Device Ready"
5000 IF I$="1"THEN 5120
: INIT(00)A1$(),A2$(),D$(),E$
: G$(1)=HEX(00)
: G$(2)=HEX(16)
: G$(3)=HEX(AB)
: G$(4)=HEX(40)
: G$(5)=HEX(01)
: D$(1)=D8$
: STR(D$(2),1,5)=D8$
: STR(D$(3),1,7)=D8$
: F1$=HEX(A001)
: F4$=HEX(A040)
: I$="1"
5120 DEFFN'0
: F9=0
: IF F8<>1THEN SELECT PRINT 005,#4005,#5215
: PRINT HEX(03);
: GOSUB '41(HEX(01))
5140 C=0
: IF F8<>1THEN GOSUB 5725
: C=N
: IF M=1THEN 5525
: E$=HEX(00)
5170 $IF ON #9,5860
: IF F9=1THEN 5190
: GOSUB '80
: IF B$(3)<>"0"THEN 5190
: ON F8GOTO 5180
: F8=-1
5180 GOSUB 5585
: $GIO#6(G$,G$())A$
: P$(1)=G$(5)
: STR(P$(1),2)=B$(3)
: $PSTAT=P$()
: ON VAL(G$(5))GOTO 5185,5545,5435,500
: GOTO 500
5185 $BREAK
: GOTO 5170
5190 B$(3)="1"
: F8=0
: GOTO 5180
5200 ON VAL(C$)+1GOTO 5120,5420,5455,5470
: GOTO 5170
5210 IF C$<>HEX(0D)THEN 5170
: PRINT HEX(010A);TAB(63);HEX(0D);"BACKSPACE";TAB(25);"LINE ERASE";TAB(52);
"C/R = END"
: PRINT STR(D8$,1,4);"....!....1....!....2....!....3....!....4....!....5...
.!....6..."
: PRINT TAB(64);STR(D8$,1,5);
: INIT(20)I$(),O$()
: SELECT PRINT 405
: PRINT HEX(050D);
: I$(1)="/*$"
: A=4
: PRINT I$(1);
5270 KEYIN C$,5280,5370
: GOTO 5270
5280 IF C$=HEX(0D)THEN 5375
: IF C$=HEX(08)THEN 5335
: IF C$=HEX(E5)THEN 5355
: IF C$<HEX(20)THEN 5270
: $TRAN(C$,G3$)R
: PRINT C$;
: STR(I$(1),A,1)=C$
: A=A+1
: IF A<64THEN 5270
: A=63
: PRINT HEX(08);
: GOTO 5270
5335 IF A=1THEN 5270
: PRINT HEX(08);
: A=A-1
: GOTO 5270
5350 INIT(20)I$()
: PRINT HEX(0D);STR(I$(1),1,63);HEX(0D);
: RETURN
5355 GOSUB 5350
: A=1
: GOTO 5270
5370 IF C$>HEX(00)THEN 5270
: GOSUB 5350
5375 SELECT PRINT 005
: PRINT HEX(0D0C);TAB(64);HEX(0D)
: IF I$(1)=" "THEN 5140
: $PACK(F=F4$)O$()FROMI$(1)
: STR(A2$(2),2)=HEX(50)
: E$=HEX(01)
: A2$(1)=HEX(05)
: C,M,N=1
: GOTO 5460
5420 PRINT HEX(010A);TAB(64);HEX(0D);STR(D8$,1,13);HEX(09090909090909);TAB(46)
;"ATTENTION"
: GOSUB '83
: GOTO 5120
5435 B$(3)="1"
: GOSUB 5585
: PRINT HEX(010A);TAB(63);HEX(0D);"'0=ABORT";STR(D8$,1,9);HEX(0D);TAB(64)
: GOTO 450
5455 IF STR(W$,1,3)="WPS"THEN 5470
: A2$(1)=HEX(00)
5460 F1=-1
: GOTO 5480
5470 A2$(1)=HEX(02)
: F1=1
5480 PRINT HEX(010A);TAB(63);HEX(0D);"'0=ABORT";STR(D8$,1,9);HEX(0D);TAB(64);H
EX(0D);STR(D8$,1,4);TAB(50);HEX(0D);"SEND";
: IF C=1THEN 5525
: IF F1=-1THEN 5500
: PRINT " TRANSPARENT"
5500 PRINT HEX(0D)
: GOSUB 4100
: C=0
: IF E$>HEX(00)THEN 5120
: E$=HEX(00)
: M=1
: N=0
5525 GOSUB '41(HEX(02))
5530 $GIO#6(G$,G$())A$
: P$(1)=G$(5)
: $PSTAT=P$()
: ON VAL(G$(5))GOTO 5120,5545,5435,250
: GOTO 500
5545 $IF ON #9,5890
: GOTO 5530
5555 IF C$<>HEX(00)THEN 5530
: $GIO#6(458044001020880040104080A2004404,Z$)G9$()<1,6>
: FOR A=1TO 100
: NEXT A
: GOTO 5120
5580 DEFFN'41(B$(2))
5585 G2$=G2$(1)
: $GIO#6(44001020880042104220A2004404,G2$)B$()
: B$(2)=HEX(00)
: RETURN
5605 DEFFN'31
: $GIO#6(45804406,Z$)
: PRINT "Reset & Disconnect for ";
: FOR A=4TO 1STEP -1
: PRINT A;
: $GIO(75FF75FF75FF75FF,Z$)
: NEXT A
: $BREAK
: $GIO#6(010002FF1213440010208800,Z$)
: $GIO#6(120040104080A2004404,Z$)G9$()
: STOP "DONE"
5680 C$=HEX(FF)
: ON F8GOTO 5720
: KEYIN C$,5700,5690
: STOP "5680 LOOKING FOR KBD"
5690 IF C$<>HEX(1E)THEN 100
: IF F8<0THEN 5720
: N$="FOREGROUND ONLY --READY RECEIVE DEVICE"
: GOTO 710
5700 IF A=3THEN 100
: C$=HEX(FF)
: RETURN
: STOP "5705 BACKGROUND"
5710 DEFFN'30
5720 F8=-F8
: ON F8+2GOTO 5725,5725,5760
5725 SELECT #9001,PRINT 005,#4005
: PRINT HEX(030A0A0A);N$
: N$=" "
: STR(G$,1,20)=HEX(710540064001400A400A400A400A400A400A400A)
: PRINT HEX(0D01),"ACTIVE KEYBOARD CONTROLS---2200 MVP BATCH EMULATOR"
: PRINT "'0=ABORT"
: IF G$(5)<>HEX(01)THEN 5745
5744 PRINT HEX(0C);"'0=CONTROL '1=ATTN '2=SEND '3=SEND TRSP '30=Bkgnd C/R
=KYBD"
5745 PRINT STR(D8$,1,11);"---MODEM SIGNALS---";TAB(31);"BLOCKS BLOCKS"
: PRINT "DTR DSR RTS CTS CAR","SENT RECD"," --MODE--"
: RETURN
5760 STR(G$,1,20)=STR(G$,31,18)
: SELECT P9
: PRINT HEX(03);" TC BATCH EMULATOR NOW IN BACKGROUND"
: SELECT P
: SELECT #9005,PRINT 000,#4000
: $RELEASETERMINAL
: RETURN
5800 A=1
: GOSUB 5680
: IF C$<>HEX(00)THEN 260
: F9=0
: GOSUB '41(HEX(03))
: GOTO 250
5830 A=2
: GOSUB 5680
: IF C$<>HEX(00)THEN 450
: B$(3)="1"
: GOSUB '41(HEX(03))
: F9=1
: GOTO 450
5860 A=3
: GOSUB 5680
: IF C$=HEX(0D)THEN 5210
: GOTO 5200
5890 A=4
: GOSUB 5680
: GOTO 5555
: KEYIN C$,5720,5720
: RETURN
6000 STOP "Attention"