1 .DEFINE .MAXRECBYTES% = 1000% 2 COMMON (FCSERR) ERRCOD%, DIRSTA% 3 MAP (FDB.) FDB$=96% 4 MAP (FS.) FILSPEC$=100% 5 MAP (B.) BUFFER$=.MAXRECBYTES% 7 CALL ADR BY REF (FDB$,FDBADR%) 8 CALL FCSINI BY REF 9 CALL ADR BY REF (BUFFER$,BUFADR%) 10 PRINT "OPEN PHASE OF DEMO" 20 LINPUT "LUN% " ,LUN% 30 LINPUT "ACCESSMODE% " ,ACCESSMODE% 40 LINPUT "FILSPEC$ " ,F$ 45 FILSPEC$ = F$ + CHR$(0%) 50 LINPUT "RECORDSIZE% " ,RECORDSIZE% 60 RSZ% = RECORDSIZE% > 0% 70 IF RSZ% THEN PRINT "USING RECORDSIZE%" ELSE PRINT "WITHOUT RECORDSIZE%" 80 IF RSZ% & THEN CALL FCSOPN BY REF (FDBADR%,LUN%,ACCESSMODE%,FILSPEC$,RECORDSIZE%) & ELSE CALL FCSOPN BY REF (FDBADR%,LUN%,ACCESSMODE%,FILSPEC$) 90 PRINT "ERRCOD%=";ERRCOD%,"DIRSTA%=";DIRSTA% 100 PRINT "I/O PHASE OF DEMO" 110 PRINT "G=GET,P=PUT,Q=QUIT"; 120 INPUT " OPTION=",O$ 130 IF O$ = "Q" GOTO 1000 132 INPUT "RECORD # = "; R% 133 IF R%> 0% GOTO 140 134 PRINT "TURD! RECORD # MUST EXCEED ZERO!" 135 GOTO 132 140 IF O$ = "G" GOTO 200 150 IF O$ = "P" GOTO 300 160 PRINT "INVALID CHOICE!" 170 GOTO 100 200 PRINT "GET DEMO" 205 LSET BUFFER$ = STRING$ ( .MAXRECBYTES%, 0%) ! zeroize buffer 210 CALL FCSGET BY REF (FDBADR%,BUFADR%,R%,0%) 220 PRINT "BUFFER$=";BUFFER$ 230 GOTO 900 300 PRINT "PUT DEMO" 310 INPUT "DATA$ ";DATA$ 320 LSET BUFFER$ = DATA$ 330 CALL FCSPUT BY REF (FDBADR%,BUFADR%,R%,0%) 340 GOTO 900 900 PRINT "ERRCOD%=";ERRCOD%,"DIRSTA%=";DIRSTA% 910 GOTO 100 1000 PRINT "CLOSE PHASE OF DEMO" 1010 CALL FCSCLS BY REF (FDBADR%) 1020 PRINT "ERRCOD%=";ERRCOD%,"DIRSTA%=";DIRSTA% 1030 LINPUT "TYPE [RETURN] TO CONTINUE! ",A$ 1040 GOTO 10