mirror of
https://github.com/Michaelangel007/apple2_fantavision_reloaded.git
synced 2024-06-14 01:29:32 +00:00
Indent Applesoft BASCI
This commit is contained in:
parent
713c1afd65
commit
55997172ef
172
README.md
172
README.md
|
@ -2613,93 +2613,93 @@ TODO: FIXME
|
|||
13. `LIST`
|
||||
|
||||
```Basic
|
||||
4864 ONERR GOTO 9000
|
||||
1 REM Fantavision (C) 1985 by Scott Anderson - 9/26/85
|
||||
3 HIMEM: 2 * 4096
|
||||
5 POKE 1012,0
|
||||
9 HOME: VTAB 23:HTAB 4:PRINT "PRESS THE SPACE BAR TO CHANGE THE":
|
||||
4864 ONERR GOTO 9000
|
||||
1 REM Fantavision (C) 1985 by Scott Anderson - 9/26/85
|
||||
3 HIMEM: 2 * 4096
|
||||
5 POKE 1012,0
|
||||
9 HOME: VTAB 23:HTAB 4:PRINT "PRESS THE SPACE BAR TO CHANGE THE":
|
||||
HTAB 3:PRINT "DRAWING TOOL OR TO MAKE A SHOW DISK.";
|
||||
10 GOTO 5000
|
||||
100 HTAB 11-2*(I>4): PRINT LEF$( I$(I),1)" - "I$(I):RETURN
|
||||
150 HTAB 2:FOR I = 1 TO 38: PRINT " ";:NEXT: RETURN
|
||||
180 HTAB 10 - (LEN( I$( ID ) ) ) / 2: PRINT "THE DRAWING TOOL IS A "I$(ID)".":RETURN
|
||||
400 REM Get Input Device
|
||||
410 TEXT: HOME: HTAB 9:PRINT "= [ FANTAVISION MENU ] =":PRINT:GOSUB 150
|
||||
430 FOR I = 1 to NI: VTAB 4 + 2*I + 2*(I>4):GOSUB 100:NEXT
|
||||
440 VTAB 22: CALL EB: PRINT: HTAB 13:PRINT "YOU CHOICE:";: GET A$: A=ASC(A$): A=A-32*(A>96):A$=CHR$(A):PRINT A$;
|
||||
445 I = NI
|
||||
450 IF A <> ASC( I$(I) ) THEN I=I-1:ON I > 0 GOTO 450:PRINT CHR$(7);:GOTO 440
|
||||
460 ON I > 4 GOTO 490:ID = I: D = ND
|
||||
470 IF DB%(D,0) <> ID THEN D=D-1:ON D > 0 GOTO 470
|
||||
480 IF D THEN GOSUB 500:ON SL > 0 GOTO 490:VTAB 23:HTAB 5:PRINT "WHAT SLOT IS THE " I$(ID)" IN? :";: GET A$:SL = VAL( A$ ):PRINT SL;:ON NOT SL GOTO 440
|
||||
490 RETURN
|
||||
500 B=1:SL=7
|
||||
510 IF PEEK(12*4096 + SL*256 + DB%(0,B)) = DB%(D,B) THEN B=B+1: ON B < 5 GOTO 510:GOTO 580
|
||||
520 B = 1: SL = SL - 1:ON SL > 0 GOTO 510
|
||||
580 RETURN
|
||||
600 L = DS*16 + 49292:X = PEEK( L - 3 ): X = PEEK( L - 1 ):REM Dr2 on
|
||||
610 X = PEEK( L ): DD = 2:FOR I = 1 to 20: IF PEEK(L) = X THEN NEXT I:DD = 1
|
||||
630 X = PEEK( L - 4 ):RETURN
|
||||
800 REM
|
||||
890 RETURN
|
||||
900 REM
|
||||
990 RETURN
|
||||
5000 REM Start of program
|
||||
5020 LS = 4*256 - 2: IL = LS + 1
|
||||
5040 EB = 64578
|
||||
5050 Z = 43008: IO = 48249: BF = 48896: CA = 776: CP = 789
|
||||
5060 DS = PEEK( IO + 1 ) / 16
|
||||
5070 GOSUB 600
|
||||
5100 DATA 6,MOUSE,GRAPICS TABLET,KOALA PAD,JOY STICK,CREATE A SHOW DISK,QUIT THIS MENU
|
||||
5110 READ NI:FOR I = 1 TO NI: READ I$(I):NEXT
|
||||
5200 DATA 2
|
||||
5201 DATA 0, 5, 7, 11, 12
|
||||
5210 DATA 1, 56, 24, 1, 32
|
||||
5211 DATA 2,120,255,200,160
|
||||
5230 READ ND: FOR D = 0 TO ND: FOR B = 0 TO 4: READ DB%(D,B):NEXT:NEXT
|
||||
5300 D = ND
|
||||
5310 GOSUB 500: IF SL=0 THEN D=D-1:ON D > 0 GOTO 5310
|
||||
5320 IF D THEN ID = DB%(D,0)
|
||||
5340 ID = ID+4 * NOT ID
|
||||
5600 VTAB 22:GOSUB 180
|
||||
6000 A = PEEK( 49152 ): IF A > 127 THEN 6800
|
||||
6010 W = W + 1: IF W < 150 GOTO 6000: GOTO 6900
|
||||
6800 GOSUB 400:ON I = 5 GOTO 7000
|
||||
6820 IF QF THEN 8000
|
||||
6840 HOME: VTAB 15: GOSUB 180
|
||||
6900 ID = ID - (ID = 4)
|
||||
6920 POKE LS-1,255 * (DD=2): POKE LS,SL:POKE IL,ID-1
|
||||
6940 CALL 768
|
||||
7000 :TEXT:HOME:VTAB 3:HTAB 9:PRINT "=[ CREATE A SHOW DISK ]="
|
||||
7010 VTAB 22:CALL EB: PRINT: PRINT " :::::::: PRESS 'ESC' TO EXIT ::::::::"
|
||||
7020 VTAB 6:HTAB 3:PRINT "TO CREATE A SHOW DISK, THIS PROGRAM": HTAB 3:PRINT "MUST COPY SOME FILES FROM THE MOVIE":HTAB 3:PRINT "MATINEED ON SIDE II OF FANTAVISION."
|
||||
7030 GOSUB 150
|
||||
7050 ON DD = 1 GOTO 7100:VTAB 13:HTAB 3:PRINT "INSERT THE MATINEE IN DRIVE 1,"
|
||||
7060 HTAB 7:PRINT "AND A BLANK DISK IN DRIVE 2."
|
||||
7070 PRINT:HTAB 9:PRINT "PRESS RETURN WHEN READY:";:GET A$:ON A$ = CHR$(27) GOTO 7900:GOTO 7200
|
||||
7100 VTAB 14:HTAB 8:PRINT "INSERT BLANK SHOW DISKETTE":HTAB 7:PRINT "IN DRIVE 1 AND PRESS RETURN:";:GET A$
|
||||
7120 ON A$ = CHR$(27) GOTO 7900
|
||||
7200 POKE ZP + 2, 2:POKE ZP + 5,96 + 128*(DD=2):POKE 0,0:POKE IO+2,DD:CALL CA:IF PEEK(0) THEN 7700
|
||||
7220 B = PEEK( BF + 4 ):ON B < 241 or PEEK( BF + 2 ) <> 3 or PEEEK( BF + 36 ) <> 13 GOTO 7700
|
||||
7230 B = B - 240: N$ = "": FOR I = 1 TO B: N$ = N$ + CHR$( PEEK( BF + 4 + I ) ):NEXT
|
||||
7240 IF N$ = "FANTAVISION" THEN POKE 0, 144:GOTO 9900
|
||||
7250 VTAB 18:HTAB 13 - B / 2: PRINT "DESTROY "N$"? (Y/N):";
|
||||
7300 GET A$: ON A$ <> "Y" AND A$ <> "y" GOTO 7900:VTAB 18:HTAB 1:PRINT SPC(40)
|
||||
7700 QF + 1: POKE 0,0: CALL CP: IF PEEK(0) THEN 9900
|
||||
7900 GOTO 6800
|
||||
8000 HOME: VTAB 10, HTAB 9:PRINT "INSERT THE DESIRED DISK,":PRINT:HTAB 12:PRINT "THEN PRESS RETURN:";:GET A$
|
||||
8010 PRINT: CALL 12*4096 + DS*256
|
||||
9000 Error trap
|
||||
9010 RUN
|
||||
9900 REM Dos Errors
|
||||
9910 ER = PEEK( 0 ):POKE 0,0:VTAB 12:CALL EB:PRINT CHR$(7):FLASH
|
||||
9920 IF ER=39 THEN HTAB 12:PRINT "UNABLE TO FORMAT.":GOTO 9990
|
||||
9930 IF ER=43 OR ER=16 THEN HTAB 13:PRINT "WRITE PROTECTED.":GOTO 9990
|
||||
9940 IF ER=51 THEN HTAB 13:PRINT "DRIVE TOO SLOW.":GOTO 9990
|
||||
9950 IF ER=52 THEN HTAB 13:PRINT "DRIVE TOO FAST.":GOTO 9990
|
||||
9970 IF ER=144 THEN HTAB 8:PRINT "CAN'T DESTROY FANTAVISION!":GOTO 9990
|
||||
9980 HTAB 15:PRINT "DRIVE ERROR."
|
||||
9990 NORMAL:HTAB 16:HTAB 9:PRINT "PRESS ANY KEY FOR MENU:";:GET A$:GOTO 5400
|
||||
10 GOTO 5000
|
||||
100 HTAB 11-2*(I>4): PRINT LEF$( I$(I),1)" - "I$(I):RETURN
|
||||
150 HTAB 2:FOR I = 1 TO 38: PRINT " ";:NEXT: RETURN
|
||||
180 HTAB 10 - (LEN( I$( ID ) ) ) / 2: PRINT "THE DRAWING TOOL IS A "I$(ID)".":RETURN
|
||||
400 REM Get Input Device
|
||||
410 TEXT: HOME: HTAB 9:PRINT "= [ FANTAVISION MENU ] =":PRINT:GOSUB 150
|
||||
430 FOR I = 1 to NI: VTAB 4 + 2*I + 2*(I>4):GOSUB 100:NEXT
|
||||
440 VTAB 22: CALL EB: PRINT: HTAB 13:PRINT "YOU CHOICE:";: GET A$: A=ASC(A$): A=A-32*(A>96):A$=CHR$(A):PRINT A$;
|
||||
445 I = NI
|
||||
450 IF A <> ASC( I$(I) ) THEN I=I-1:ON I > 0 GOTO 450:PRINT CHR$(7);:GOTO 440
|
||||
460 ON I > 4 GOTO 490:ID = I: D = ND
|
||||
470 IF DB%(D,0) <> ID THEN D=D-1:ON D > 0 GOTO 470
|
||||
480 IF D THEN GOSUB 500:ON SL > 0 GOTO 490:VTAB 23:HTAB 5:PRINT "WHAT SLOT IS THE " I$(ID)" IN? :";: GET A$:SL = VAL( A$ ):PRINT SL;:ON NOT SL GOTO 440
|
||||
490 RETURN
|
||||
500 B=1:SL=7
|
||||
510 IF PEEK(12*4096 + SL*256 + DB%(0,B)) = DB%(D,B) THEN B=B+1: ON B < 5 GOTO 510:GOTO 580
|
||||
520 B = 1: SL = SL - 1:ON SL > 0 GOTO 510
|
||||
580 RETURN
|
||||
600 L = DS*16 + 49292:X = PEEK( L - 3 ): X = PEEK( L - 1 ):REM Dr2 on
|
||||
610 X = PEEK( L ): DD = 2:FOR I = 1 to 20: IF PEEK(L) = X THEN NEXT I:DD = 1
|
||||
630 X = PEEK( L - 4 ):RETURN
|
||||
800 REM
|
||||
890 RETURN
|
||||
900 REM
|
||||
990 RETURN
|
||||
5000 REM Start of program
|
||||
5020 LS = 4*256 - 2: IL = LS + 1
|
||||
5040 EB = 64578
|
||||
5050 Z = 43008: IO = 48249: BF = 48896: CA = 776: CP = 789
|
||||
5060 DS = PEEK( IO + 1 ) / 16
|
||||
5070 GOSUB 600
|
||||
5100 DATA 6,MOUSE,GRAPICS TABLET,KOALA PAD,JOY STICK,CREATE A SHOW DISK,QUIT THIS MENU
|
||||
5110 READ NI:FOR I = 1 TO NI: READ I$(I):NEXT
|
||||
5200 DATA 2
|
||||
5201 DATA 0, 5, 7, 11, 12
|
||||
5210 DATA 1, 56, 24, 1, 32
|
||||
5211 DATA 2,120,255,200,160
|
||||
5230 READ ND: FOR D = 0 TO ND: FOR B = 0 TO 4: READ DB%(D,B):NEXT:NEXT
|
||||
5300 D = ND
|
||||
5310 GOSUB 500: IF SL=0 THEN D=D-1:ON D > 0 GOTO 5310
|
||||
5320 IF D THEN ID = DB%(D,0)
|
||||
5340 ID = ID+4 * NOT ID
|
||||
5600 VTAB 22:GOSUB 180
|
||||
6000 A = PEEK( 49152 ): IF A > 127 THEN 6800
|
||||
6010 W = W + 1: IF W < 150 GOTO 6000: GOTO 6900
|
||||
6800 GOSUB 400:ON I = 5 GOTO 7000
|
||||
6820 IF QF THEN 8000
|
||||
6840 HOME: VTAB 15: GOSUB 180
|
||||
6900 ID = ID - (ID = 4)
|
||||
6920 POKE LS-1,255 * (DD=2): POKE LS,SL:POKE IL,ID-1
|
||||
6940 CALL 768
|
||||
7000 :TEXT:HOME:VTAB 3:HTAB 9:PRINT "=[ CREATE A SHOW DISK ]="
|
||||
7010 VTAB 22:CALL EB: PRINT: PRINT " :::::::: PRESS 'ESC' TO EXIT ::::::::"
|
||||
7020 VTAB 6:HTAB 3:PRINT "TO CREATE A SHOW DISK, THIS PROGRAM": HTAB 3:PRINT "MUST COPY SOME FILES FROM THE MOVIE":HTAB 3:PRINT "MATINEED ON SIDE II OF FANTAVISION."
|
||||
7030 GOSUB 150
|
||||
7050 ON DD = 1 GOTO 7100:VTAB 13:HTAB 3:PRINT "INSERT THE MATINEE IN DRIVE 1,"
|
||||
7060 HTAB 7:PRINT "AND A BLANK DISK IN DRIVE 2."
|
||||
7070 PRINT:HTAB 9:PRINT "PRESS RETURN WHEN READY:";:GET A$:ON A$ = CHR$(27) GOTO 7900:GOTO 7200
|
||||
7100 VTAB 14:HTAB 8:PRINT "INSERT BLANK SHOW DISKETTE":HTAB 7:PRINT "IN DRIVE 1 AND PRESS RETURN:";:GET A$
|
||||
7120 ON A$ = CHR$(27) GOTO 7900
|
||||
7200 POKE ZP + 2, 2:POKE ZP + 5,96 + 128*(DD=2):POKE 0,0:POKE IO+2,DD:CALL CA:IF PEEK(0) THEN 7700
|
||||
7220 B = PEEK( BF + 4 ):ON B < 241 or PEEK( BF + 2 ) <> 3 or PEEEK( BF + 36 ) <> 13 GOTO 7700
|
||||
7230 B = B - 240: N$ = "": FOR I = 1 TO B: N$ = N$ + CHR$( PEEK( BF + 4 + I ) ):NEXT
|
||||
7240 IF N$ = "FANTAVISION" THEN POKE 0, 144:GOTO 9900
|
||||
7250 VTAB 18:HTAB 13 - B / 2: PRINT "DESTROY "N$"? (Y/N):";
|
||||
7300 GET A$: ON A$ <> "Y" AND A$ <> "y" GOTO 7900:VTAB 18:HTAB 1:PRINT SPC(40)
|
||||
7700 QF + 1: POKE 0,0: CALL CP: IF PEEK(0) THEN 9900
|
||||
7900 GOTO 6800
|
||||
8000 HOME: VTAB 10, HTAB 9:PRINT "INSERT THE DESIRED DISK,":PRINT:HTAB 12:PRINT "THEN PRESS RETURN:";:GET A$
|
||||
8010 PRINT: CALL 12*4096 + DS*256
|
||||
9000 Error trap
|
||||
9010 RUN
|
||||
9900 REM Dos Errors
|
||||
9910 ER = PEEK( 0 ):POKE 0,0:VTAB 12:CALL EB:PRINT CHR$(7):FLASH
|
||||
9920 IF ER=39 THEN HTAB 12:PRINT "UNABLE TO FORMAT.":GOTO 9990
|
||||
9930 IF ER=43 OR ER=16 THEN HTAB 13:PRINT "WRITE PROTECTED.":GOTO 9990
|
||||
9940 IF ER=51 THEN HTAB 13:PRINT "DRIVE TOO SLOW.":GOTO 9990
|
||||
9950 IF ER=52 THEN HTAB 13:PRINT "DRIVE TOO FAST.":GOTO 9990
|
||||
9970 IF ER=144 THEN HTAB 8:PRINT "CAN'T DESTROY FANTAVISION!":GOTO 9990
|
||||
9980 HTAB 15:PRINT "DRIVE ERROR."
|
||||
9990 NORMAL:HTAB 16:HTAB 9:PRINT "PRESS ANY KEY FOR MENU:";:GET A$:GOTO 5400
|
||||
```
|
||||
|
||||
NOTES:
|
||||
|
|
Loading…
Reference in New Issue
Block a user