home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
hard.hdv
/
AEPC:DRIVERS
/
TRANSPORT.CHIEF.bas
< prev
Wrap
BASIC Source File
|
2020-08-13
|
6KB
|
119 lines
0 REM
1 REM Transporter Chief 1.1
2 REM Public Domain Software by Bruce A. Mah
3 REM
10 D$ = CHR$(4)
20 AP$ = "AEPC.DISKS"
100 PRINT D$;"pr#3"
110 PRINT : VTAB 10
120 PRINT SPC( 30);"Transporter Chief 1.1"
130 PRINT : PRINT SPC( 18);"A Patch Utility for the Applied Engineering"
140 PRINT SPC( 33);"PC Transporter"
150 PRINT : PRINT SPC( 21);"Public Domain Software by Bruce A. Mah"
160 PRINT : PRINT : PRINT : PRINT SPC( 10);"NOTE: Please read the documentation file before continuing!"
170 PRINT : PRINT SPC( 17);"Press RETURN to continue or ESCAPE to exit: ";
180 GET A$
190 IF A$ = CHR$(27) THEN HOME : PRINT D$;"bye"
200 IF A$ = CHR$(13) THEN 1000
210 GOTO 180
500 HOME : PRINT : PRINT SPC( 30);"Transporter Chief 1.1": RETURN
1000 GOSUB 500
1010 VTAB 5: INPUT "Please enter the FULL pathname of your system file: ";AP$
1020 PRINT D$;"verify";AP$
1030 PRINT D$;"bload";AP$;",a$300,tsys,b$0,l32"
1040 IF PEEK(784) = 10 AND PEEK(785) = 65 AND PEEK(786) = 69 AND PEEK(787) = 80 THEN 2000
1050 PRINT : PRINT AP$;" is not a PC Transporter preboot-patched system file.": PRINT "Press any key to continue: ";: GET A$
1060 GOTO 1000
2000 GOSUB 500
2010 VTAB 5: PRINT "Checking out ";AP$;"...please stand by..."
2020 PRINT D$;"bload";AP$;",a$300,tsys,b$88f,l4"
2030 P1 = -1: IF PEEK(771) = 234 THEN P1 = 1
2040 IF PEEK(771) = 232 THEN P1 = 0
2050 GOSUB 2900
2060 PRINT D$;"bload";AP$;",a$300,tsys,b$8a1,l4"
2070 GOSUB 2900
2080 PRINT D$;"bload";AP$;",a$300,tsys,b$8c5,l4"
2090 GOSUB 2900
2100 PRINT D$;"bload";AP$;",a$300,tsys,b$8d5,l4"
2110 GOSUB 2900
2200 PRINT D$;"bload";AP$;",a$300,tsys,b$141,l1"
2210 P2 = -1: IF PEEK(768) = 43 THEN P2 = 0
2220 IF PEEK(768) = 34 THEN P2 = 1
2230 IF P2 = -1 THEN 2270
2240 PRINT D$;"bload";AP$;",a$300,tsys,b$123,l5"
2250 IF P2 = 0 AND PEEK(768) = 35 AND PEEK(771) = 169 AND PEEK(772) = 206 THEN 2280
2260 IF P2 = 1 AND PEEK(768) = 34 AND PEEK(771) = 165 AND PEEK(772) = 251 THEN 2280
2270 P2 = -1
2280 PRINT D$;"bload";AP$;",a$300,tsys,b$139,l1"
2285 IF P2 = 0 AND PEEK(768) = 208 THEN 2300
2290 IF P2 = 1 AND PEEK(768) = 16 THEN 2300
2295 P2 = -1
2300 PRINT D$;"bload";AP$;",a$300,tsys,b$bc1,l16"
2310 V$ = "": FOR I = 1 TO PEEK(768) -240:V$ = V$ + CHR$( PEEK(768 +I)): NEXT I
2880 PRINT D$;"unlock";AP$
2890 GOTO 3000
2900 IF P1 = -1 THEN RETURN
2910 IF P1 = 0 THEN 2940
2920 IF PEEK(768) = 157 AND PEEK(769) = 2 AND PEEK(770) = 204 AND PEEK(771) = 234 THEN RETURN
2930 P1 = -1: RETURN
2940 IF PEEK(768) = 157 AND PEEK(769) = 2 AND PEEK(770) = 204 AND PEEK(771) = 232 THEN RETURN
2950 P1 = -1: RETURN
3000 GOSUB 500
3010 VTAB 5
3020 PRINT " [A] Disable PC Transporter disk drives......................";:X = P1: GOSUB 3900
3030 PRINT : PRINT " [B] Keep PC Transporter RAM disk contents on reboot.........";:X = P2: GOSUB 3900
3040 PRINT : PRINT " [C] PC Transporter RAM disk volume name.....................";V$
3050 PRINT : PRINT " [P] ProDOS BYE"
3060 PRINT " [Q] Quit to Basic"
3070 VTAB 20: PRINT "Please enter option: ";: GET A$
3080 IF A$ = "Q" OR A$ = "q" THEN HOME : END
3090 IF A$ = "P" OR A$ = "p" THEN HOME : PRINT D$;"bye"
3100 IF A$ = "A" OR A$ = "a" THEN GOSUB 4000: GOTO 3000
3110 IF A$ = "B" OR A$ = "b" THEN GOSUB 4100: GOTO 3000
3120 IF A$ = "C" OR A$ = "c" THEN GOSUB 4200: GOTO 3000
3130 PRINT CHR$(7): GOTO 3000
3700 PRINT A$: PRINT : PRINT "Unknown code in patch area...cannot apply this patch.": PRINT "Press any key to continue: ";: GET A$: RETURN
3800 PRINT A$: PRINT : PRINT "Working...": RETURN
3850 PRINT : PRINT "Patch successfully completed.": PRINT "Press any key to continue: ";: GET A$: RETURN
3860 PRINT : PRINT "Patch successfully removed.": PRINT "Press any key to continue: ";: GET A$: RETURN
3900 IF X = 0 THEN PRINT "Normal": RETURN
3910 IF X = 1 THEN PRINT "Installed": RETURN
3920 PRINT "Unknown": RETURN
4000 IF P1 = -1 THEN GOSUB 3700: RETURN
4010 IF P1 = 0 THEN 4040
4020 POKE 768,232
4030 GOTO 4050
4040 POKE 768,234
4050 PRINT D$;"bsave";AP$;",a$300,tsys,b$892,l1"
4060 PRINT D$;"bsave";AP$;",a$300,tsys,b$8a4,l1"
4065 PRINT D$;"bsave";AP$;",a$300,tsys,b$8c8,l1"
4070 PRINT D$;"bsave";AP$;",a$300,tsys,b$8d8,l1"
4080 IF P1 = 0 THEN GOSUB 3850:P1 = 1: RETURN
4090 GOSUB 3860:P1 = 0: RETURN
4100 IF P2 = -1 THEN GOSUB 3700: RETURN
4110 IF P2 = 0 THEN POKE 768,34: GOTO 4130
4120 POKE 768,43
4130 PRINT D$;"bsave";AP$;",a$300,tsys,b$141,l1"
4140 IF P2 = 0 THEN POKE 768,34: POKE 771,165: POKE 772,251: GOTO 4160
4150 POKE 768,35: POKE 771,169: POKE 772,206
4160 PRINT D$;"bsave";AP$;",a$300,tsys,b$123,l1"
4170 PRINT D$;"bsave";AP$;",a$303,tsys,b$126,l2"
4171 IF P2 = 0 THEN POKE 768,16: GOTO 4173
4172 POKE 768,208
4173 PRINT D$;"bsave";AP$;",a$300,tsys,b$139,l1"
4180 IF P2 = 0 THEN GOSUB 3850:P2 = 1: RETURN
4190 GOSUB 3860:P2 = 0: RETURN
4200 GOSUB 500: VTAB 5: INPUT "Enter new PC Transporter RAM volume name: ";V1$
4210 IF V1$ = "" THEN RETURN
4220 V2$ = ""
4230 FOR I = 1 TO LEN(V1$):X = ASC( MID$ (V1$,I,1))
4240 IF (X >47 AND X <58) OR (X >64 AND X <91) OR (X = 46) THEN POKE 768 +I,X:V2$ = V2$ + CHR$(X): GOTO 4270
4250 IF (X >96 AND X <123) THEN POKE 768 +I,X -32:V2$ = V2$ + CHR$(X -32): GOTO 4270
4260 GOTO 4330
4270 NEXT I
4280 IF PEEK(768) <65 THEN 4330
4290 POKE 768, LEN(V1$) +240
4300 PRINT D$;"bsave";AP$;",a$300,tsys,b$bc1,l16"
4310 V$ = V2$
4320 RETURN
4330 PRINT : PRINT "Not a valid ProDOS volume name.": PRINT "Press any key to continue:";: GET A$: RETURN