RIAG Crate 11: RIC Programs 63
Item Preview
Share or Embed This Item
Flag this item for
RIAG Crate 11: RIC Programs 63
- Language
- English
Notes
Disk info for RIC_Programs_63.dsk:
File Name: riag_011_RIC_Programs_63/RIC_Programs_63.dsk
Disk Name: DISK VOLUME #254
Physical Size (bytes): 143360
Free Space (bytes): 19456
Used Space (bytes): 123904
Physical Size (KB): 140
Free Space (KB): 19
Used Space (KB): 121
Archive Order: DOS
Disk Format: DOS 3.3
Total Sectors: 560
Free Sectors: 76
Used Sectors: 484
Tracks On Disk: 35
Sectors On Disk: 16
Text found in RIC_Programs_63.dsk/CAB.bas:
0 POKE 216,0
1 REM MODIFIED BY GARY FOOTE 5/16/79
1000 PRINT "MAXFILES1"
1010 D$ = "": REM CTRL D
1020 PRINT D$"NOMON,I,O,C"
1030 TEXT : HOME
1040 GOSUB 5180
1050 CLEAR
1060 DIM R$(65),AC(21),K(65),H$(21),RN$(21)
1070 DIM Z$(21)
1080 COMMA$ = "NO"
1090 D$ = "": REM CTRL D
1100 H$(0) = "REC#"
1110 DB$ = "":F$ = "BASENAME": ONERR GOTO 2610
1120 GOSUB 4110
1130 GOTO 2470
1140 F$ = "HEADER": ONERR GOTO 1520
1150 GOSUB 4110
1160 FOR I = 1 TO NR:H$(I) = R$(I): NEXT I
1170 NH = NR -1:NR = 0:MEM = FRE(0)
1180 B = INT(MEM/(3 *NH + VAL(H$(NH +1))))
1190 DIM N$(B,NH),R(B)
1200 F$ = "INDEX": ONERR GOTO 4830
1210 GOSUB 4110
1220 GOTO 4810
1230 REM *** SORT ***
1240 N = NR:M = N
1250 M = INT(M/2):K = N -M:J = 1: PRINT "SORTING ";: IF M = 0 THEN PRINT "DONE": RETURN
1260 I = J
1270 LL = I +M:I2 = R(I):L2 = R(LL): ON L GOTO 1290: IF VAL(N$(I2,S)) < = VAL(N$(L2,S)) THEN 1300
1280 GOTO 1295
1290 IF N$(I2,S) < = N$(L2,S) THEN 1300
1295 Y = R(I):R(I) = R(LL):R(LL) = Y:I = I -M: IF I > = 1 THEN 1270
1300 J = J +1: IF J >K THEN 1250
1305 GOTO 1260
1415 GOSUB 1440: GOSUB 1240
1420 PRINT "": PRINT "WANT TO SAVE THE "DB$" FILE": PRINT "SORTED BY "H$(S)" TO DISK ";: INPUT "Y/N) ?";L$: IF L$ = "Y" THEN F$ = "INDEX": GOSUB 4280
1430 GOTO 4810
1440 MF = 1: GOSUB 3880
1450 INPUT "ENTER # OF FIELD FOR SORT ";S$:S = VAL(S$): IF S <1 OR S >NH THEN 1450
1460 PRINT : PRINT "DO YOU WANT TO SORT:": PRINT
1470 PRINT "1 ALPHABETICALLY"
1480 PRINT "2 NUMERICALLY"
1490 PRINT
1500 INPUT "WHICH ";L$:L = VAL(L$)
1510 PRINT : PRINT "SORTING ";: RETURN
1520 CALL 1013: REM *** CREATE HEADERFILE ***
1530 NR = 1
1540 HOME : PRINT "PRESS 'RETURN' TO EXIT TO MENU"
1550 PRINT
1560 PRINT "HEADER FOR COLUMN NUMBER "NR": ";: INPUT "";R$(NR)
1570 IF R$(NR) = "" OR NR >20 THEN 1600
1580 NR = NR +1
1590 GOTO 1560
1600 INPUT "AVERAGE RECORD SIZE ";R$(NR): IF LEN(R$(NR)) = 0 THEN R$(NR) = (NR -1) *10
1610 GOSUB 4280: GOTO 1160
1620 REM ***ENTER RECORDS***
1630 HOME
1640 PRINT "THERE ARE "NR" RECORDS"
1650 PRINT "IN THE "DB$" FILE"
1660 NR = NR +1:R(NR) = NR
1670 PRINT "YOU ARE ENTERING RECORD # "NR
1680 PRINT
1690 FOR I = 1 TO NH
1700 PRINT H$(I)":";: GOSUB 4720:N$(NR,I) = I$
1705 IF I$ = "/" THEN N$(NR,I) = N$(NR -1,I)
1710 NEXT I
1720 PRINT
1730 INPUT "MORE (Y/N) ";L$
1740 IF L$ = "N" THEN 1750
1745 GOTO 1640
1750 F$ = "INDEX"
1760 GOSUB 4280
1770 GOTO 4810
1780 REM ***SEARCH/CHANGE***
1790 L = 0
1800 HOME
1810 PRINT "YOU MAY SEARCH BY ANY OF THE FOLLOWING:"
1820 PRINT
1830 GOSUB 3880
1840 PRINT : PRINT "OR YOU MAY": PRINT
1850 PRINT I" MAKE CHANGES"
1860 PRINT
1870 INPUT "WHICH ";S$:S = VAL(S$)
1880 IF S <0 OR S >NH +1 THEN 1870
1890 IF S = NH +1 THEN 2080
1900 HOME
1910 PRINT "PLEASE ENTER THE "H$(S): PRINT "YOU WANT TO FIND.......": INPUT "";Q$
1920 HOME
1930 FOR J = 1 TO NR:Y = R(J)
1940 N$(Y,0) = STR$(J)
1950 IF LEFT$(N$(Y,S), LEN(Q$)) = Q$ THEN GOSUB 2240
1960 IF L +NH >20 THEN GOSUB 2060
1970 NEXT J
1980 PRINT "THAT'S ALL OF THEM. ";
1990 PRINT "NOW YOU MAY:"
2000 PRINT "1 DO MORE SEARCHES"
2010 PRINT "2 MAKE CHANGES"
2020 PRINT "3 RETURN TO THE MAIN MENU"
2030 INPUT "WHICH ";S$:S = VAL(S$)
2040 IF S <1 OR S >3 THEN 2030
2050 ON S GOTO 1800,2080,4810
2060 IF PF < >0 THEN 2070
2062 PRINT : PRINT "PRESS RETURN TO CONTINUE, ESC FOR MENU";
2064 GET L$
2065 IF ASC(L$) = 27 THEN 4810
2066 IF ASC(L$) < >13 THEN 2064
2070 L = 0: HOME : RETURN
2080 REM ***CHANGE DATA***
2090 PRINT "ENTER THE NUMBER OF THE RECORD"
2100 INPUT "YOU WANT TO CHANGE ";J$:J = VAL(J$):Y = R(J)
2110 HOME : GOSUB 2240
2120 PRINT "ENTER THE NUMBER OF THE FIELD YOU WANT": PRINT "TO CHANGE ";
2130 INPUT "";S$:S = VAL(S$)
2140 IF S <1 OR S >NH THEN 2130
2150 PRINT
2160 PRINT "FROM "H$(S)": "N$(Y,S)
2170 PRINT
2180 PRINT "TO "H$(S)": ";: INPUT "";N$(Y,S)
2190 HOME : GOSUB 2240
2200 PRINT
2210 INPUT "MORE CHANGES (Y/N) ";L$
2220 IF L$ = "Y" THEN 2080
2230 F$ = "INDEX": GOSUB 4280: GOTO 4810
2240 REM ***PRINT A RECORD***
2250 ON PF GOSUB 5230,5250
2260 PRINT " "H$(0)": ";J
2270 FOR I = 1 TO NH
2280 PRINT I" "H$(I)": "N$(Y,I)
2290 NEXT I
2300 PRINT
2310 L = L +NH +2
2320 GOSUB 5310
2330 RETURN
2340 REM ***DELETE RECORDS***
2350 HOME
2360 INPUT "ENTER RECORD NUMBER YOU WANT DELETED ";DR$:DR = VAL(DR$)
2370 IF DR <1 OR DR >NR THEN 2360
2380 FOR J = DR TO NR -1
2390 R(J) = R(J +1)
2420 NEXT J:NR = NR -1
2430 PRINT : PRINT "RECORD NUMBER "DR" DELETED!": PRINT
2440 INPUT "MORE (Y/N) ";L$
2450 IF L$ = "Y" THEN 2360
2460 F$ = "INDEX": GOSUB 4280: GOTO 4810
2470 REM *** BASENAMEFILE ROUTINES ***
2480 HOME
2490 PRINT "SELECT FROM:": PRINT
2500 FOR J = 1 TO NR: PRINT J" "R$(J): NEXT J: PRINT
2510 PRINT J" CREATE A NEW DATA BASE"
2520 IF J >1 THEN PRINT J +1" DELETE A DATA BASE"
2530 PRINT
2540 INPUT "WHICH ";S$:S = VAL(S$)
2550 IF S = J +1 THEN 2660
2560 IF S <1 OR S >J THEN PRINT CHR$(7);: VTAB PEEK(37): CALL -868: GOTO 2540
2570 DB$ = R$(S)
2580 IF S < >J THEN 1140
2590 PRINT
2600 GOTO 2620
2610 CALL 1013
2620 IF J = 0 THEN J = 1
2630 INPUT "NAME FOR NEW DATA BASE FILE :";R$(J)
2640 NR = J: GOSUB 4280
2650 DB$ = R$(J -1): GOTO 1140
2660 REM *** DELETE A DATA BASE ***
2670 PRINT : INPUT "DELETE WHICH : ";S$:S = VAL(S$)
2680 IF S <1 OR S >J -1 THEN PRINT CHR$(7);: VTAB PEEK(37) -1: CALL -868: GOTO 2670
2690 HOME : VTAB (9): PRINT "READY TO DELETE " CHR$(34);R$(S); CHR$(34);".": PRINT
2700 PRINT "ONCE DELETED, THIS DATA CANNOT BE"
2710 PRINT "RECOVERED. ARE YOU SURE THAT YOU"
2720 PRINT "WANT TO DELETE IT? (Y/N) ";: INPUT "";S$
2730 IF S$ < >"Y" THEN 2470
2740 HOME : VTAB 12: HTAB 11: INVERSE : PRINT CHR$(91);" DELETING DATABASE ]": NORMAL
2750 ONERR GOTO 2830
2760 DB$ = R$(S)
2770 F$ = "RPTFMTNAME"
2780 GOSUB 4110
2790 PRINT D$;"DELETE"DB$" "F$"FILE"
2800 FOR I = 1 TO NR
2810 PRINT D$;"DELETE"DB$" "R$(I)" RPTFMTFILE"
2820 NEXT I
2830 CALL 1013: PRINT D$"DELETE"DB$" RPTFMTNAMEFILE"
2840 PRINT D$"DELETE"DB$" INDEXFILE"
2850 PRINT D$"DELETE"DB$" HEADERFILE"
2860 DB$ = ""
2870 F$ = "BASENAME": GOSUB 4110
2880 IF NR = 1 THEN PRINT D$"DELETE BASENAMEFILE": GOTO 4810
2890 FOR I = S TO NR -1
2900 R$(I) = R$(I +1)
2910 NEXT I
2920 NR = NR -1: GOSUB 4280
2930 GOTO 2470
2940 REM ***REPORT***
2950 T9 = 0
2960 HOME :E = 0
2970 FOR I = 0 TO 3 *NH +3:K(I) = 0: NEXT I
2980 FOR I = 0 TO NH:AC(I) = 0: NEXT I:HC = 0:GT = 0
2990 ON E GOTO 3150
3000 GOTO 3940
3010 PRINT : INPUT "HOW MANY HEADERS ";RH$:RH = VAL(RH$): IF RH <1 OR RH >NH +1 THEN 3010
3020 IF E = 0 THEN RN$(NN) = "PRESENT"
3030 FOR I = 1 TO RH *3 STEP 3
3040 PRINT "ENTER # OF HEADER YOU WANT IN": PRINT "POSITION #"(I +2)/3" ";: INPUT "";K$:K(I) = VAL(K$)
3050 IF K(I) <0 OR K(I) >NH THEN 3040
3060 PRINT "ENTER TAB FOR "H$(K(I))" ";: INPUT "";K$:K(I +1) = VAL(K$)
3070 IF K(I +1) <0 OR K(I +1) >255 THEN 3060
3080 PRINT "TOTAL ON "H$(K(I))" (Y/N) ";: INPUT L$
3090 IF L$ = "Y" THEN K(I +2) = 1:K(0) = 1
3100 NEXT I
3110 IF K(0) < >1 THEN 3147
3120 INPUT "ENTER TAB FOR TOTAL: ";A$
3130 IF LEN(A$) = 0 THEN K(0) = 0:T9 = 1: GOTO 3143
3140 K(I +1) = VAL(A$): IF K(I +1) <0 OR K(I +1) >131 THEN PRINT "": VTAB PEEK(37) -1: GOTO 3120
3143 INPUT "DO YOU WANT A SUMMARY REPORT?";S$: IF S$ = "Y" THEN K(0) = 2
3147 LL = 0: INPUT "DO YOU WANT THIS REPORT SORTED? ";S$: IF S$ = "Y" THEN LL = 1:K(I +2) = 1
3150 PRINT
3160 INPUT "SELECT RECORDS BY WHICH HEADER # ";S$:S = VAL(S$)
3170 IF LEN(S$) = 0 THEN Q$ = "@": GOTO 3230
3180 PRINT : INPUT "'AND' 2ND HEADER (Y/N) ";L$: IF L$ < >"Y" THEN X$ = "@": GOTO 3200
3190 PRINT : INPUT "ENTER # OF 'AND' HEADER ";X$:X = VAL(X$)
3200 PRINT : PRINT "@ WILL SELECT ALL RECORDS."
3210 PRINT : PRINT "SELECT RECORDS FOR "H$(S)"= ";: INPUT "";Q$: PRINT
3220 IF L$ = "Y" THEN PRINT "AND "H$(X)"= ";: INPUT "";X$
3225 IF LL < >0 THEN L = LL: GOSUB 1240
3230 REM
3250 ON PF GOSUB 5230,5250,5280: GOSUB 3610:Z$ = N$(R(1),S):RR = 0
3260 FOR J = 1 TO NR:Y = R(J)
3270 N$(Y,0) = STR$(J)
3280 IF Q$ = "@" THEN 3320
3290 IF LEFT$(N$(Y,S), LEN(Q$)) < >Q$ THEN 3330
3300 IF X$ = "@" THEN 3320
3310 IF LEFT$(N$(Y,X), LEN(X$)) < >X$ THEN 3330
3320 GOSUB 3435:Z$ = N$(Y,S)
3330 IF PF <1 THEN IF L >18 THEN GOSUB 2060: GOSUB 3610
3340 IF L = 0 THEN GOSUB 3610
3350 NEXT J
3355 IF K(0) < >0 THEN POKE 36,K(3 *I -1): PRINT HC:GT = GT +HC:HC = 0: GOSUB 3540
3357 PRINT
3360 ON T9 GOSUB 3540
3370 GOSUB 5310
3380 ON E GOTO 3410
3390 PRINT : PRINT "DO YOU WANT TO SAVE THE FORMAT": INPUT "FOR THIS REPORT TO DISK (Y/N) ";L$
3400 IF L$ = "Y" THEN E = 1: GOSUB 3720
3410 PRINT : PRINT "MORE REPORTS USING THE "RN$(NN)" FORMAT": INPUT "(Y/N) ";L$
3420 IF L$ = "Y" THEN GOSUB 3880:E = 1: GOTO 2980
3430 GOTO 4810
3435 IF K(0) < >0 THEN IF N$(Y,S) < >Z$ THEN POKE 36,K(3 *I -1): PRINT HC:GT = GT +HC:HC = 0:RR = 0:L = L +1: IF L >18 THEN GOSUB 2060: GOSUB 3610
3437 IF RR = 0 THEN IF K(0) = 1 THEN PRINT
3440 FOR I = 1 TO RH
3445 IF K(3 *I) THEN GOSUB 3510: IF K(0) = 2 THEN 3470
3447 IF K(0) = 2 THEN IF RR < >0 THEN 3470
3450 POKE 36,K(3 *I -1): PRINT N$(Y,K(3 *I -2));
3470 NEXT I
3480 RR = 1
3490 IF K(0) < >2 THEN L = L +1: PRINT
3500 RETURN
3510 N = 3 *I -2
3520 V = VAL(N$(Y,K(N))):AC(I) = AC(I) +V:HC = HC +V
3530 RETURN
3540 PRINT : FOR I = 1 TO 39 +((PF >1) *39): PRINT "-";: NEXT I: PRINT
3550 FOR I = 1 TO RH
3560 IF AC(I) = 0 THEN 3580
3570 POKE 36,K(3 *I -1): PRINT AC(I);
3580 NEXT I
3590 IF GT < >0 THEN POKE 36,K(3 *I -1): PRINT GT;
3600 PRINT : RETURN
3610 HOME
3620 PRINT RN$(NN)" REPORT FOR "H$(S)":"Q$;
3630 IF X$ = "@" THEN 3650
3640 PRINT " AND "H$(X)":"X$: GOTO 3660
3650 PRINT ""
3660 FOR I = 1 TO RH
3670 POKE 36,K(3 *I -1): PRINT H$(K(3 *I -2));
3675 IF K(3 *I) THEN X = K(3 *I -1)
3680 NEXT I
3690 IF K(0) < >0 THEN IF X < >K(3 *I -1) THEN POKE 36,K(3 *I -1): PRINT "TOTAL";
3700 PRINT : PRINT
3710 L = 4: RETURN
3720 REM *** SET-UP TO SAVE RPTFMTFILE ***
3730 NS = NR
3740 PRINT : INPUT "ENTER THE REPORT FORMAT NAME ";RN$(NN)
3750 F$ = RN$(NN) +" RPTFMT"
3760 NR = 3 *RH +3
3770 FOR I = 1 TO NR:R$(I) = STR$(K(I)): NEXT I
3780 R$(I -3) = STR$(K(0))
3790 GOSUB 4280: GOSUB 4440
3800 RETURN
3810 REM *** SET-UP TO READ RPTFMTFILE ***
3820 F$ = RN$(NN) +" RPTFMT"
3830 GOSUB 4110
3840 RH = (NR -3)/3: FOR I = 1 TO NR:K(I) = VAL(R$(I)): NEXT I
3850 K(0) = VAL(R$(I -3)):LL = VAL(R$(I -1))
3860 NR = NS
3870 GOSUB 3880: PRINT : GOTO 3160
3880 REM *** SUB MENU ***
3890 HOME : PRINT "SELECT FROM:": PRINT
3900 IF MF = 0 THEN PRINT "0 "H$(0)
3910 FOR I = 1 TO NH: PRINT I" "H$(I): NEXT I: PRINT
3920 MF = 0
3930 RETURN
3940 REM *** READ REPORTNAMEFILE & SELECT REPORT ***
3950 NN = 0: FOR I = 0 TO 21:RN$(I) = "": NEXT I:NS = NR
3960 F$ = "RPTFMTNAME"
3970 ONERR GOTO 4070
3980 GOSUB 4110
3990 FOR I = 1 TO NR:RN$(I) = R$(I): NEXT I
4000 HOME : PRINT "SELECT FROM:": PRINT
4010 FOR I = 1 TO NR: PRINT I" "R$(I): NEXT I: PRINT
4020 PRINT I" CREATE A NEW REPORT FORMAT": PRINT
4030 INPUT "WHICH ";S$:S = VAL(S$): IF S <1 OR S >I THEN 4030
4040 NN = S
4050 IF S < >I THEN RN$(S) = R$(S):E = 1:NR = NS: GOTO 3810
4060 GOTO 4100
4070 CALL 1013: HOME : PRINT "NO REPORT FORMATS ON DISK...": PRINT
4080 NN = 1
4090 INPUT "DO YOU WANT TO CREATE ONE (Y/N) ?";L$: IF L$ < >"Y" THEN 4810
4100 GOSUB 3880:NR = NS: GOTO 3010
4110 REM *** READ FILES ***
4120 IF F$ < >"INDEX" THEN FF = 1
4130 PRINT D$"OPEN"DB$" "F$"FILE"
4140 PRINT D$"READ"DB$" "F$"FILE"
4150 INPUT NR
4160 FOR J = 1 TO NR
4170 ON FF GOTO 4230
4180 FOR I = 1 TO NH
4190 GOSUB 4720
4200 N$(J,I) = I$
4210 NEXT I
4215 R(J) = J
4220 GOTO 4240
4230 INPUT R$(J)
4240 NEXT J
4250 PRINT D$"CLOSE"
4260 FF = 0
4270 RETURN
4280 REM *** SAVE FILES ***
4290 IF F$ < >"INDEX" THEN FF = 1
4300 PRINT D$"OPEN"DB$" "F$"FILE"
4310 PRINT D$"WRITE"DB$" "F$"FILE"
4320 PRINT NR
4330 FOR J = 1 TO NR
4340 ON FF GOTO 4390
4345 Y = R(J)
4350 FOR I = 1 TO NH
4360 PRINT N$(Y,I)
4370 NEXT I
4380 GOTO 4400
4390 PRINT R$(J)
4400 NEXT J
4410 PRINT D$"CLOSE"
4420 FF = 0
4430 RETURN
4440 REM *** SAVE REPORTNAMEFILE ***
4450 NR = NN
4460 F$ = "RPTFMTNAME"
4470 FOR I = 1 TO NR:R$(I) = RN$(I): NEXT I
4480 GOSUB 4280
4490 NR = NS: RETURN
4500 REM *** LIST ***
4510 L = 0
4520 HOME
4530 FOR J = 1 TO NR:Y = R(J)
4540 ON PF GOSUB 5230,5250,5280
4550 PRINT " "H$(0)": ";J:L = L +1
4560 FOR I = 1 TO NH
4570 PRINT I" "H$(I)": "N$(Y,I)
4580 L = L +1
4590 NEXT I
4600 PRINT :L = L +1
4610 IF L +NH >20 THEN 4660
4620 NEXT J
4630 GOSUB 5310
4640 INPUT "HIT RETURN FOR MENU...";L$
4650 GOTO 4810
4660 GOSUB 5310
4670 PRINT "PRESS RETURN TO CONTINUE, ESC FOR MENU";
4672 GET L$
4674 IF ASC(L$) = 27 THEN 4810
4676 IF ASC(L$) = 13 THEN 4680
4678 GOTO 4672
4680 HOME :L = 0
4690 ON PF GOSUB 5230,5250,5280
4700 GOTO 4620
4710 STOP
4720 REM *** INPUT ROUTINES ***
4730 I$ = ""
4740 IF COMMA$ = "NO" THEN INPUT "";I$: RETURN
4750 GET A$
4760 IF A$ = CHR$(3) THEN STOP
4770 PRINT A$;
4780 IF A$ = CHR$(13) THEN RETURN
4790 I$ = I$ +A$
4800 GOTO 4750
4810 REM *** MAIN MENU ***
4820 GOTO 4840
4830 CALL 1013
4840 HOME
4850 PRINT "******* DATA BASE MANAGEMENT II ******"
4860 PRINT : PRINT " APPLE COMPUTER INC"
4870 PRINT " MODIFIED BY GARY A. FOOTE"
4880 PRINT "CURRENT DATA BASE: "DB$: PRINT
4890 PRINT "CURRENTLY CONTAINS: "NR" RECORDS": PRINT : PRINT "ROOM FOR "B -NR" MORE RECORDS"
4900 PRINT
4910 IF PF > = 1 THEN PRINT "THE PRINTER IS ";: FLASH : PRINT "ON": NORMAL : GOTO 4930
4920 PRINT "THE PRINTER IS OFF"
4930 PRINT
4940 PRINT "1 SELECT DATA BASE"
4950 PRINT "2 SEARCH AND/OR CHANGE DATA"
4960 PRINT "3 ENTER RECORDS"
4970 PRINT "4 DELETE RECORDS"
4980 PRINT "5 REPORT"
4990 PRINT "6 SORT"
5000 PRINT "7 TURN ON PRINTER"
5010 PRINT "8 TURN OFF PRINTER"
5020 PRINT "9 LIST ALL RECORDS"
5030 PRINT "10 QUIT"
5040 PRINT
5050 INPUT "WHICH ";S$:S = VAL(S$)
5060 IF S <1 OR S >10 THEN 4810
5070 ON S GOTO 1050,1780,1620,2340,2940,1415,5080,5160,4500,5170
5080 HOME
5090 PRINT "PRINTER OPTIONS:"
5100 PRINT "1 40 COLUMNS"
5110 PRINT "2 80 COLUMNS"
5120 PRINT "3 132 COLUMNS"
5130 PRINT : INPUT "WHICH ";PF$:PF = VAL(PF$)
5140 IF PF <1 OR PF >3 THEN 5130
5150 GOTO 4810
5160 PF = 0: GOTO 4810
5170 PRINT "MAXFILES3": END
5180 REM *** APPLESOFT ONERR CORRECTION
5190 FOR I = 1013 TO 1022: READ PP: POKE I,PP: NEXT I
5200 I = 0
5210 RETURN
5220 DATA 104,168,104,166,223,154,72,152,72,96
5230 PRINT D$"PR#1"
5240 PRINT "K": RETURN
5250 PRINT D$"PR#1"
5260 PRINT "K80N"
5270 RETURN
5280 PRINT D$"PR#1"
5290 PRINT "K132N"
5300 RETURN
5310 IF PF = 0 THEN RETURN
5320 PRINT D$"PR#0"
5330 RETURN
Text found in RIC_Programs_63.dsk/COPY MOGER 1.int:
10 TEXT : POKE -16300,0:CALL -936
20 VTAB (5):LIST 990,1020
30 B$=" ":PN=1:LM= PEEK (74)+ PEEK (75)*256
40 DIM A$(250),A(84),B(84),T$(15),NUM$(5),HEX$(16):HEX$="0123456789ABCDEF"
50 D$="":REM *** CONTROL-D
60 POKE LM+5,162:Q$=B$:REM *** Q$ IS NOW A SINGLE QUOTE
70 POKE 768,56: POKE 769,72: POKE 770,132: POKE 771,0: POKE 772,160: POKE 773,0: POKE 774,201: POKE 775,32: POKE 776,176: POKE 777,2
80 POKE 778,105: POKE 779,192: POKE 780,201: POKE 781,96: POKE 782,176: POKE 783,2: POKE 784,105: POKE 785,128: POKE 786,201: POKE 787,128: POKE 788,176
90 POKE 789,2: POKE 790,105: POKE 791,64: POKE 792,145: POKE 793,2: POKE 794,230: POKE 795,2: POKE 796,208: POKE 797,2: POKE 798,230: POKE 799,3
100 POKE 800,104: POKE 801,164: POKE 802,0: POKE 803,96: POKE 804,0: POKE 805,0: POKE 806,0: POKE 807,0: POKE 808,169: POKE 809,160: POKE 810,96
110 REM *** ABOVE POKES ENTER A *** MACHINE LANGUAGE PROGRAM *** THAT:
120 REM *** (A) WRITES ALL PRINTING *** TO MEMORY;
130 REM *** (B) WEEDS OUT INVERSE *** AND FLASHING VIDEO *** CHARACTERS.
140 REM *** (C) LAST 3 POKES ENTER A *** ROUTINE THAT ANSWERS *** THE KEYBOARD.
150 PRINT D$;"NOMON I,O,C":REM *** MAKE SURE WE DON'T SEE *** ANYTHING
160 FOR X=1 TO 1000:NEXT X
170 CALL -936: POKE 50,63:TAB (7):PRINT "--- PROGRAM COPY ---": POKE 50,255
180 PRINT :A$="COPY TO:":GOSUB 890:PRINT "DISK";:TAB (23):TAPE=0:GOSUB 880
190 IF X# ASC("T") THEN 200:TAPE=1:PRINT "TAPE";
200 PRINT :PRINT :MS=6:A$="MASTER SLOT:":GOSUB 890:PRINT MS;:GOSUB 880:GOSUB 900:TAB (23):IF V THEN MS=V:PRINT MS
210 PRINT :MD=1:A$="MASTER DRIVE:":GOSUB 890:PRINT MD;:GOSUB 880:GOSUB 910:TAB (23):IF V THEN MD=V:PRINT MD:TS=MS:TD=MD:IF TAPE THEN 260
220 PRINT :SS=MS:A$="SLAVE SLOT:":GOSUB 890:PRINT SS;:GOSUB 880:GOSUB 900:TAB (23):IF V THEN SS=V:PRINT SS
230 PRINT :SD=2:IF MD=SD THEN SD=1:A$="SLAVE DRIVE:":GOSUB 890:PRINT SD;:GOSUB 880:GOSUB 910:TAB (23):IF V THEN SD=V:PRINT SD
240 IF MS=SS AND MD=SD THEN 170: POKE 50,255:PRINT :TAB (7):PRINT "TRANSFERFILE":A$="TO WHICH UNIT:":GOSUB 890
250 PRINT "MASTER";:GOSUB 880:IF X# ASC("S") THEN 270:TAB (23):PRINT "SLAVE ": POKE 50,255:TS=SS:TD=SD:GOTO 270
260 PRINT :SS=MS:SD=MD:CO=1:A$="# OF COPIES:":GOSUB 890:PRINT CO;:GOSUB 880:GOSUB 910:TAB (23):IF V THEN CO=V:PRINT CO
270 POKE 50,255:VTAB (17):TAB (3):PRINT "INSERT MASTER ";:IF TAPE THEN 280:PRINT "AND SLAVE DISKS...":GOTO 290
280 PRINT "DISK IN DRIVE AND":TAB (3):PRINT "CASSETTE TAPE IN RECORDER..."
290 VTAB (20):PRINT "PRESS 'C' TO CORRECT / 'RETURN' TO RUN":GOSUB 880:IF X= ASC("C") THEN 170
300 IF X#141 THEN 270:TEXT :CALL -936
310 POKE 2,0: POKE 3,16
320 POKE 54,0: POKE 55,3: POKE 56,40: POKE 57,3:CALL 1002:REM *** CONNECT TO DOS I/O
330 PRINT D$;"CATALOG D";MD;",S";MS:REM *** WRITE TO MEMORY
340 PRINT D$;"PR#0":PRINT D$;"IN#0":REM *** DISCONNECT MACHINE *** LANGUAGE ROUTINE *** FROM DOS I/O
350 BS=-21902:BL=-21920:REM *** BINARY START AND LENGTH *** ADDRESSES
360 REM *** PRINT CATALOG TO SCREEN
370 TEXT :CALL -936:C=1:S=0:FOR I=4115 TO ( PEEK (2)+ PEEK (3)*256)-1 STEP 38
380 IF PEEK (I+1)= ASC("T") THEN 480:REM *** WE DON'T WANT ANY *** TEXT FILES!
390 A(C)=I: POKE 50,63:PRINT C;:IF C<10 THEN PRINT " ";
400 POKE 50,255:PRINT " ";:C=C+1
410 POKE LM+5, PEEK (I+1):PRINT B$;:PRINT " ";
420 FOR J=I+7 TO I+19
430 POKE LM+5, PEEK (J):PRINT B$;:NEXT J:PRINT
440 REM *** LM+5 IS LOCATION OF *** VARIABLE 'B$'
450 IF PEEK (37)<21 THEN 480
460 S=S+1:IF S>1 THEN 470: POKE 33,20: POKE 32,20:CALL -936:GOTO 480
470 TEXT :VTAB (23):TAB (5):PRINT "PRESS ANY KEY TO CONTINUE...";:GOSUB 880:PRINT :CALL -936:S=0
480 NEXT I
490 TEXT : POKE 34,23
500 VTAB (23):PRINT "ENTER PROGRAM BY NUMBER: <'0' TO QUIT>"
510 CALL -936:PRINT "PROGRAM #";PN;:INPUT ":",P:IF P=0 THEN 530:IF P>C-1 THEN 510
520 IF P<1 THEN 360:B(PN)=P:PN=PN+1:GOTO 510
530 T$="TRANSFERFILE,S"
540 PRINT D$;"OPEN ";T$;TS;",D";TD:PRINT D$;"DELETE ";T$;TS;",D";TD
550 PRINT D$;"OPEN ";T$;TS;",D";TD:PRINT D$;"WRITE ";T$(1, LEN(T$)-2)
560 REM *** SAVE PROGRAMS IN AN *** 'EXEC' TEXTFILE
570 FOR L=1 TO PN-1:N=A(B(L))
580 FOR Q=N TO N+36: POKE LM+26+(Q-N), PEEK (Q):NEXT Q
590 REM *** LM+26 IS LOCATION OF *** VARIABLE 'A$'
600 POKE LM+26+(Q-N),30
610 IF A$(2,2)="B" THEN 820:REM *** IT'S A BINARY PROGRAM
620 A$=A$(8, LEN(A$))
630 REM *** CHOP OFF FIRST 7 CHARS
640 IF TAPE THEN 780:REM *** DO IT DIFFERENT FOR TAPE
650 PRINT "LOAD ";A$;",S";MS;",D";MD
660 PRINT "SAVE ";A$;",S";SS;",D";SD
670 DONE=0:NEXT L
680 PRINT "TEXT"
690 PRINT "CALL-936"
700 PRINT "PRINT ";Q$;"COPY COMPLETE...";Q$
710 PRINT "DELETE ";T$;TS;",D";TD
720 PRINT D$;"CLOSE"
730 IF NOT TAPE THEN 750
740 TEXT :CALL -936:PRINT :PRINT "START RECORDER AND":INPUT "PRESS 'RETURN' KEY TO START ",A$
750 CALL -936: POKE 34,23:CALL -936
760 PRINT D$;"EXEC ";T$;TS;",D";TD
770 PRINT "RUN HELLO2"
780 REM *** SAVE TO TAPE
790 PRINT "LOAD ";A$;",S";MS;",D";MD:PRINT "VTAB(9)":PRINT "CALL -958":PRINT "PRINT ";Q$;"RECORDING...";Q$:PRINT "VTAB(23)"
800 PRINT "SAVE":IF CO>1 THEN PRINT "SAVE"
810 GOTO 670
820 REM *** BINARY PROGRAM SAVE
830 A$=A$(8, LEN(A$)):PRINT "INT":REM *** JUST TO BE SURE...
840 PRINT "BLOAD ";A$;",S";MS;",D";MD:IF TAPE THEN 920
850 PRINT "PRINT";Q$;D$;"BSAVE ";A$;",S";SS;",D";SD;",A";Q$;";PEEK(";BS;")+PEEK(";BS+1;")*256";
860 PRINT ";";Q$;",L";Q$;";PEEK(";BL;")+PEEK(";BL+1;")*256"
870 GOTO 670
880 X= PEEK (-16384):IF X<127 THEN 880: POKE -16368,0:RETURN
890 POKE 50,255:TAB (7):PRINT A$;:TAB (23): POKE 50,63:RETURN
900 V=0:IF X< ASC("1") OR X> ASC("7") THEN RETURN :V=X-176:RETURN
910 V=0:IF X< ASC("1") OR X> ASC("2") THEN RETURN :V=X-176:RETURN
920 REM *** "BSAVE" TO TAPE
930 PRINT "VTAB(9)":PRINT "CALL -958":PRINT "PRINT ";Q$;"START: ";Q$;";PEEK(";BS;")+PEEK(";BS+1;")*256;";Q$;" END: ";Q$;
940 PRINT ";(PEEK(";BS;")+PEEK(";BS+1;")*256)+(PEEK(";BL;")+PEEK(";BL+1;")*256)":PRINT "PRINT";Q$;"RECORDING...";Q$:PRINT "VTAB(23)"
950 PRINT "POKE 60,PEEK(";BS;")":PRINT "POKE 61,PEEK(";BS+1;")":PRINT "POKE 62,(PEEK(";BS;")+PEEK(";BL;")-(256*(PEEK(";BS;
960 PRINT ")+PEEK(";BL;")>255)))":PRINT "POKE 63,(PEEK(";BS+1;")+PEEK(";BL+1;")+((PEEK(";BS;")+PEEK(";BL;"))>255))"
970 PRINT "CALL -307":DONE=DONE+1:IF CO>1 AND DONE<2 THEN 950:GOTO 670
980 REM *** PRINT STATEMENTS TO TEXT *** FILES TO POKE START AND *** END POINTERS FOR SAVE *** ROUTINE
990 REM *** DISK TO DISK/TAPE *** TRANSFER PROGRAM *** BY DAVID C. MOGER
1000 REM *** PATTERNED AFTER DISK *** TO DISK TRANSFER PROGRAM *** BY RON ALDRICH
1010 REM *** ORIGINAL VERSION FROM *** CALL APPLE VOL.2, NO.2, *** FEBRUARY 1979
1020 REM *** PROGRAM WILL TRANSFER *** INTEGER, APPLESOFT, AND *** BINARY PROGRAMS TO DISK *** OR CASSETTE TAPE
Text found in RIC_Programs_63.dsk/COPY MOGER 2.int:
10 TEXT : POKE -16300,0: POKE -16303,0: POKE 50,255:CALL -936
20 VTAB (5):LIST 1040,1070
30 B$=" ":PN=1:LM= PEEK (74)+ PEEK (75)*256
40 DIM A$(250),A(84),B(84),T$(15),NUM$(5)
50 D$="":REM *** CONTROL-D
60 POKE LM+5,162:Q$=B$:REM *** Q$ IS NOW A SINGLE QUOTE
70 POKE 768,56: POKE 769,72: POKE 770,132: POKE 771,0: POKE 772,160: POKE 773,0: POKE 774,201: POKE 775,32: POKE 776,176: POKE 777,2
80 POKE 778,105: POKE 779,192: POKE 780,201: POKE 781,96: POKE 782,176: POKE 783,2: POKE 784,105: POKE 785,128: POKE 786,201: POKE 787,128: POKE 788,176
90 POKE 789,2: POKE 790,105: POKE 791,64: POKE 792,145: POKE 793,2: POKE 794,230: POKE 795,2: POKE 796,208: POKE 797,2: POKE 798,230: POKE 799,3
100 POKE 800,104: POKE 801,164: POKE 802,0: POKE 803,96: POKE 804,0: POKE 805,0: POKE 806,0: POKE 807,0: POKE 808,169: POKE 809,160: POKE 810,96
110 REM *** ABOVE POKES ENTER A *** MACHINE LANGUAGE PROGRAM *** THAT:
120 REM *** (A) WRITES ALL PRINTING *** TO MEMORY;
130 REM *** (B) WEEDS OUT INVERSE *** AND FLASHING VIDEO *** CHARACTERS.
140 REM *** (C) LAST 3 POKES ENTER A *** ROUTINE THAT ANSWERS *** THE KEYBOARD.
150 PRINT D$;"NOMON I,O,C":REM *** MAKE SURE WE DON'T SEE *** ANYTHING
160 FOR X=1 TO 1000:NEXT X
170 TEXT :CALL -936: POKE 50,63:TAB (7):PRINT "--- PROGRAM COPY ---": POKE 50,255
180 PRINT :A$="COPY TO:":GOSUB 890:PRINT "DISK";:TAB (23):TAPE=0:GOSUB 880
190 IF X# ASC("T") THEN 200:TAPE=1:PRINT "TAPE";
200 PRINT :PRINT :MS=6:A$="MASTER SLOT:":GOSUB 890:PRINT MS;:GOSUB 880:GOSUB 900:TAB (23):IF V THEN MS=V:PRINT MS
210 PRINT :MD=1:A$="MASTER DRIVE:":GOSUB 890:PRINT MD;:GOSUB 880:GOSUB 910:TAB (23):IF V THEN MD=V:PRINT MD:TS=MS:TD=MD:IF TAPE THEN 260
220 PRINT :SS=MS:A$="SLAVE SLOT:":GOSUB 890:PRINT SS;:GOSUB 880:GOSUB 900:TAB (23):IF V THEN SS=V:PRINT SS
230 PRINT :SD=2:IF MD=SD THEN SD=1:A$="SLAVE DRIVE:":GOSUB 890:PRINT SD;:GOSUB 880:GOSUB 910:TAB (23):IF V THEN SD=V:PRINT SD
240 IF MS=SS AND MD=SD THEN 170: POKE 50,255:PRINT :TAB (7):PRINT "TRANSFERFILE":A$="TO WHICH UNIT:":GOSUB 890
250 PRINT "MASTER";:GOSUB 880:IF X# ASC("S") THEN 270:TAB (23):PRINT "SLAVE ": POKE 50,255:TS=SS:TD=SD:GOTO 270
260 PRINT :SS=MS:SD=MD:CO=1:A$="# OF COPIES:":GOSUB 890:PRINT CO;:GOSUB 880:GOSUB 910:TAB (23):IF V THEN CO=V:PRINT CO
270 POKE 50,255:VTAB (17):TAB (3):PRINT "INSERT MASTER ";:IF TAPE THEN 280:PRINT "AND SLAVE DISKS...":GOTO 290
280 PRINT "DISK IN DRIVE AND":TAB (3):PRINT "CASSETTE TAPE IN RECORDER..."
290 VTAB (20):PRINT "PRESS 'C' TO CORRECT / 'RETURN' TO RUN":GOSUB 880:IF X= ASC("C") THEN 170
300 IF X#141 THEN 270:TEXT :CALL -936
310 POKE 2,0: POKE 3,16
320 POKE 54,0: POKE 55,3: POKE 56,40: POKE 57,3:CALL 1002:REM *** CONNECT TO DOS I/O
330 PRINT D$;"CATALOG D";MD;",S";MS:REM *** WRITE TO MEMORY
340 PRINT D$;"PR#0":PRINT D$;"IN#0":REM *** DISCONNECT MACHINE *** LANGUAGE ROUTINE *** FROM DOS I/O
350 BS=-21902:BL=-21920:REM *** BINARY START AND LENGTH *** ADDRESSES (48K)
360 REM *** PRINT CATALOG TO SCREEN
370 TEXT :CALL -936:C=1:S=0:FOR I=4115 TO ( PEEK (2)+ PEEK (3)*256)-1 STEP 38
380 IF PEEK (I+1)= ASC("T") THEN 480:REM *** WE DON'T WANT ANY *** TEXT FILES!
390 A(C)=I: POKE 50,63:PRINT C;: POKE 50,255:IF C<10 THEN PRINT " ";
400 IF C<100 THEN PRINT " ";:C=C+1
410 POKE LM+5, PEEK (I+1):PRINT B$;:PRINT " ";
420 FOR J=I+7 TO I+19
430 POKE LM+5, PEEK (J):PRINT B$;:NEXT J:PRINT
440 REM *** LM+5 IS LOCATION OF *** VARIABLE 'B$'
450 IF PEEK (37)<21 THEN 480
460 S=S+1:IF S>1 THEN 470: POKE 33,20: POKE 32,20:CALL -936:GOTO 480
470 TEXT :VTAB (23):TAB (5):PRINT "PRESS ANY KEY TO CONTINUE...";:GOSUB 880:PRINT :CALL -936:S=0
480 NEXT I
490 TEXT : POKE 34,23:IF P#-1 THEN PN=1
500 VTAB (23):PRINT "ENTER PROGRAM BY NUMBER: <'0' TO QUIT>"
510 CALL -936:PRINT "PROGRAM #";PN;:INPUT ":",P:IF P=0 THEN 530:IF P>C-1 THEN 510
520 IF P<1 THEN 360:B(PN)=P:PN=PN+1:GOTO 510
530 TEXT :CALL -936:VTAB (5):PRINT "HERE ARE THE PROGRAMS YOU WISH TO COPY:":VTAB (8):PRINT "PRESS ANY KEY TO PAUSE DISPLAY,"
540 PRINT "PRESS KEY AGAIN TO CONTINUE....":FOR X=1 TO 750:NEXT X:CALL -936:PRINT "COPYING FROM SLOT ";MS;", DRIVE ";MD;
550 IF TAPE THEN PRINT " TO TAPE:":IF TAPE THEN 560:PRINT :TAB (9):PRINT "TO SLOT ";SS;", DRIVE ";SD;":"
560 POKE 34,3:CALL -936:FOR L=1 TO PN-1:GOSUB 990: POKE 50,63:PRINT B(L);: POKE 50,255:IF B(L)<10 THEN PRINT " ";
570 IF B(L)<100 THEN PRINT " ";:PRINT A$(2,2);" ";:A$=A$(8, LEN(A$)):PRINT A$:
580 IF PEEK (-16384)<127 THEN 590: POKE -16368,0:GOSUB 880
590 NEXT L:PRINT :INPUT "ARE THESE ENTRIES CORRECT (Y/N) ",A$:IF A$="N" THEN 360
600 GOSUB 1010:FOR L=1 TO PN-1:GOSUB 990
610 IF A$(2,2)="B" THEN 820:REM *** IT'S A BINARY PROGRAM
620 A$=A$(8, LEN(A$))
630 REM *** CHOP OFF FIRST 7 CHARS
640 IF TAPE THEN 780:REM *** DO IT DIFFERENT FOR TAPE
650 PRINT "LOAD ";A$;",S";MS;",D";MD
660 PRINT "SAVE ";A$;",S";SS;",D";SD
670 DONE=0:NEXT L
680 PRINT "TEXT"
690 PRINT "CALL-936"
700 PRINT "PRINT ";Q$;"COPY COMPLETE...";Q$
710 PRINT "DELETE ";T$;TS;",D";TD
720 PRINT D$;"CLOSE"
730 IF NOT TAPE THEN 750
740 TEXT :CALL -936:PRINT :PRINT "START RECORDER AND":INPUT "PRESS 'RETURN' KEY TO START ",A$
750 TEXT :CALL -936:VTAB (5):TAB (15):PRINT "COPYING....": POKE 34,20:CALL -936
760 PRINT D$;"EXEC ";T$;TS;",D";TD
770 PRINT "RUN HELLO2"
780 REM *** SAVE TO TAPE
790 PRINT "LOAD ";A$;",S";MS;",D";MD:PRINT "VTAB(9)":PRINT "CALL -958":PRINT "PRINT ";Q$;"RECORDING...";Q$:PRINT "VTAB(23)"
800 PRINT "SAVE":IF CO>1 THEN PRINT "SAVE"
810 GOTO 670
820 REM *** BINARY PROGRAM SAVE
830 A$=A$(8, LEN(A$)):PRINT "FP":REM *** JUST TO BE SURE...
840 PRINT "BLOAD ";A$;",S";MS;",D";MD:IF TAPE THEN 920
850 PRINT "PRINT";Q$;D$;"BSAVE ";A$;",S";SS;",D";SD;",A";Q$;";PEEK(";BS;")+PEEK(";BS+1;")*256";
860 PRINT ";";Q$;",L";Q$;";PEEK(";BL;")+PEEK(";BL+1;")*256"
870 GOTO 670
880 X= PEEK (-16384):IF X<127 THEN 880: POKE -16368,0:RETURN
890 POKE 50,255:TAB (7):PRINT A$;:TAB (23): POKE 50,63:RETURN
900 V=0:IF X< ASC("1") OR X> ASC("7") THEN RETURN :V=X-176:RETURN
910 V=0:IF X< ASC("1") OR X> ASC("2") THEN RETURN :V=X-176:RETURN
920 REM *** "BSAVE" TO TAPE
930 PRINT "VTAB(9)":PRINT "CALL -958":PRINT "PRINT ";Q$;"START: ";Q$;";PEEK(";BS;")+PEEK(";BS+1;")*256;";Q$;" END: ";Q$;
940 PRINT ";(PEEK(";BS;")+PEEK(";BS+1;")*256)+(PEEK(";BL;")+PEEK(";BL+1;")*256)":PRINT "PRINT";Q$;"RECORDING...";Q$:PRINT "VTAB(23)"
950 PRINT "POKE 60,PEEK(";BS;")":PRINT "POKE 61,PEEK(";BS+1;")":PRINT "POKE 62,(PEEK(";BS;")+PEEK(";BL;")-(256*(PEEK(";BS;
960 PRINT ")+PEEK(";BL;")>255)))":PRINT "POKE 63,(PEEK(";BS+1;")+PEEK(";BL+1;")+((PEEK(";BS;")+PEEK(";BL;"))>255))"
970 PRINT "CALL -307":DONE=DONE+1:IF CO>1 AND DONE<2 THEN 950:GOTO 670
980 REM *** PRINT STATEMENTS TO TEXT *** FILES TO POKE START AND *** END POINTERS FOR SAVE *** ROUTINE
990 REM *** POKE MEMORY INTO A$
1000 N=A(B(L)):FOR Q=N TO N+36: POKE LM+26+(Q-N), PEEK (Q):NEXT Q: POKE LM+26+(Q-N),30:RETURN
1010 TEXT :CALL -936:VTAB (8):PRINT "CREATING TRANSFERFILE...":T$="TRANSFERFILE,S"
1020 PRINT D$;"OPEN ";T$;TS;",D";TD:PRINT D$;"DELETE ";T$;TS;",D";TD
1030 PRINT D$;"OPEN ";T$;TS;",D";TD:PRINT D$;"WRITE ";T$(1, LEN(T$)-2):RETURN
1040 REM *** DISK TO DISK/TAPE *** TRANSFER PROGRAM *** BY DAVID C. MOGER
1050 REM *** PATTERNED AFTER DISK *** TO DISK TRANSFER PROGRAM *** BY RON ALDRICH
1060 REM *** ORIGINAL VERSION FROM *** CALL APPLE VOL.2, NO.2, *** FEBRUARY 1979
1070 REM *** PROGRAM WILL TRANSFER *** INTEGER, APPLESOFT, AND *** BINARY PROGRAMS TO DISK *** OR CASSETTE TAPE
Text found in RIC_Programs_63.dsk/CURSORS.txt:
Offset Hex Data Characters
======= ================================================ =================
$000000 0C 00 20 00 47 00 59 00 5B 00 68 00 75 00 82 00 .. .G.Y. [.h.u...
$000010 95 00 9B 00 9B 00 9B 00 9B 00 00 00 00 00 00 00 ........ ........
$000020 09 2D 2D 15 3F 3F 3F 17 2D 2D 2D 2D 3E 3F 3F 3F .--.???. ---->???
$000030 37 2D 2D 2D 2D 3E 3F 3F 3F 37 2D 2D 2D 2D 1E 3F 7---->?? ?7----.?
$000040 3F 3F 0E 2D 2D 96 00 09 2D 2D 15 15 36 36 1E 1E ??.--... --..66..
$000050 3F 3F 1C 1C 24 24 0C 05 00 1D 00 36 36 36 2E 2D ??..$$.. ...666.-
$000060 2D 24 24 24 3C 3F 3F 00 12 36 36 2D 2D 25 24 3C -$$$?. .66--%$<
$000070 3F 3F 18 08 00 2E 68 49 29 B6 92 32 3F DB 1B 27 ??....hI )6.2?[.'
$000080 04 00 92 92 92 92 92 2D 2D 2D 2D 25 C0 C0 C0 C0 .......- ---%@@@@
$000090 C0 C0 C0 1B 00 2D 3E 37 2D 05 00 0D 16 1F 07 00 @@@..->7 -.......
$0000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
$0000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
$0000C0 00 00 00 00 00 00 00 00 A0 00 A5 3C C9 00 D0 02 ........ .%.@ %>I.P.F?
$0000E0 C6 3E A5 40 C9 00 D0 02 C6 41 C6 40 A5 3D C5 3F F>%@I.P. FAF@%=E?
$0000F0 D0 E2 A5 3C C5 3E D0 DC 60 D8 A0 00 4C 2C FE .. Pb%P\ `X .L,~
** END **
Text found in RIC_Programs_63.dsk/FILE #1.txt:
Offset Hex Data Characters
======= ================================================ =================
$000000 A0 B0 B0 B1 C9 B0 B0 B3 C1 C1 C1 A0 D5 D4 C9 CC 001I003 AAA UTIL
$000010 C9 D4 D9 A0 B1 B7 B3 A0 A0 A0 A0 A0 A0 A0 A0 A0 ITY 173
$000020 A0 B0 B0 B1 C9 B0 B0 B5 C1 C1 C1 C1 A0 CD C5 D3 001I005 AAAA MES
$000030 D3 C1 C7 C5 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 SAGE
$000040 A0 B0 B0 B1 C9 B0 B2 B5 C1 D0 D0 CC C5 C1 C4 C4 001I025 APPLEADD
$000050 C9 D8 A0 C9 C9 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 IX II
$000060 A0 B0 B0 B1 C1 B0 B0 B6 C1 D0 D0 CC C5 C1 C4 C4 001A006 APPLEADD
$000070 C9 D8 A0 C9 C9 A0 CE CF D4 C5 D3 A0 A0 A0 A0 A0 IX II NO TES
$000080 A0 B0 B0 B1 C9 B0 B0 B2 C1 D5 D4 CF C2 CF CF D4 001I002 AUTOBOOT
$000090 A0 B1 B6 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 16
$0000A0 A0 B0 B0 B1 C2 B0 B0 B4 C1 D5 D4 CF C2 CF CF D4 001B004 AUTOBOOT
$0000B0 A0 B1 B6 AE D8 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 16.X
$0000C0 A0 B0 B0 B1 C2 B0 B2 B2 C2 C1 D3 C9 C3 AD C9 CE 001B022 BASIC-IN
$0000D0 D4 C5 C7 C5 D2 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 TEGER
$0000E0 A0 B0 B0 B1 C9 B0 B1 B9 C3 C1 D4 C1 CC CF C7 A0 001I019 CATALOG
$0000F0 C3 D2 C5 C1 D4 C5 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 CREATE
$000100 A0 B0 B0 B1 C9 B0 B2 B3 C3 CF D0 D9 A0 CD CF C7 001I023 COPY MOG
$000110 C5 D2 A0 B1 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 ER 1
$000120 A0 B0 B0 B1 C9 B0 B2 B5 C3 CF D0 D9 A0 CD CF C7 001I025 COPY MOG
$000130 C5 D2 A0 B2 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 ER 2
$000140 A0 B0 B0 B1 C9 B0 B0 B9 C6 D2 C5 C5 A0 D3 C5 C3 001I009 FREE SEC
$000150 D4 CF D2 D3 A0 D3 C3 CF C7 C9 CE A0 A8 A0 A0 A0 TORS SCO GIN (
$000160 A0 B0 B0 B1 C2 B0 B0 B3 CD AD C1 A4 B3 B0 B0 CC 001B003 M-A$300L
$000170 A4 B1 B0 B0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 $100
$000180 A0 B0 B0 B1 C2 B0 B0 B3 CD B1 AD C1 A4 B8 B0 B0 001B003 M1-A$800
$000190 CC A4 B1 B8 B0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 L$180
$0001A0 A0 B0 B0 B1 C2 B0 B0 B3 CD B2 AD C1 A4 B8 B0 B0 001B003 M2-A$800
$0001B0 CC A4 B1 B6 B0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 L$160
$0001C0 A0 B0 B0 B1 C2 B0 B0 B2 CD D8 AD C1 A4 B9 B0 B0 001B002 MX-A$900
$0001D0 CC A4 B8 B0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 L$80
$0001E0 A0 B0 B0 B1 C9 B0 B1 B6 D4 D9 D0 C5 D7 D2 C9 D4 001I016 TYPEWRIT
$0001F0 C5 D2 AB D3 CF D5 CE C4 A0 D2 CF D5 D4 A0 A0 A0 ER+SOUND ROUT
$000200 A0 B0 B0 B1 C9 B0 B1 B9 D5 D0 C4 C1 D4 C5 A0 B1 001I019 UPDATE 1
$000210 B6 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 6
$000220 A0 B0 B0 B1 C1 B0 B4 B0 D8 AD C6 C9 CC C5 A0 C3 001A040 X-FILE C
$000230 C1 C2 C9 CE C5 D4 A0 C9 D6 A0 A0 A0 A0 A0 A0 A0 ABINET I V
$000240 A0 B0 B0 B1 C9 B0 B2 B4 D8 AD CD D5 CC D4 C9 D0 001I024 X-MULTIP
$000250 CC C5 A0 C4 C9 D3 CB A0 C3 C1 D4 C1 CC A0 A0 A0 LE DISK CATAL
$000260 A0 B0 B0 B1 C9 B0 B0 B2 C3 CF D0 D9 A0 CC C8 D3 001I002 COPY LHS
$000270 A0 C6 C1 D3 D4 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 FAST
$000280 A0 B0 B0 B1 C2 B0 B1 B0 C3 CF D0 D9 A0 CC C8 D3 001B010 COPY LHS
$000290 A0 C6 C1 D3 D4 AE D8 A0 A0 A0 A0 A0 A0 A0 A0 A0 FAST.X
$0002A0 A0 B0 B0 B1 C9 B0 B0 B2 D5 D0 C4 C1 D4 C5 A0 B1 001I002 UPDATE 1
$0002B0 B6 A0 D7 C1 D2 CE C9 CE C7 A0 A0 A0 A0 A0 A0 A0 6 WARNIN G
$0002C0 A0 B0 B0 B1 C2 B0 B2 B6 C6 C9 CC C5 A0 C4 C9 D3 001B026 FILE DIS
$0002D0 CB A0 C3 C1 D4 C1 CC CF C7 AE D8 A0 A0 A0 A0 A0 K CATALO G.X
$0002E0 A0 B0 B0 B1 C9 B0 B0 B2 C6 C9 CC C5 A0 C4 C9 D3 001I002 FILE DIS
$0002F0 CB A0 C3 C1 D4 C1 CC CF C7 A0 A0 A0 A0 A0 A0 A0 K CATALO G
** END **
Text found in RIC_Programs_63.dsk/FILE DISK CATALOG.int:
90 CALL -936
95 REM
100 REM CAN YOU DETERMINE WHAT
110 REM PRINTER THIS PROGRAM IS
120 REM DESIGNED TO USE? IF YOU
125 REM DETERMINE, PLEASE WRITE:
130 REM
140 REM RON MALEIKA
150 REM 721 PIKE ST
160 REM CHEYENNE, WY 82001
169 REM
170 REM PS: WE HAVE THIS MODIFIED
171 REM FOR EPSON. ITS LISTED
172 REM ON ANOTHER VOLUME.
173 REM
180
190 FOR I=1 TO 2500:NEXT I
200 PRINT " BRUN FILE DISK CATALOG.X"
210 PRINT "RUN HELLO2"
Text found in RIC_Programs_63.dsk/FREE SECTORS.int:
10 REM ***********************
11 REM * *
12 REM * DISK SPACE *
13 REM * *
14 REM * BY *
15 REM * *
16 REM * TOM SCOGIN *
17 REM * *
18 REM * COPYRIGHT 1979 *
19 REM * *
20 REM * PERMISSION GRANTED *
21 REM * FOR UNLIMITED DIS- *
22 REM * TRIBUTION OF ONLY *
23 REM * THIS PROGRAM TO *
24 REM * ALL APPLE USERS. *
25 REM * *
26 REM * NOT FOR SALE!!! *
27 REM * *
28 REM ***********************
29 GOSUB 700
30 LOMEM:2560
40 GOSUB 500
50 POKE 2079,17: POKE 2089,0:CALL 2048
60 POKE 2,0: POKE 3,0
70 FOR A=0 TO 34
80 POKE 0, PEEK (2360+A*4)
90 CALL 2176
100 POKE 0, PEEK (2361+A*4)
110 CALL 2176
120 NEXT A
130 GOSUB 400
140 PRINT "TOTAL REMAINING SPACE ON THIS DISK:"
150 A= PEEK (2)+ PEEK (3)*256
160 PRINT :PRINT A;" SECTORS -- (";A/4;".";(A MOD 4)*25;"K)"
170 PRINT :PRINT
180 INPUT "DO YOU WISH TO DOCUMENT ANOTHER DISK?",A$
190 IF A$="" THEN 300
200 IF A$(1,1)="Y" THEN 300
210 TEXT :PRINT "RUN HELLO2"
300 CALL -936:GOTO 50
400 CALL -936
410 V= PEEK (2310)
420 POKE 2079,0:CALL 2048
430 B= PEEK (2558)
440 PRINT "THIS DISK WAS INITIATED AS A ";:IF B=54 THEN PRINT "MASTER";
450 IF B=70 THEN PRINT "20K";:IF B=86 THEN PRINT "24K";:IF B=118 THEN PRINT "32K";:IF B=134 THEN PRINT "36K";:IF B=182 THEN PRINT "48K";
460 IF B#54 THEN PRINT " SLAVE";
465 PRINT
470 PRINT
480 PRINT "VOLUME #";V
490 PRINT :RETURN
500 S= PEEK (1528)
510 POKE 2076,S: POKE 2090,S
520 CALL -936:TAB 8
530 PRINT "DISK SPACE DOCUMENTATION"
540 PRINT
550 TAB 13:PRINT "BY TOM SCOGIN"
560 POKE 34,6
570 PRINT :PRINT
580 DIM A$(10)
590 RETURN
700 X=( PEEK (77)-128)*256+ PEEK (76)-512
710 IF X=0 THEN X=X+1:IF X>0 THEN 730
720 X=X+32767+1:GOTO 740
730 X=X-32767-1
740 CALL X
750 RETURN
65534 REM DISK SPACE DOCUMENTATION
65535 REM COPYRIGHT 1978 BY TOM SCOGIN
Listing error: possible embedded machine code.
Text found in RIC_Programs_63.dsk/HELLO.bas:
1 FOR A = 1 TO 500: NEXT A: TEXT : HOME
2 D$ = ""
105 GOTO 5000
107 HOME
110 PRINT "DO YOU WANT TO:": PRINT : PRINT : PRINT : PRINT
120 PRINT " 1. LOAD A PROGRAM": PRINT
130 PRINT " 2. RUN A PROGRAM": PRINT
140 PRINT " 3. END FOR NOW": PRINT
145 FLASH
150 INPUT "ENTER A NUMBER (1, 2, OR 3) ";A
155 NORMAL
160 IF A <1 THEN PRINT "NUMBER MUST BE GREATER THAN 0": FOR M = 1 TO 5000: NEXT M: HOME : GOTO 110
170 IF A >3 THEN PRINT "NUMBER MUST BE LESS THAN 3": FOR M = 1 TO 5000: NEXT M: HOME : GOTO 110
180 IF A = 1 THEN 1000
190 IF A = 2 THEN 1000
200 IF A = 3 THEN END
1000 HOME
1010 PRINT TAB( 18)"MENU"
1020 PRINT : PRINT : PRINT
1025 GOSUB 7000
1030 PRINT " 1. MULTIPLE COPIER"
1040 PRINT " 2. MULTIPLE COPIER 2"
1050 PRINT " 3. DISK FREE SECTOR PROGRAM"
1060 PRINT " 4. DISK II SECTOR MAP"
1070 PRINT " 5. DISK CATALOG PROGRAM"
1080 PRINT " 6. MEMORY ADDRESS CONVERTER"
1090 PRINT " 7. USEFUL SUBROUTINES"
1100 PRINT " 8. TYPEWRITER SOUND SUBROUTINE"
1120 PRINT " 9. DATA BASE MANAGEMENT"
1130 PRINT " 10. MULTIPLE DISK CATALOG"
1140 PRINT : PRINT : INPUT "ENTER A NUMBER FROM 1 TO 10 ";B
1150 IF B <1 THEN PRINT "NUMBER LESS THAN 1--REENTER": FOR M = 1 TO 5000: NEXT M: GOTO 1000
1160 IF B >10 THEN PRINT "NUMBER GREATER THAN 10--REENTER": FOR M = 1 TO 5000: NEXT M: GOTO 1000
1165 D$ = ""
1170 IF A = 1 AND B = 1 THEN PRINT D$;"LOAD ";E$
1180 IF A = 1 AND B = 2 THEN PRINT D$;"LOAD ";F$
1190 IF A = 1 AND B = 3 THEN PRINT D$;"LOAD ";G$
1200 IF A = 1 AND B = 4 THEN PRINT D$;"LOAD ";H$
1300 IF A = 1 AND B = 5 THEN PRINT D$;"LOAD ";I$
1400 IF A = 1 AND B = 6 THEN PRINT D$;"LOAD ";J$
1500 IF A = 1 AND B = 7 THEN PRINT D$;"LOAD ";K$
1600 IF A = 1 AND B = 8 THEN PRINT D$;"LOAD ";L$
1610 IF A = 1 AND B = 9 THEN PRINT D$;"LOAD ";M$
1620 IF A = 1 AND B = 10 THEN PRINT D$;"LOAD ";N$
1630 IF A = 2 AND B = 1 THEN PRINT D$;"RUN ";E$
1640 IF A = 2 AND B = 2 THEN PRINT D$;"RUN ";F$
1650 IF A = 2 AND B = 3 THEN PRINT D$;"RUN ";G$
1660 IF A = 2 AND B = 4 THEN PRINT D$;"RUN ";H$
1670 IF A = 2 AND B = 5 THEN PRINT D$;"RUN ";I$
1680 IF A = 2 AND B = 6 THEN PRINT D$;"RUN ";J$
1690 IF A = 2 AND B = 7 THEN PRINT D$;"RUN ";K$
1700 IF A = 2 AND B = 8 THEN PRINT D$;"RUN ";L$
1710 IF A = 2 AND B = 9 THEN PRINT D$;"RUN ";M$
1720 IF A = 2 AND B = 10 THEN PRINT D$;"RUN ";N$
1730 END
5000 CLEAR : HOME : PRINT "WHICH OMPUTER DO YOU HAVE? ": PRINT : PRINT : PRINT :D$ = ""
5010 PRINT "1. II OR II+ WITH LANGUAGE CARD"
5020 PRINT : PRINT : PRINT "2. IIE"
5022 PRINT
5023 PRINT : FLASH : PRINT "INPUT A 3 IF INTEGER ALREADY LOADED": NORMAL
5027 PRINT : PRINT : PRINT
5030 PRINT : INPUT "ENTER A 1 OR 2 FOR YOUR MACHINE ";C
5040 IF C <0 OR C >3 THEN PRINT "YOU GOOFED": FOR M = 1 TO 2000: NEXT M: GOTO 5000
5050 IF C = 1 THEN PRINT D$;"RUN HELLOB"
5060 IF C = 2 THEN PRINT D$;"RUN HELLO1"
6000 GOTO 107
7000 E$ = "COPY MOGER 1"
7010 F$ = "COPY MOGER 2"
7020 G$ = "FREE SECTORS"
7030 H$ = "MAP SECTORS"
7040 I$ = "FILE DISK CATALOG"
7050 J$ = "MEMORY ADDRESSES"
7060 K$ = "SUBROUTINE PAK"
7070 L$ = "TYPE"
7080 M$ = "CAB"
7090 N$ = "LOG"
7100 RETURN
7200 END
0
5220
Text found in RIC_Programs_63.dsk/HELLO1.bas:
10 TEXT : HOME
20 D$ = CHR$(4): REM CTRL-D
60 PRINT D$;"BLOAD LOADER.OBJ0"
70 CALL 4096: REM FAST LOAD IN INTEGER BASIC
80 VTAB 10: CALL -958
90 C = PEEK( -1101)
100 PRINT CHR$(4);"RUN HELLO2"
Text found in RIC_Programs_63.dsk/HELLO2.bas:
1 FOR A = 1 TO 500: NEXT A: TEXT : HOME
2 D$ = ""
107 HOME
110 PRINT "DO YOU WANT TO:": PRINT : PRINT : PRINT : PRINT
120 PRINT " 1. LOAD A PROGRAM": PRINT
130 PRINT " 2. RUN A PROGRAM": PRINT
140 PRINT " 3. END FOR NOW": PRINT
145 FLASH
150 INPUT "ENTER A NUMBER (1, 2, OR 3) ";A
155 NORMAL
160 IF A <1 THEN PRINT "NUMBER MUST BE GREATER THAN 0": FOR M = 1 TO 5000: NEXT M: HOME : GOTO 110
170 IF A >3 THEN PRINT "NUMBER MUST BE LESS THAN 3": FOR M = 1 TO 5000: NEXT M: HOME : GOTO 110
180 IF A = 1 THEN 1000
190 IF A = 2 THEN 1000
200 IF A = 3 THEN END
1000 HOME
1010 PRINT TAB( 18)"MENU"
1020 PRINT : PRINT : PRINT
1025 GOSUB 7000
1030 PRINT " 1. MULTIPLE COPIER"
1040 PRINT " 2. MULTIPLE COPIER 2"
1050 PRINT " 3. DISK FREE SECTOR PROGRAM"
1060 PRINT " 4. DISK II SECTOR MAP"
1070 PRINT " 5. DISK CATALOG PROGRAM"
1080 PRINT " 6. MEMORY ADDRESS CONVERTER"
1090 PRINT " 7. USEFUL SUBROUTINES"
1100 PRINT " 8. TYPEWRITER SOUND SUBROUTINE"
1120 PRINT " 9. DATA BASE MANAGEMENT"
1130 PRINT " 10. MULTIPLE DISK CATALOG"
1140 PRINT : PRINT : INPUT "ENTER A NUMBER FROM 1 TO 10 ";B
1150 IF B <1 THEN PRINT "NUMBER LESS THAN 1--REENTER": FOR M = 1 TO 5000: NEXT M: GOTO 1000
1160 IF B >10 THEN PRINT "NUMBER GREATER THAN 10--REENTER": FOR M = 1 TO 5000: NEXT M: GOTO 1000
1165 D$ = ""
1170 IF A = 1 AND B = 1 THEN PRINT D$;"LOAD ";E$
1180 IF A = 1 AND B = 2 THEN PRINT D$;"LOAD ";F$
1190 IF A = 1 AND B = 3 THEN PRINT D$;"LOAD ";G$
1200 IF A = 1 AND B = 4 THEN PRINT D$;"LOAD ";H$
1300 IF A = 1 AND B = 5 THEN PRINT D$;"LOAD ";I$
1400 IF A = 1 AND B = 6 THEN PRINT D$;"LOAD ";J$
1500 IF A = 1 AND B = 7 THEN PRINT D$;"LOAD ";K$
1600 IF A = 1 AND B = 8 THEN PRINT D$;"LOAD ";L$
1610 IF A = 1 AND B = 9 THEN PRINT D$;"LOAD ";M$
1620 IF A = 1 AND B = 10 THEN PRINT D$;"LOAD ";N$
1630 IF A = 2 AND B = 1 THEN PRINT D$;"RUN ";E$
1640 IF A = 2 AND B = 2 THEN PRINT D$;"RUN ";F$
1650 IF A = 2 AND B = 3 THEN PRINT D$;"RUN ";G$
1660 IF A = 2 AND B = 4 THEN PRINT D$;"RUN ";H$
1670 IF A = 2 AND B = 5 THEN PRINT D$;"RUN ";I$
1680 IF A = 2 AND B = 6 THEN PRINT D$;"RUN ";J$
1690 IF A = 2 AND B = 7 THEN PRINT D$;"RUN ";K$
1700 IF A = 2 AND B = 8 THEN PRINT D$;"RUN ";L$
1710 IF A = 2 AND B = 9 THEN PRINT D$;"RUN ";M$
1720 IF A = 2 AND B = 10 THEN PRINT D$;"RUN ";N$
1730 END
7000 E$ = "COPY MOGER 1"
7010 F$ = "COPY MOGER 2"
7020 G$ = "FREE SECTORS"
7030 H$ = "MAP SECTORS"
7040 I$ = "FILE DISK CATALOG"
7050 J$ = "MEMORY ADDRESSES"
7060 K$ = "SUBROUTINE PAK"
7070 L$ = "TYPE"
7080 M$ = "CAB"
7090 N$ = "LOG"
7100 RETURN
7200 END
0
5220
Text found in RIC_Programs_63.dsk/HELLOB.bas:
10 REM -- DOS 3.3 HELLO
20 REM
30 TEXT : PRINT
40 HOME
50 REM
60 REM
70 REM
80 REM --POKE LANGUAGE CARD FINDER
90 POKE 768,0: POKE 769,173: POKE 770,0: POKE 771,224: POKE 772,72: POKE 773,173: POKE 774,129: POKE 775,192: POKE 776,104:
95 POKE 777,72: POKE 778,205: POKE 779,0: POKE 780,224: POKE 781,208: POKE 782,35: POKE 783,173: POKE 784,131: POKE 785,192:
100 POKE 786,173: POKE 787,131: POKE 788,192: POKE 789,169: POKE 790,165: POKE 791,141: POKE 792,0: POKE 793,208: POKE 794,205:
105 POKE 795,0: POKE 796,208: POKE 797,208: POKE 798,19: POKE 799,74: POKE 800,141: POKE 801,0: POKE 802,208: POKE 803,205:
110 POKE 804,0: POKE 805,208: POKE 806,208: POKE 807,10: POKE 808,173: POKE 809,129: POKE 810,192: POKE 811,173: POKE 812,129:
115 POKE 813,192: POKE 814,169: POKE 815,1: POKE 816,208: POKE 817,2: POKE 818,169: POKE 819,0: POKE 820,141: POKE 821,0:
120 POKE 822,3: POKE 823,104: POKE 824,205: POKE 825,0: POKE 826,224: POKE 827,240: POKE 828,3: POKE 829,173: POKE 830,128:
125 POKE 831,192: POKE 832,96:
155 CALL 769
160 IF PEEK(768) < >1 THEN 250
170 REM
180 REM --IF THERE, LOAD INTG AND PA#1
190 REM
200 REM
210 PRINT CHR$(4);"BLOAD INTBASICA,A$D000"
220 REM --WRITE PROTECT THE CARD
230 A = PEEK( -16254): REM $C082
240 GOTO 300
250 REM
260 REM --NO CARD OR CAN'T RELOAD
270 REM
280 IF PEEK(768) = 0 THEN 300
290 PRINT : PRINT "...LANGUAGE CARD CANNOT BE RELOADED": PRINT " UNTIL THE SYSTEM IS REBOOTED..."
300 PRINT CHR$(4);"RUN HELLO2"
Text found in RIC_Programs_63.dsk/LOG.int:
10 REM ****************************
20 REM * MULTIPLE DISK CATALOG *
30 REM * BY GARY A. FOOTE *
40 REM * INTEGER BASIC *
50 REM ****************************
60 GOTO 110
100 FOR L=0 TO 36: POKE LM+18+L, PEEK (Y+L):IF PEEK (Y+L)#160 THEN LL=L:NEXT L: POKE LM+19+LL,30:RETURN :REM BUILD STRING SUBROUTINE
110 CALL -936
120 PRINT :TAB 10:PRINT "MULTIPLE DISK CATALOG":PRINT :TAB 12:PRINT "BY GARY A. FOOTE"
130 PRINT :PRINT "CREATES COMBINED CATALOG FOR MULTIPLE":PRINT "DISKS THAT CAN BE READ BY FILE CABINET"
140 PRINT "PROGRAM FROM APPLE SOFTWARE BANK.":PRINT :PRINT "INSTRUCTIONS ? (Y/N) "
150 IF PEEK (-16384)<128 THEN 150:IF PEEK (-16384)=217 THEN GOSUB 700: POKE -16368,0
160 C=0:LM= PEEK (74)+ PEEK (75)*256:DIM A$(40),A(50),VOL$(3):D$="":REM D$=CTL-D
170 HM=32767:IF PEEK (203)<128 THEN HM= PEEK (202)+ PEEK (203)*256:HM=HM-1000
180 DIM NAME$(30):NAME$="DISKCAT INDEXFILE"
190 REM INSERT PROGRAM TO WRITE CATALOG INTO MEMORY, FROM CALL-APPLE 2/79
200 DIM HEX$(255):GS=210:GOTO 220
210 HEX$( LEN(HEX$)+1)=" NE88AG":FOR I=1 TO LEN(HEX$): POKE 511+I, ASC(HEX$(I)):NEXT I: POKE 72,0:RETURN
220 HEX$="0300: 38 48 84 00 A0 00 C9 20 B0 02 69 C0 C9 60 B0 02 69 80 C9 80 B0 02 69 40 91 02 E6 02 D0 02 E6 03":GOSUB GS:CALL -144
230 HEX$="0320: 68 A4 00 60 00 00 00 00 A9 A0 60":GOSUB GS:CALL -144
240 PRINT D$;"NOMON C,I,O"
250 POKE 2,0: POKE 3,16:A(1)=4096: POKE LM+4, PEEK (54): POKE LM+5, PEEK (55):C=C+2840
260 REM WRITE EACH CATALOG CONSECUTIVELY IN MEMORY, STARTING AT $1000
270 VTAB 10:PRINT "INSERT EACH DISK IN DRIVE":PRINT "ENTER OPTIONAL 3 DIGIT VOLUME NUMBER"
280 PRINT "HIT RETURN TO CATALOG":PRINT "HIT "ESC" TO CREATE CATALOG FILE"
290 PRINT : POKE 34,14: POKE 50,63:PRINT :PRINT "INPUT YOUR OWN OPTIONAL 3 DIGIT VOLUME ";"NUMBER IF DESIRED THEN HIT RETURN TO ";
300 PRINT "CATALOG OR ESC TO CREATE CATALOG FILE ";: POKE 50,255:VOL$=""
310 X= PEEK (-16384):IF X<128 THEN 310:IF X=155 THEN 440:INPUT VOL$
320 VTAB PEEK (37):TAB 1:PRINT "CATALOGING DISK #";A(0)+1
330 REM TURN ON PRINT ROUTINE
340 GOTO 360
350 POKE C,0: POKE C+1,3: POKE C+2,40: POKE C+3,3:REM FOR DOS 3.1
360 POKE 54,0: POKE 55,3: POKE 56,40: POKE 57,3:CALL 1002:REM FOR DOS 3.2
370 PRINT D$;"CATALOG"
380 PRINT D$;"PR#0":PRINT D$;"IN#0":REM TURN OFF PRINT ROUTINE
390 A(0)=A(0)+1:A(A(0)+1)= PEEK (2)+ PEEK (3)*256:IF LEN(VOL$)=0 THEN 410
400 FOR X=1 TO 3: POKE A(A(0))+13+X, ASC(VOL$(X,X)):NEXT X
410 IF A(A(0)+1)MEMORY FULL": POKE 50,255:FOR X=1 TO 1500:NEXT X
420 REM ALL CATALOGS NOW IN MEMORY
430 REM CREATE CATALOG FILE AND WRITE ON DISK
440 POKE -16368,0:NUM=(A(A(0)+1)-A(1)-A(0)*19)/38:REM CALCULATE NUMBER OF CATALOGED PROGRAMS
450 POKE 34,9:CALL -936:PRINT "INSERT DISK WHERE CATALOG FILE WILL":PRINT "RESIDE AND ENTER:"
460 PRINT "1) "NEW" TO CREATE A NEW CATALOG FILE":PRINT "2) "UPDATE" TO ADD TO AN EXISTING FILE"
470 INPUT "?",A$:IF A$="" THEN 470:IF A$="NEW" THEN 480:IF A$="UPDATE" THEN 480:GOTO 470
480 PRINT D$;"OPEN ";NAME$;",V0":IF A$="NEW" THEN GOTO 540
490 REM IF UPDATE, CHANGE RECORD COUNT IN FIRST RECORD
500 PRINT D$;"READ ";NAME$;",R0,B0":INPUT A$:Y=0
510 FOR X=1 TO LEN(A$):Y=Y*10+ ASC(A$(X,X))-176:NEXT X
520 PRINT D$;"WRITE ";NAME$;",R0,B0":PRINT NUM+Y
530 PRINT D$;"CLOSE ";NAME$:PRINT D$;"APPEND ";NAME$
540 PRINT "CATALOG FILE CREATION WILL TAKE APPROX":PRINT 1+NUM*8/600;" MINUTE(S)"
550 PRINT D$;"WRITE ";NAME$
560 IF A$="NEW" THEN PRINT NUM
570 FOR X=1 TO A(0)
580 Y=A(X):GOSUB 100:VOL$=A$(15,17):XX=A(X)+19:REM GET VOLUME #
590 FOR Y=XX TO A(X+1)-1 STEP 38:GOSUB 100
600 REM PRINT VOL, TYPE, SIZE, NAME
610 PRINT VOL$:PRINT A$(2,2):PRINT A$(4,6):PRINT A$(8, LEN(A$))
620 NEXT Y:NEXT X
630 PRINT D$;"CLOSE ";NAME$
640 PRINT "DONE": POKE 34,0
650 END
700 POKE -16360,0:CALL -936: POKE 50,63:PRINT "PLEASE READ THE FOLLOWING INSTRUCTIONS CAREFULLY": POKE 50,255:PRINT
710 PRINT "1. REMOVE THIS DISK FROM DRIVE.":PRINT
720 PRINT "2. INSERT DISKETTE YOU WISH TO CATALOG";:PRINT " FOR USE WITH FILE CABINET II PROGRAM.":PRINT
730 PRINT "3. HIT RETURN. THE PHRASE "CATALOGING DISK NO. 1" WILL APPEAR ON THE SCREEN "
740 PRINT "AND YOU WILL BE PROMPTED TO HIT RETURN OR ESCAPE.":PRINT
750 PRINT "4. BEFORE HITTING RETURN YOU MAY INPUT YOUR OWN THREE DIGIT VOLUME NUMBER IF DESIRED":PRINT
760 PRINT "5. NOW REPEAT STEPS 2 AND 3 UNTIL ALL DISKETTES WHICH YOU WISH TO CATALOG HAVE";
770 PRINT "BEEN ENTERED.":GOSUB 1020:PRINT "6. YOU ARE NOW READY TO CREATE THE CAT-ALOG FILE. ";
780 PRINT " HIT THE ESCAPE KEY.":PRINT :PRINT "7. YOU WILL BE PROMPTED TO INPUT "NEW""
790 PRINT "OR "UPDATE". RESPOND WITH "NEW" THIS TIME. TO ADD ADDITIONAL CATALOGUES,"
800 PRINT "REPEAT ALL STEPS ABOVE BUT TYPE "UPDATE" AT THIS POINT.":PRINT
810 PRINT "8. THE DISK WILL RUN INTERMITTENTLY FOR A SHORT TIME, THEN A BELL WILL"
820 PRINT "SOUND, ALONG WITH A COMMENT "DONE".":PRINT
830 PRINT "9. YOU MAY NOW RUN FILE CABINET II. "NAME FOR NEW DATA BASE FILE" WILL"
840 PRINT "APPEAR AT THE TOP OF THE SCREEN. TYPE IN "DISKCAT"":GOSUB 1020
850 PRINT "10. NOW SET UP YOUR HEADERS. HEADER FOR COLUMN 1 "VOLUME NO."; COLUMN 2 "FILE TYPE"; COLUMN 3 "SECTORS USED";"
860 PRINT "COLUMN 4 "PROGRAM". HIT RETURN WHEN PROMPTED FOR COLUMN 5":PRINT
870 PRINT "11. FOR "AVERAGE RECORD SIZE", ESTIMATE THE AVERAGE NUMBER OF BYTES USED FOR"
880 PRINT "EACH OF THE FOUR HEADINGS. FOR EXAMPLE:THE MAXIMUM LENGTH FOR PROGRAMS AND SEC-";
890 PRINT "TORS, LANGUAGE SYMBOL AND VOLUME NUMBER WOULD BE 37 BYTES. IF YOUR PROGRAM"
900 PRINT "NAMES ARE ROUGHLY 15 CHARACTERS, THEN YOU MIGHT ESTIMATE 25 FOR THIS INPUT."
910 PRINT "THE SHORTER YOUR PROGRAM NAMES ARE, THE MORE CATALOGS YOU WILL BE ABLE TO STORE.":GOSUB 1020
920 PRINT "12. YOU WILL NOW BE RETURNED TO THE MENU FOR FILE CABINET II, WHICH OPERATES";
930 PRINT "AS DESCRIBED ELSEWHERE. BY LISTING ALL RECORDS YOU WILL FIND THAT EACH RECORD"
940 PRINT "NOW CONTAINS THE VOLUME NUMBER, LANG- GUAGE, SECTORS USED AND PROGRAM NAME FOR";
950 PRINT "EACH DISK THAT YOU HAVE CATALOGED":PRINT
960 PRINT "NOTE, HOWEVER, THAT IF YOUR PRINTER IN- TERFACE CARD IS NOT IN SLOT #1 OR IF YOU";
970 PRINT "CALL YOUR PRINTER DRIVER FROM AN ASSEMB-LY LANGUAGE ROUTINE, YOU WILL NEED TO "
980 PRINT "MODIFY LINES 5230 TO 5290 OF FILE CAB- INET II.":PRINT
990 PRINT " NOTE ALSO THAT THIS VERSION OF FILE CABINET HAS BEEN MODIFIED BY GARY FOOTE"
1000 PRINT "TO PROVIDE FASTER SORTING. WE ALSO EX- PECT TO MAKE FURTHER MODIFICATIONS AND"
1010 PRINT "YOU WILL BE ADVISED THROUGH CALL -APPLE WHEN THIS HAS BEEN DONE":GOSUB 1020:RETURN
1020 POKE 50,63:VTAB 23:TAB 10:PRINT "HIT ANY KEY FOR NEXT PAGE": POKE 50,255:CALL -756:CALL -936:RETURN
Text found in RIC_Programs_63.dsk/LOGO.bas:
50 FLAG = 0
51 FT$(1) = ""
52 FT$(2) = "]SMALL STANDARD"
53 FT$(3) = "]WESTERN"
54 UL$ = "@"
55 ONERR GOTO 450
56 GOTO 170
90 T$ = "":LC = 0: FOR I = 1 TO LEN(A$):J = ASC( MID$ (A$,I,1)): IF J < >UL THEN T$ = T$ + CHR$(J +LC *(J >63 AND J <96)): NEXT :A$ = T$: GOTO 100
95 LC = LC +32 -64 *(LC = 32): NEXT :A$ = T$
99 REM PRINT ROUTINE:
100 POKE 232,L1(FT): POKE 233,L2(FT): IF LEN(FT3$) THEN PRINT D$;"BLOAD ";FT3$;",A";LOC(3):FT$(3) = FT3$:FT3$ = "": RETURN
105 X = 7 *HT -6:Y = 8 *VT -8: ROT= RT *16: IF CL <8 THEN BG = CL: HCOLOR= BG:CL = 8: HPLOT 0,0: CALL 62454:VT = 1:HT = 1:FT = 1: RETURN
110 IF CT THEN X = 0:YT = 176:XR = 0: HCOLOR= BG: FOR Z = 1 TO LEN(A$): DRAW ASC( MID$ (A$,Z,1)) -T1 AT X,YT: DRAW 99: CALL 62923:XR = XR + PEEK(224): NEXT :X = (280 -XR)/2
120 HCOLOR= HC: DRAW 100 AT X,Y: FOR Z = 1 TO LEN(A$): DRAW ASC( MID$ (A$,Z,1)) -T1: XDRAW 99: NEXT : CALL 62923:XO = X:X = PEEK(224) + PEEK(225) *TF:CT = 0:RT = 0:HT = (X +6)/7: IF NOT (IN) THEN RETURN
130 POKE 232,0: POKE 233,64:XR = X:YB = 8 * PEEK(LO(FT) +1):SC = XR -XO: IF SC <256 THEN SCALE= SC: ROT= 0: FOR I = Y -(Y >0) TO Y +YB: XDRAW 3 AT XO,I: NEXT : GOTO 150
140 SCALE= YB: ROT= 16: FOR I = X TO XR: XDRAW 3 AT I,Y: NEXT
150 ROT= 0: SCALE= 1:IN = 0: RETURN
170 SCALE= 1: ROT= 0:CL = 8: HCOLOR= 3:TF = 256:T1 = 31:TXT = 49235:FULL = 49234:HIRES = 49232:UL = ASC(UL$):G$ = CHR$(7):D$ = CHR$(13) + CHR$(4)
180 J = 768: FOR I = 1 TO 3:LOC(I) = PEEK(J) + PEEK(J +1) *256:L1(I) = PEEK(J):L2(I) = PEEK(J +1):J = J +2: NEXT : REM STORE.FONT.LOCATIONS
190 REM FONT LOAD ROUTINE:
200 IF FLAG >0 THEN 500
220 PRINT D$;"BLOAD CURSORS,A16384":LOC(1) = 16640: FOR I = 1 TO 3
230 IF LEN(FT$(I)) THEN PRINT D$;"BLOAD ";FT$(I);",A";LOC(I)
240 LOC(I +1) = LOC(I) + PEEK(43616) + PEEK(43617) *256: NEXT
250 J = 768: FOR I = 1 TO 3:X = LOC(I): POKE J,X - INT(X/256) *256:L1(I) = PEEK(J): POKE J +1, INT(X/256):L2(I) = PEEK(J +1):J = J +2: NEXT : GOTO 500
399 REM HT CALCULATOR:
400 TEXT : VTAB 24: PRINT :Q$ = CHR$(34): PRINT "CENTER FINDER": PRINT "-------------": PRINT "FONT: ";FT: PRINT "COPY: "Q$A$Q$:X = 0:YT = 176:XR = 0: HCOLOR= BG: PRINT : POKE 232, PEEK(766 +2 *FT): POKE 233, PEEK(767 +2 *FT)
405 IF NOT LEN(A$) OR (FT <1 OR FT >3) THEN PRINT CHR$(7);"SPECIFY FONT NUMBER (FT=#)": PRINT "AND COPY (A$="Q$"WORDS"Q$"),": PRINT "AND GOTO 400 AGAIN.": VTAB 11: PRINT "FOR EXAMPLE, TYPE:": PRINT : PRINT "FT=1:A$="Q$"TITLE"Q$":GOTO 400": END
410 FOR I = 1 TO LEN(A$): DRAW ASC( MID$ (A$,I,1)) -31 AT X,YT: DRAW 99: CALL 62923:XR = XR + PEEK(224): NEXT :X = (280 -XR)/2:HT = (X +6)/7: PRINT "FOR HTAB, LET HT="; INT(HT *10)/10: IF HT <1 THEN FLASH : VTAB 7: PRINT CHR$(7)" COPY TOO LONG ";: CALL -958
420 NORMAL : END
450 LINE = PEEK(218) + PEEK(219) *256:TYPE = PEEK(222): HOME : POKE TXT,0: VTAB 21: IF TYPE <255 THEN PRINT CHR$(7);"CODE-";TYPE;" ERROR IN LINE #";LINE: END
499 REM MAIN PROGRAM:
500 HC = 3:HT = 1:VT = 1:FT = 1:CT = 0:IN = 0:CL = 8:RT = 0:FT3$ = "": HGR : POKE FULL,0: REM STARTING DEFAULTS
514 HT = 14:VT = 4:FT = 3:A$ = "P": GOSUB 100
516 HT = 16:VT = 6:FT = 3:A$ = "M": GOSUB 100
518 HT = 18:VT = 8:FT = 3:A$ = "Enterprises": GOSUB 100
519 HT = 3:VT = 19:FT = 2:A$ = "Copying or Reproduction of any part of": GOSUB 100
520 CT = 1:VT = 20:FT = 2:A$ = "The Disk Management Program is Prohibited": GOSUB 100
530 HT = 3:VT = 21:FT = 2:A$ = "Copyright (c) 1983. P.M. Enterprises All": GOSUB 100
535 VT = 22:HT = 3:FT = 2:A$ = "Rights Reserved.": GOSUB 100
600 FOR CT = 1 TO 8000: NEXT CT: TEXT : HOME : PRINT CHR$(4);"RUN HELLO"
Text found in RIC_Programs_63.dsk/SUBROUTINE PAK.int:
31000 POKE 3072,169: POKE 3073,0: POKE 3074,133: POKE 3075,74: POKE 3076,169: POKE 3077,16: POKE 3078,133: POKE 3079,75
31001 POKE 3080,234: POKE 3081,234: POKE 3082,234: POKE 3083,234: POKE 3084,234: POKE 3085,234: POKE 3086,234: POKE 3087,234
31002 POKE 3088,169: POKE 3089,0: POKE 3090,133: POKE 3091,56: POKE 3092,169: POKE 3093,13: POKE 3094,133: POKE 3095,57
31003 POKE 3096,169: POKE 3097,0: POKE 3098,133: POKE 3099,54: POKE 3100,169: POKE 3101,14: POKE 3102,133: POKE 3103,55
31004 POKE 3104,169: POKE 3105,76: POKE 3106,141: POKE 3107,248: POKE 3108,3: POKE 3109,169: POKE 3110,0: POKE 3111,141
31005 POKE 3112,249: POKE 3113,3: POKE 3114,169: POKE 3115,12: POKE 3116,141: POKE 3117,250: POKE 3118,3: POKE 3119,96
31006 POKE 3120,0
31007 POKE 3328,230: POKE 3329,78: POKE 3330,208: POKE 3331,2: POKE 3332,230: POKE 3333,79: POKE 3334,44: POKE 3335,0
31008 POKE 3336,192: POKE 3337,16: POKE 3338,245: POKE 3339,145: POKE 3340,40: POKE 3341,173: POKE 3342,0: POKE 3343,192
31009 POKE 3344,32: POKE 3345,23: POKE 3346,13: POKE 3347,44: POKE 3348,16: POKE 3349,192: POKE 3350,96: POKE 3351,72
31010 POKE 3352,201: POKE 3353,146: POKE 3354,208: POKE 3355,3: POKE 3356,173: POKE 3357,85: POKE 3358,192: POKE 3359,173
31011 POKE 3360,0: POKE 3361,192: POKE 3362,201: POKE 3363,148: POKE 3364,208: POKE 3365,3: POKE 3366,173: POKE 3367,84
31012 POKE 3368,192: POKE 3369,173: POKE 3370,0: POKE 3371,192: POKE 3372,201: POKE 3373,147: POKE 3374,208: POKE 3375,25
31013 POKE 3376,169: POKE 3377,4: POKE 3378,133: POKE 3379,61: POKE 3380,169: POKE 3381,7: POKE 3382,133: POKE 3383,63
31014 POKE 3384,169: POKE 3385,0: POKE 3386,133: POKE 3387,60: POKE 3388,133: POKE 3389,66: POKE 3390,169: POKE 3391,255
31015 POKE 3392,133: POKE 3393,62: POKE 3394,169: POKE 3395,8: POKE 3396,133: POKE 3397,67: POKE 3398,32: POKE 3399,44
31016 POKE 3400,254: POKE 3401,173: POKE 3402,0: POKE 3403,192: POKE 3404,104: POKE 3405,96: POKE 3406,192: POKE 3407,96
31017 POKE 3408,0
31018 POKE 3584,72: POKE 3585,173: POKE 3586,1: POKE 3587,192: POKE 3588,16: POKE 3589,8: POKE 3590,173: POKE 3591,17
31019 POKE 3592,192: POKE 3593,173: POKE 3594,1: POKE 3595,192: POKE 3596,16: POKE 3597,251: POKE 3598,173: POKE 3599,17
31020 POKE 3600,192: POKE 3601,104: POKE 3602,76: POKE 3603,240: POKE 3604,253: POKE 3605,234: POKE 3606,234: POKE 3607,253
31021 POKE 3608,234: POKE 3609,234: POKE 3610,17: POKE 3611,192: POKE 3612,104: POKE 3613,40: POKE 3614,76: POKE 3615,240
31022 POKE 3616,253: POKE 3617,0
31023 A=0
31024 POKE 768,32: POKE 769,137: POKE 770,246: POKE 771,176: POKE 772,51: POKE 773,52: POKE 774,244: POKE 775,0
31025 POKE 776,32: POKE 777,137: POKE 778,246: POKE 779,24: POKE 780,76: POKE 781,0: POKE 782,104: POKE 783,56
31026 POKE 784,25: POKE 785,206: POKE 786,0: POKE 787,201: POKE 788,53: POKE 789,54: POKE 790,33: POKE 791,59
31027 POKE 792,60: POKE 793,201: POKE 794,55: POKE 795,57: POKE 796,41: POKE 797,216: POKE 798,3: POKE 799,70
31028 POKE 800,58: POKE 801,38: POKE 802,224: POKE 803,215: POKE 804,3: POKE 805,56: POKE 806,74: POKE 807,169
31029 POKE 808,57: POKE 809,106: POKE 810,211: POKE 811,2: POKE 812,42: POKE 813,212: POKE 814,2: POKE 815,2
31030 POKE 816,7: POKE 817,48: POKE 818,118: POKE 819,0: POKE 820,165: POKE 821,1: POKE 822,166: POKE 823,0
31031 POKE 824,32: POKE 825,27: POKE 826,229: POKE 827,169: POKE 828,173: POKE 829,32: POKE 830,237: POKE 831,253
31032 POKE 832,169: POKE 833,190: POKE 834,32: POKE 835,237: POKE 836,253: POKE 837,165: POKE 838,23: POKE 839,166
31033 POKE 840,22: POKE 841,32: POKE 842,27: POKE 843,229: POKE 844,32: POKE 845,142: POKE 846,253: POKE 847,32
31034 POKE 848,140: POKE 849,246: POKE 850,43: POKE 851,60: POKE 852,162: POKE 853,59: POKE 854,13: POKE 855,209
31035 POKE 856,2: POKE 857,194: POKE 858,0: POKE 859,76: POKE 860,104: POKE 861,238: POKE 862,0: POKE 863,76
31036 POKE 864,107: POKE 865,227: POKE 866,236: POKE 867,220: POKE 868,2: POKE 869,244: POKE 870,25: POKE 871,176
31037 POKE 872,0: POKE 873,26: POKE 874,193: POKE 875,0: POKE 876,39: POKE 877,216: POKE 878,3: POKE 879,99
31038 POKE 880,231: POKE 881,103: POKE 882,61: POKE 883,37: POKE 884,59: POKE 885,33: POKE 886,28: POKE 887,44
31039 POKE 888,162: POKE 889,60: POKE 890,43: POKE 891,182: POKE 892,3: POKE 893,7: POKE 894,107: POKE 895,189
31040 POKE 896,7: POKE 897,245: POKE 898,199: POKE 899,44: POKE 900,119: POKE 901,27: POKE 902,40: POKE 903,0
31041 POKE 904,28: POKE 905,103: POKE 906,252: POKE 907,8: POKE 908,229: POKE 909,71: POKE 910,217: POKE 911,2
31042 POKE 912,9: POKE 913,218: POKE 914,2: POKE 915,245: POKE 916,247: POKE 917,103: POKE 918,5: POKE 919,252
31043 POKE 920,247: POKE 921,71: POKE 922,219: POKE 923,6: POKE 924,247: POKE 925,28: POKE 926,93: POKE 927,0
31044 POKE 928,220: POKE 929,6: POKE 930,241: POKE 931,8: POKE 932,19: POKE 933,253: POKE 934,253: POKE 935,6
31045 POKE 936,15: POKE 937,29: POKE 938,36: POKE 939,0: POKE 940,221: POKE 941,6: POKE 942,9: POKE 943,240
31046 POKE 944,6: POKE 945,186: POKE 946,29: POKE 947,116: POKE 948,0: POKE 949,189: POKE 950,9: POKE 951,1
31047 POKE 952,176: POKE 953,60: POKE 954,1: POKE 955,209: POKE 956,32: POKE 957,137: POKE 958,246: POKE 959,28
31048 POKE 960,78: POKE 961,0: POKE 962,204: POKE 963,56: POKE 964,25: POKE 965,202: POKE 966,0: POKE 967,105
31049 POKE 968,124: POKE 969,0: POKE 970,32: POKE 971,223: POKE 972,240: POKE 973,32: POKE 974,137: POKE 975,246
31050 POKE 976,204: POKE 977,40: POKE 978,124: POKE 979,0: POKE 980,96: POKE 981,234
31051 INITCONTROL=3072
31052 CALL INITCONTROL:REM INITIALIZE MACHINE CODE FOR CONTROL CHARACTERS
31053 CALL -936
31054 PRINT "MACHINE CODES HAVE BEEN LOADED INTO AD-":PRINT "DRESSES 300 TO FFF WITH POKE STATEMENTS."
31055 PRINT :PRINT "SAVE MEMORY SPACE BY DELETING THEM.":PRINT
31056 PRINT "TO DO SO, ENTER THE COMMANDS BELOW.":PRINT
31057 VTAB 12:PRINT " DEL 31000,31099 ":PRINT :PRINT " RUN"
31058 VTAB 11
31059 END
31100 GOTO 32000
31500 REM
31505 REM *** DISPLAY ASCII TABLE
31510 REM
31530 FOR ARGUMENT=0 TO 255:PRINT "(";ARGUMENT;")=";:GOSUB 31570:PRINT "",:NEXT ARGUMENT
31550 END
31559 REM
31560 REM *** SIMULATE CHR$ FNCTN
31561 REM
31570 POKE 1,165: POKE 2,0: POKE 3,76: POKE 4,237: POKE 5,253: POKE 6,96: POKE 0,ARGUMENT:CALL 1:RETURN
31590 END
31599 REM
31601 REM
31602 REM *** DECHEX ***
31603 IF DEC=0 THEN INPUT "ENTER A BASE 10 NUMBER",DEC
31604 GOSUB 31611:REM DEC TO HEX
31605 PRINT HEX$
31606 END
31607 IF CONVSET=0 THEN GOSUB 31652:IF LEN(HEX$)=0 THEN INPUT "ENTER A HEX NUMBER",HEX$
31608 GOSUB 31630:REM HEX TO DEC
31609 PRINT DEC
31610 END
31611 REM *** CONVERT HEX ***
31612 REM
31613 IF NOT CONVSET THEN GOSUB 31651
31614 CARRY=0
31615 IF DEC>=0 THEN 31618
31616 CARRY=1
31617 DEC=DEC+32767+1
31618 INDEX=DEC/4096+1
31619 INDEX=INDEX+CARRY*8
31620 HEX$(1)=HEXCHR$(INDEX,INDEX)
31621 INDEX=(DEC MOD 4096)/256+1
31622 HEX$(2)=HEXCHR$(INDEX,INDEX)
31623 INDEX=(DEC MOD 256)/16+1
31624 HEX$(3)=HEXCHR$(INDEX,INDEX)
31625 INDEX=(DEC MOD 16)+1
31626 HEX$(4)=HEXCHR$(INDEX,INDEX)
31627 DEC=0
31628 RETURN
31629 REM
31630 REM *** CONVERT DEC ***
31631 REM
31632 IF NOT CONVSET THEN GOSUB 31651
31633 DEC=0
31634 EXP=0
31635 FOR HIGIT= LEN(HEX$) TO 1 STEP -1
31636 FOR INDEX= LEN(HEXCHR$) TO 0 STEP -1
31637 IF HEX$(HIGIT,HIGIT)#HEXCHR$(INDEX,INDEX) THEN NEXT INDEX
31638 IF INDEX=0 THEN NEXT HIGIT
31639 IF EXP>2 AND INDEX>8 THEN 31645
31640 DEC=DEC+((INDEX-1)*(16^EXP))
31641 EXP=EXP+1
31642 NEXT HIGIT
31643 HEX$=""
31644 RETURN
31645 INDEX=INDEX-8
31646 DEC=DEC+((INDEX-1)*(16^EXP))
31647 DEC=DEC-32767-1
31648 HEX$=""
31649 RETURN
31650 DEC=32767-2-DEC
31651 REM
31652 REM *** INITIALIZE CONV DATA
31653 REM
31654 DIM HEX$(8),HEXCHR$(16)
31655 HEXCHR$="0123456789ABCDEF"
31656 CONVSET=1
31657 RETURN
31700 REM GENERATE POKE STATS
31708 INPUT "ENTER STARTING ADDRESS IN MEMORY",STARTADR
31716 INPUT "ENTER LINE NUMBER",NUMBER
31720 FOR J=0 TO 5
31724 PRINT " ";NUMBER;" ";" POKE";STARTADR;","; PEEK (STARTADR);
31726 STARTADR=STARTADR+1
31728 FOR I=1 TO 7
31732 PRINT ":POKE ";STARTADR;","; PEEK (STARTADR);
31734 STARTADR=STARTADR+1
31736 NEXT I
31740 NUMBER=NUMBER+1
31742 PRINT " "
31744 NEXT J
31745 PRINT " GOTO 31720"
31746 VTAB 4
31748 END
32000 REM UTILITY SUBROUTINES
32002 RENUM=32068
32004 RENUMSOME=32086
32006 APPEND=32116
32010 MEM=32130
32012 HELP=32200
32014 PARTITION=32300
32020 BUILDCODE=31700
32022 DECHEX=31603
32024 HEXDEC=31607
32026 ASCII=31500
32066 GOTO HELP
32068 REM RENUMBER ENTIRE SOURCE
32070 INPUT "ENTER THE STARTING LINE NUMBER",sNUMBER
32072 INPUT "ENTER THE INCREMENT",INCREMENT
32074 POKE 2,SNUMBER MOD 256
32076 POKE 3,SNUMBER/256
32078 POKE 4,INCREMENT MOD 256
32080 POKE 5,INCREMENT/256
32082 CALL 768
32084 END
32086 REM RENUMSOME RENUMBER ALL LINES WITHIN A RANGE
32088 INPUT "ENTER THE STARTING LINE NUMBER",SNUMBER
32090 INPUT "ENTER THE INCREMENT",INCREMENT
32092 INPUT "ENTER THE FIRST LINE TO BE RESEQUENCED",FIRSTLIN
32094 INPUT "ENTER THE LAST LINE TO BE RESEQUENCED",LASTLIN
32096 POKE 2,SNUMBER MOD 256
32098 POKE 3,SNUMBER/256
32100 POKE 4,INCREMENT MOD 256
32102 POKE 5,INCREMENT/256
32104 POKE 6,FIRSTLIN MOD 256
32106 POKE 7,FIRSTLIN/256
32108 POKE 8,LASTLIN MOD 256
32110 POKE 9,LASTLIN/256
32112 CALL 776
32114 END
32116 REM APPEND A BASIC PROGRAM
32118 CALL 956
32120 END
32122 REM RESTORE A PROGRAM THAT COULD NOT BE APPENDED FROM LACK OF SPACE
32124 CALL 973
32126 END
32128 END
32130 CALL -936:GOSUB 32180
32131 PRINT "MEMORY STATISTICS":PRINT "---------------------------------------"
32132 PRINT "FREE MEMORY=";PP-CM
32134 PRINT "BASIC INSTRUCTIONS OCCUPY ";HM-PP;" BYTES"
32136 PRINT "THE VARIABLE TABLE OCCUPIES ";CM-LM;" BYTES"
32138 PRINT "LOMEM=";LM
32139 PRINT "HIMEM=";HM
32170 END
32180 LM= PEEK (74)+ PEEK (75)*256
32182 HM= PEEK (76)+ PEEK (77)*256
32184 CM= PEEK (204)+ PEEK (205)*256
32186 PP= PEEK (202)+ PEEK (203)*256
32188 RETURN
32190 END
32200 REM *** PRINT MENU ***
32201 CALL (-936)
32202 PRINT :PRINT "UTILITY ROUTINES:"
32204 PRINT "EXECUTE BY ENTERING:GOTO XXXXX"
32206 PRINT "--------------------------------------"
32208 PRINT "RENUM:RENUMBER ENTIRE WORKSPACE"
32210 PRINT "RENUMSOME:RENUMBER PART OF WORKSPACE"
32212 PRINT "APPEND:MERGE A PROGRAM INTO WORKSPACE"
32216 PRINT "MEM:NO. OF BYTES LEFT AND OTHER NUMBERS"
32218 PRINT "PARTITION:SET SCROLLING WINDOW"
32220 PRINT "BUILDCODE:GENERATE POKE STATEMENTS THAT":PRINT " REPRODUCE CURRENT MEMORY"
32221 PRINT "HELP:PRINT THIS LIST"
32222 PRINT "DECHEX:TRANSLATE BASE 10 NUMBER TO HEX"
32224 PRINT "HEXDEC:TRANSLATE HEX NUMBER TO BASE 10"
32226 PRINT "ASCII:PRINT APPLEII ASCII CHARACTER SET"
32248 VTAB 23
32249 INPUT "MORE FOLLOWS. PRESS RETURN.",A$:CALL -936
32250 PRINT :PRINT "THESE CHARACTERS ARE ACTIVATED:":PRINT "--------------------------------"
32252 PRINT "CONTROL R:DISPLAY PAGE 2"
32254 PRINT "CONTROL S:SAVE THIS PAGE IN PAGE 2"
32256 PRINT "CONTROL T:RESTORE PAGE 1"
32258 PRINT "CONTROL Y:RESET R,S,T (IN MONITOR)"
32260 PRINT "ANY KEY:STOP ANY PRINTING OR LISTING"
32299 END
32300 REM RESET PRINT WINDOW
32302 POKE 34, PEEK (37): POKE 35, PEEK (37)
32304 INPUT "ENTER LEFT EDGE (0-39)",LEFTEDGE
32306 INPUT "ENTER WIDTH (1-40)",WIDTH
32308 INPUT "ENTER TOP (0-23)",TOP
32310 INPUT "ENTER BOTTOM (0-23)",BOTTM
32312 POKE 32,LEFTEDGE
32314 POKE 33,WIDTH
32316 POKE 34,TOP
32318 POKE 35,BOTTM
32320 CALL -936
32399 END
32767 GOTO 32000
Text found in RIC_Programs_63.dsk/TYPE.int:
1 GOSUB 30:DELAY=25:SOUND=1
2 GOSUB 700
10 END
30 REM * AUTOMATIC LOMEM: *
40 REM AUTO-LOMEM: MUST BE BEFORE ANY VARIABLES ARE USED
50 POKE 74,3072 MOD 256: POKE 75,3072/256: POKE 204, PEEK (74): POKE 205, PEEK (75)
60 REM 74,75 = LOMEM POINTERS, 204,205 = END OF VARIABLE TABLE. LINE IS SAME AS MANUAL LOMEM:
70 RETURN
300 REM * WHITE-PRINT ROUTINE *
310 REM * PAGE 2 MEMORY MOVE *
320 REM MOVE PAGE 1 TEXT (AND USER) TO PAGE 2
.
330 SOURCESTART=1024:SOURCEFINISH=2047:DESTINACION=2048:REM PAGE 1 TO PAGE 2 MOVE ADDRESSES
340 POKE 66,DESTINACION MOD 256: POKE 67,DESTINACION/256
350 POKE 60,SOURCESTART MOD 256: POKE 61,SOURCESTART/256
360 POKE 62,SOURCEFINISH MOD 256: POKE 63,SOURCEFINISH/256
370 CALL -468
380 REM CALLS (WITH THE EXCEPTION OF "CALL -936") SHOULD ALWAYS BE THE LAST STATEMENT ON A LINE IN INTEGER OR APPLESOFT.
390 POKE -16299,0:RETURN :REM TURN-ON PAGE 2 TEXT AND RETURN
400 REM THIS ROUTINE IS EQUIVALENT TO TYPING IN THE MONITOR:
*800<400.7FFM .
410 REM AND MAY BE USED FOR MOVING ANY BLOCK OF MEMORY TO ANY POSITION IN MEMORY .
420 REM *** END OF MEMORY MOVE ***
.
500 REM * TYPEWRITER PRINT-OUT *
510 REM *** MISC. SUBROUTINES *** .
520 VTAB 24: POKE 50,63:PRINT " ";: POKE 50,255:RETURN :REM PRINT A SINGLE LINE OF WHITE AT BOTTOM
530 REM *** INITIALIZE SCREEN ***
540 IF SS=0 THEN DIM S$(255),WRD$(255):SS=1:REM DIMENSION S(ENTENCE)$ AND W(O)RD$ IF NOT YET DONE (REASON FOR SS SWITCH)
550 CALL -936:FOR LINE=17 TO 24:GOSUB 310:GOSUB 520: POKE -16300,0:FOR TIME=1 TO 100:REM POKE-16300 RETURNS USER TO PAGE 1
560 NEXT TIME:NEXT LINE:VTAB 20:TAB 4: POKE -16300,0:RETURN :REM INIT AND SIMULATE PAPER ROLLING INTO TYPEWRITER
570 PRINT :GOSUB 310:GOSUB 520:VTAB 20:TAB 4: POKE -16300,0:RETURN :REM SCROLL 1 LINE OF TEXT AND DRAW NEW BOTTOM LINE
580 S= PEEK (-16336)+ PEEK (-16336)+ PEEK (-16336)+ PEEK (-16336):RETURN :REM *TYPEWR. SOUND*
600 REM *TYPEWR. MAIN LOOP*
.
610 FOR CURRENTPOS=1 TO LEN(S$):REM CURRENTPOS WILL MARK BEGINNING OF EACH SUCCESSIVE WORD IN S(ENTENCE)$
620 FOR J=CURRENTPOS TO LEN(S$):IF S$(J,J)#" " THEN NEXT J:REM SET J = TO END OF NEXT WORD
630 WRD$(1)=S$(CURRENTPOS,J-1):CURRENTPOS=J:REM PICK NEXT WORD FROM S(ENTENCE)$
640 IF LEN(WRD$)=0 THEN 670:REM IF 2 SPACES IN ROW, LEN =0 SO SKIP
650 IF PEEK (36)+ LEN(WRD$)>37 THEN GOSUB 570:REM IF TAB + WORD MEANS WORD WON'T FIT THEN SCROLL
660 FOR K=1 TO LEN(WRD$): POKE 50,63:PRINT WRD$(K,K);: POKE 50,255:IF SOUND THEN GOSUB 580:FOR TIME=0 TO DELAY/4+ RND (DELAY+1):NEXT TIME:NEXT K
670 POKE 50,63:PRINT " ";: POKE 50,255:REM "POKE 50,63" IS NOT LEFT ON SO USER DOEN'T CNRTL C AND END UP IN REVERS TEXT
680 REM ABOVE WILL PRINT-OUT WORD, LETTER BY LETTER WITH TYPEWRITER TIMING (SET BY VALUE OF "DELAY") AND SOUND (SET BY "SOUND=1)
690 NEXT CURRENTPOS:RETURN :REM .
700 GOSUB 530:S$=" INSTRUCTIONS":GOSUB 600:GOSUB 570:GOSUB 570
705 S$=" SEE LINE 1 FOR INITIALIZING REQUIRED VARIABLES. THE GOSUB 30 IS A ROUTINE TO SET":GOSUB 600
710 S$="SET LOMEM AND I'M NOT SURE IF IT IS REALLY NEEDED.":GOSUB 600
712 S$=" DELAY= IS HESITATION ROUTINE FOR PUTTING LETTERS ON THE SCREEN (SEE LINE 660). SOUND=1 CALLS ":GOSUB 600
714 S$="THE TYPEWRITER SOUND. IF SOUND =0 THEN NO SOUND IS PRODUCED. ":GOSUB 600:GOSUB 570:GOSUB 570
715 S$=" THE SUBROUTINE AT LINE 530 SCROLLS UP THE PAPER FROM THE BOTTOM OF THE SCREEN ":GOSUB 600
717 S$="AND IS ONLY USED ONCE AT THE BEGINNING. S$ IS WHAT IS WORKED ON EACH TIME ":GOSUB 600
720 S$="AND THE SUBROUTINE BEGINNING AT LINE 600 IS WHAT PARSES THE CONTENTS OF S$. ":GOSUB 600
725 GOSUB 570:GOSUB 570:S$=" THE GOSUB 570 JUMPS TO THE NEXT LINE AND TWO GOSUB 570 ACT LIKE ":GOSUB 600
726 S$="A PARAGRAPH STEP. ":GOSUB 600:GOSUB 570:GOSUB 570
730 S$=" THE LINES ABOVE 700 CAN ALL BE DELETED WHEN YOU UNDERSTAND THIS MUCH ":GOSUB 600
732 S$="AND REPLACED WITH YOUR OWN WORK. ":GOSUB 600
734 GOSUB 570:GOSUB 570:S$=" LINE 2 CAN DIRECT YOU ANYWHERE YOU CHOOSE TO PLACE THE S$. ":GOSUB 600
750 GOSUB 570:GOSUB 570:S$=" BEFORE DELETING THE LINES ABOVE 700 LOOK AT THEM TO SEE ":GOSUB 600
755 S$="THAT ALL THEY ARE MADE UP OF IS A SERIES OF WORDS PLACED IN S$'S ONE AFTER ANOTHER. ":GOSUB 600
760 FOR D=1 TO 5:GOSUB 570:NEXT D:FOR D=1 TO 2000:NEXT D:TEXT :CALL -936
770 REM THIS ROUTINE WAS EXCERPTED FROM THE INF. NUMBER OF MONKEYS AND SET UP FOR YOUR USE BY WM.J.KERR SR
900 PRINT "RUN HELLO2"
- Addeddate
- 2014-11-11 02:04:53
- Emulator
- apple2e
- Emulator_ext
- dsk
- Identifier
- riag_011_RIC_Programs_63
- Scanner
- Internet Archive Python library 0.7.5
comment
Reviews
97 Views
DOWNLOAD OPTIONS
IN COLLECTIONS
Uploaded by Jason Scott on