Listing of file='BSC-CARD' on disk='vmedia/tbo_81.wvd.zip'
# Sector 758, program filename = 'BSC-CARD' 0010 REM BSC-CARD 11/13/75 MAKE BISYNC DISK/CASSETTE FILES FROM CARD READER : COM D,F$ 0020 DIM F1$2,F3$2,B$(4)62 0030 DIM X$(2,255)1 : F1$=HEX(A001) 0040 DIM K$1,Q8$17,Q9$64,R$(255)1 : GOTO 2480 : REM %PERIPHERAL DEVICES 0050 REM %0 #0 CASSETTE, #1 CARD READER, #2 DISK 0060 REM %SPECIAL FUNCTIONS 0070 REM %0 '12 OPEN DISK FILE, '13 MAKE DISK FILE 0080 REM %0 '14 MAKE TAPE FILE, '15 KEY PICTURE 0090 REM %0 '31 RECORD FORMAT, '82 CARD INPUT S.R. 0100 REM %VARIABLES 0110 REM %0 A DISK SECTOR, A1 START SECTOR, A9 END SECTOR 0120 REM %0 B BUFFER PTR, C1$ CARD CONTROLS 0130 REM %0 D DEVICE FLAG, E LAST RECORD FLAG, F0 END INDICATOR 0140 REM %0 F$ FILE NAME, F1$ (A001), F3$ (A03E) 0150 REM %0 K$ K$1, Z Z 0160 REM %0 R$( INPUT BUFFER, B$( OUTPUT BUFFER, X$( INTERIM BUFFER 0170 REM %0 Q2$ CRT ARG.2, Q8$ CRT LINE, Q9$ CRT COLUMN 0180 REM %0 L L.R. BYTE COUNT, R1 OUTPUT BLOCK #, S INPUT BLOCK # 0190 REM %0 R2 L.REC. #, S9 # DISK SECTORS 1000 DEFFN'82 : REM %'82 INPUT S.R. (CARD READER) : IF S<0THEN 1140 1010 GOSUB 1030 : RETURN 1020 PRINT "REFILL CARD READER" 1030 INIT(20)R$() : DATA LOAD BT(N=82)#1,R$() 1040 IF R$(81)<>HEX(50)THEN 1090 : IF R$(82)<>HEX(00)THEN 1080 1050 SELECT PRINT 005 : PRINT STR(Q8$,1,5); : $GIO/005(A000,Q2$)R$()<1,64> : PRINT : $GIO/005(A000,Q2$)R$()<65,15> 1060 S=S+1 : RETURN 1070 REM 80 NOT READY 40 HOPPER EMPTY 20 STACKER FULL 10 PICK CHECK 08 RE AD ALERT 04 SHORT CARD 02 ASCII ERROR 1080 DIM C1$2 : K$,STR(C1$,2,1)=R$(82) : REM /STATUS 1090 STR(C1$,1,1)=R$(81) : REM /COUNT : SELECT PRINT 005 : PRINT STR(Q8$,1,8),,,,,HEX(0C); : IF S>0THEN 1100 : PRINT "READY CARD READER" : IF STR(C1$,1,1)<>HEX(50)THEN 1030 : GOTO 1060 1100 IF C1$=HEX(50C0)THEN 1060 1110 PRINT "CARD READER STATUS="; : HEXPRINT C1$; : PRINT " "; 1120 IF C1$=HEX(0020)THEN 1130 : IF C1$<>HEX(00C0)THEN 1030 1130 IF F0=0THEN 1020 : E=1 : RETURN 1140 SELECT #1 629 : REM /OPEN CARD READER FILE : GOTO 1090 2000 REM %MAKE DATA BLOCKS 2010 PRINT " --80 COLUMN CARD IMAGES" : S=-1 : B=3 : PRINT STR(Q8$,1,9);"SAVED=0","LEFT=";S9 2020 PRINT HEX(010A);"KEY S.F.'0 TO END FILE " 2030 IF F0=0THEN 2040 : PRINT HEX(010A);"END FILE AT HOPPER EMPTY" 2040 PRINT STR(Q8$,1,3);"DATA BLOCK=";R1+1,"CARD IMAGE=";R2+1 2050 PRINT "....!....1....!....2....!....3....!....4....!....5....!....6...." : PRINT ,,,,,,,,"!....7....!....8";HEX(0C5F) 2060 GOSUB '82 : L=VAL(R$(81)) 2070 KEYIN K$,2080,2080 : GOTO 2090 2080 IF K$<>HEX(00)THEN 2090 : F0=1 2090 IF B+L+2<256 THEN 2100 : GOSUB 2140 2100 BIN(X$(1,B))=L : B=B+1 2110 $PACK(F=F1$)X$()<B,255> FROM R$() 2120 B=B+L : R2=R2+1 : IF E<>1THEN 2030 : X$(1,1)=HEX(F0) : B=B-1 : GOTO 2150 2130 R2=R2+1 : GOTO 2030 : REM % OUTPUT BLOCK 2140 X$(1,1)=HEX(00) 2150 BIN(X$(1,2))=B : B=3 2160 $UNPACK(F=F3$)X$()TO B$() : R1=R1+1 2170 S9=S9-1 : PRINT STR(Q8$,1,9);"SAVING=";R1,"LEFT=";S9 2180 ON DGOTO 2250 2190 REM DATA SAVE #2,B$() : REM ^ERR 50 PROTECTED TAPE 2200 PRINT STR(Q8$,1,9);"SAVED " : IF E<1THEN 2230 2210 REM DATA SAVE #2,END 2220 PRINT "FILE CREATED" : IF E=2THEN 2240 : E=0 2230 RETURN 2240 STOP " END OF FILE FORCED--ASSIGNED DISK AREA TOO SMALL" : REM %^ 2250 IF S9<2THEN 2265 : DATA SAVE DC #2,B$() : PRINT STR(Q8$,1,9);"SAVED " : IF E<1THEN 2230 2260 STR(B$(1),1,1)=HEX(F0) : DATA SAVE DC #2,B$() : DATA SAVE DC #2,END : R1=R1+1 : GOTO 2220 2265 E=2 : GOTO 2260 2270 DEFFN'11 : REM %'11 OPEN OLD : PRINT "OPEN AN EXISTING DISK FILE" : D=0 : GOTO 2290 2280 DEFFN'12 : REM %'12 OPEN NEW : PRINT "OPEN A NEW DISK FILE" : D=1 2290 INPUT "DISK OUTPUT 1=(F)310 2=(R)B10 3=(F)320 4=(R)B20",Z 2300 ON Z GOTO 2310,2320,2330,2340 : GOTO 2290 2310 SELECT #2 310 : GOTO 2350 2320 SELECT #2 B10 : GOTO 2350 2330 SELECT #2 320 : GOTO 2350 2340 SELECT #2 B20 2350 PRINT "FILE NAME IS ";F$;" OR"; : INPUT F$ 2360 ON DGOTO 2390 2370 DATA LOAD DC OPEN T #2,F$ : REM ^ERR 80 SHOWS NO FILE WITH THIS NAME...S.F.'11 REOPEN FILE '12 OPE N NEW FILE 2380 GOTO 2410 2390 INPUT "# OF SECTORS TO SAVE=",S9 : IF S9<3THEN 2390 2400 DATA SAVE DC OPEN T$ #2,S9,F$ : REM ..^ERR 79=A FILE ALREADY EXISTS WITH THIS NAME....S.F.'11 REOPEN FILE '12 OPEN NEW FILE 2410 PRINT "FILE OPENED" : FOR Z=1 TO 100 : NEXT Z 2420 DEFFN'13 : REM %'13 TO DISK : D=1 : E=0 2430 PRINT HEX(03);"MAKE BISYNC DATA DISK FILE--";F$ 2440 LIMITS T#2,F$,A,A9,Z : S9=A9-A 2450 DATA LOAD DC OPEN T #2,F$ : REM ^ERR 47 SAYS FILE NOT OPENED KEY S.F. '11 TO OPEN A NEW FILE '12 T O REOPEN AN OLD FILE 2460 R,R1=0 : GOTO 2010 2470 DEFFN'14 : REM %'14 TO TAPE : D=0 : PRINT HEX(03);"MAKE BISYNC DATA CASSETTE TAPE"; : SELECT #2 10A : R,R1=0 : S9=300 : GOTO 2010 2480 REM %SET UP 2490 F3$=HEX(A03E) : INIT(0A)Q8$ : INIT(09)Q9$ : STR(Q8$,1,1)=HEX(01) : STR(Q9$,1,1)=HEX(00) : B=3 : GOTO 2580 2500 DEFFN'31 : PRINT HEX(03);"2200 RECORD FORMAT" 2510 PRINT "BYTE 1 CTRL 00=NO END FILE F0=END FILE" 2520 PRINT "BYTE 2 BLOK BLOCK SIZE" 2530 PRINT "BYTE 3 LREC LOGICAL RECORD LENGTH (#TEXT BYTES)" 2540 PRINT "BYTES 4-N=TEXT MATERIAL" 2550 PRINT "REPEAT OF BYTES 3-N FOR EACH LOGICAL RECORD" 2560 RETURN 2570 REM %KEY PICTURE 2580 DEFFN'15 : SELECT PRINT 005(64) : PRINT HEX(03),,"BSC-CARD FUNCTIONS" 2590 PRINT "UTILITY TO MAKE DATA FILES FOR WANG 2780 EMULATOR SYSTEM" 2600 PRINT " PROGRAM IS FOR CARD READER TO CASSETTE OR DISK" : PRINT : GOSUB 2610 : STOP "KEY PROPER S.F." 2610 PRINT " KEY S.F. '11 OPEN AN EXISTING DISK FILE" 2620 PRINT " KEY S.F. '12 OPEN A NEW DISK FILE" 2630 PRINT " KEY S.F. '13 GENERATE DISK FILE" 2640 PRINT " KEY S.F. '14 GENERATE CASSETTE FILE" 2650 PRINT " KEY S.F. '15 KEY PICTURE" 2660 RETURN