home *** CD-ROM | disk | FTP | other *** search
- 5 REM "AMPER-READER" DEMO
- 15 GOSUB 5000
- 25 GOTO 1000
- 35 REM LIST RECORDS
- 45 HOME
- 55 FOR I = 1 TO NR%
- 65 PRINT ST$(I)
- 75 IF PEEK( -16384) >127 THEN POKE -16368,0: WAIT -16384,128: POKE -16368,0
- 85 NEXT I
- 95 RETURN
- 100 REM CREATE A TEXT FILE
- 110 GOSUB 8000
- 120 UL = UL -10
- 130 HOME : VTAB 10: PRINT "HOW MANY RECORDS DO YOU WANT TO CREATE?": PRINT "(1 - ";UL;" )"
- 140 INPUT NR
- 150 IF NR <1 OR NR >UL THEN 130
- 160 BA$ = "THIS IS RECORD NUMBER:"
- 170 PRINT D$;"OPEN ";FI$
- 180 PRINT D$;"DELETE ";FI$
- 190 PRINT D$;"OPEN ";FI$
- 200 PRINT D$;"WRITE ";FI$
- 210 FOR I = 1 TO NR
- 220 PRINT BA$ + STR$(I)
- 230 NEXT I
- 240 PRINT D$;"CLOSE"
- 250 GOTO 1000
- 500 REM READ AND LIST RECORDS...
- 510 HOME : VTAB 10: HTAB 10: PRINT "OPTIONS"
- 520 VTAB 14: PRINT "1 READ ALL RECORDS"
- 530 PRINT "2 READ BLOCKS OF RECORDS"
- 540 PRINT "3 RETURN TO MAIN MENU"
- 550 VTAB 20: INPUT "OPTION: ";OP
- 560 IF OP <1 OR OP >3 THEN 510
- 570 ON OP GOTO 600,800,1000
- 600 REM READ ALL RECORDS INTO MEMORY
- 620 DIM ST$(UL)
- 630 NR% = 0: REM READ TO EOF
- 640 ER% = 0: REM DEFINE ER% VARIABLE
- 650 REM INVOKE AMPER-READ...
- 660 & R(FI$,ST$(1),NR%,ER%)
- 670 IF ER% < >5 THEN 3000
- 680 GOSUB 35: REM LIST RECORDS
- 690 PRINT : PRINT NR%;" RECORDS READ"
- 700 GOSUB 7000
- 710 & D(ST$(0))
- 720 GOTO 500
- 800 REM BLOCK OF DATA...
- 805 HOME
- 810 VTAB 10: INPUT "HOW MANY RECORDS PER BLOCK TO READ? ";NR%
- 815 IF NR% <1 THEN 805
- 820 GOSUB 8000
- 825 DIM ST$(UL)
- 830 ER% = 0
- 835 REM INVOKE AMPER-READ
- 840 & R(FI$,ST$(1),NR%,ER%)
- 845 ON ER% GOTO 3000,3000,3000,3000,850
- 850 GOSUB 35: REM LIST BLOCK
- 855 IF ER% = 5 THEN 895
- 860 GOSUB 7000
- 865 REM REMOVE LAST BLOCK
- 870 & D(ST$(0)): REM DE-ALLOCATE ST$
- 875 X = FRE(0): REM RESET POINTERS
- 880 DIM ST$(UL): REM RE-DIMENSION ST$
- 885 & C(FI$,ST$(1),NR%,ER%): REM CONTINUE READING
- 890 GOTO 845
- 895 PRINT "ALL RECORDS HAVE BEEN READ": GOSUB 7000
- 900 & D(ST$(0)): GOTO 500
- 1000 REM MENU
- 1010 TEXT : HOME
- 1020 VTAB 10: HTAB 10: PRINT "AMPER-READER DEMO"
- 1030 PRINT : HTAB 15: PRINT "MENU": PRINT
- 1040 PRINT "1 CREATE A TEXT FILE"
- 1050 PRINT "2 READ AND LIST THE FILE"
- 1060 PRINT "3 EXIT"
- 1070 VTAB 20: INPUT "OPTION: ";OP
- 1080 IF OP <1 OR OP >3 THEN 1070
- 1090 ON OP GOTO 100,500,9999
- 3000 REM ER% ERROR ROUTINE....
- 3010 PRINT EM$(ER%);" ERROR"
- 3020 END
- 5000 REM HOUSEKEEPING
- 5010 HIMEM: 36864
- 5020 POKE 1013,76: POKE 1014,0: POKE 1015,147: REM SET UP '&' VECTOR
- 5030 D$ = CHR$(4)
- 5040 IF PEEK(37632) = 72 THEN 5060: REM IS AMPER-READ LOADED
- 5050 PRINT D$;"BLOADAMPER-READER,A$9300"
- 5060 FI$ = "AMPER-READER.FILE"
- 5070 DIM EM$(5)
- 5080 EM$(1) = "OUT OF MEMORY"
- 5090 EM$(2) = "FILE " +FI$ +" NOT FOUND"
- 5100 EM$(3) = "DISK READ "
- 5110 RETURN
- 7000 REM DELAY...
- 7010 INPUT "PRESS RETURN TO CONTINUE ";A$
- 7020 RETURN
- 8000 REM HOW MANY 30 CHAR STRINGS WILL FIT IN RAM...
- 8010 X = FRE(0): IF X <0 THEN X = X +65535
- 8020 UL = INT(X/30)
- 8030 RETURN
- 9999 END