Skip to content

Commit

Permalink
fixed illegal character, converted to LF
Browse files Browse the repository at this point in the history
  • Loading branch information
mist64 committed Sep 30, 2019
1 parent 53954b0 commit 31a8b26
Showing 1 changed file with 116 additions and 116 deletions.
232 changes: 116 additions & 116 deletions layer demo/layer-demo.bas
Original file line number Diff line number Diff line change
@@ -1,116 +1,116 @@
1 REM ---- SCROLLING ELECTRICITY DEMO BY BARRY YOST SEP 7 2019 ----
2 REM
3 REM DEMONSTRATES:
4 REM - MULTI-LAYER SCREEN
5 REM - ANIMATED TILES (HORIZONTAL MOTION OF WAVE PATTERN)
6 REM - ANIMATED COLOR
7 REM - VERTICAL SCROLL FOR LAYER 1
8 REM
9 REM
10 REM
11 REM ==INITIALIZATION==
12 REM
20 VPOKE $F,$3008,0 : VPOKE $F,$3009,0 : REM HSCROLL/VSCROLL -> 0
30 POKE $9F22,$10 : REM SET VRAM STEPPING=1
40 POKE $9F21,$80 : POKE $9F20,0 : REM POINT TRANSFER PORT0 TO $00:8000
50 FOR I=1 TO 192 : REM TRANSFER 192 BYTES OF CHR DATA
51 READ A : POKE $9F23,A : NEXT I : REM SEND BYTE TO VERA DATA PORT0
60 VPOKE $F,$3000,$21 : VPOKE $F,$3001,6 : REM SET LAYER1 AS 8BPP TEXT
70 VPOKE $F,$3002,$0 : VPOKE $F,$3003,$10 : REM $004000 FOR LAYER 1 TILE MAP
80 VPOKE $F,$3004,$0 : VPOKE $F,$3005,$20 : REM USE $008000 AS TILE DATA AREA
100 REM
101 REM == SET CHR DATA FOR TILE 24 IN ALL 6 FRAMES AS $FF (A SOLID SQUARE)
102 REM
110 POKE $9F22,$10 : REM SET VRAM STEPPING=1
120 FOR I=24 TO 44 STEP 4 : REM I=TILE 24 FOR EACH FRAME
130 POKE $9F21,$80 : POKE $9F20,(8 * I)AND $FF : REM POINT TO VRAM @ TILE
140 IF 8*I >255 THEN POKE $9F21,$81 : REM IF > 255, INC HI BYTE
150 FOR J=1 TO 8 :POKE $9F23,$FF : NEXT J : REM WRITE 8 BYTES PER TILE
160 NEXT I
300 REM
301 REM == DRAW THE ELECTRICITY/SQUARES ON ROW 0 OF LAYER 1 ==
302 REM
310 POKE $9F22,$10:POKE $9F21,$40:POKE $9F20,00 : REM POINT @ LYR1 TILEMAP
320 C=0 : REM C IS THE ELEC. TILE TO USE
330 FOR I=1TO80 : REM DRAW 80 TILES ON THE ROW
340 C=C+1:IF C>3 THEN C=1 : REM C CYCLES 1,2,3,1,2,3,1,2,3,ETC...
350 REM
351 REM DRAW SQUARES AT THE ENDS OF THE BEAM, SPACES IN THE MIDDLE, AND
352 REM DRAW ELECTRICITY ON ALL OTHER COLUMNS.
353 REM
360 IF I=1 OR I=35 OR I=45 OR I=80 THEN POKE $9F23,24:POKE $9F23,$50:NEXT I
370 IF I>35 AND I<45 THEN POKE $9F23,0:POKE $9F23,0 :NEXT I
380 IF I<81 THEN POKE $9F23,C:POKE $9F23,$FF:NEXT I
400 REM
401 REM == FILL LAYER0 WITH A CHARACTER ==
403 REM
410 POKE $9F22,$10:POKE $9F21,0:POKE $9F20,0
420 REM FOR I=1 TO 64*128 : POKE $9F23,81: POKE $9F23,$6E : NEXT I
430 FOR I=0 TO 41 :READ A : POKE $400+I,A : NEXT I
440 SYS $400
1000 REM
1001 REM === MAIN LOOP ===
1002 REM
1010 S=3: F=-1 : SO=0 : REM INITIALIZE SCROLL/FRAME COUNTERS
1020 S=S-3:IF S<0 THEN S=S+$FFF : REM CYCLE SCROLL AMOUNT -3, 0..$FFF
1030 H=S AND $F00 : H=H/256 : L=S AND $FF : REM SPLIT S INTO HI/LO BYTES
1040 VPOKE $F,$3008,L : VPOKE $F,$3009,H : REM UPDATE LYR 1 VSCROLL REGISTERS
1050 C=INT(255*RND(1)) : VPOKE $F,$11FE,C
1060 F=F+1 : IF F>5 THEN F=0 : REM CYCLE ZAP ANIMATION FRAME 0..5
1070 VPOKE $F,$3004,F*8 : REM MOVE CHR DATA POINTER (32BYTE/FRAME)
1071 REM NOTE: VERA MULTIPLIES THIS BY 4 HENCE WE USE F*8 INSTEAD OF F*32.
1080 SO=SO-1:IF SO<0 THEN SO=$FFF
1090 H=SO AND $F00 : H=H/256 : L=SO AND $FF
1100 VPOKE $F,$2008,L : VPOKE $F,$2009,H
9900 GET K$ : IF K$="" THEN 1020 : REM CHECK FOR KEYPRESS TO EXIT
9910 VPOKE $F,$3000,0 : REM HIDE LAYER 1
9920 VPOKE $F,$2008,0 : VPOKE $F,$2009,0 : REM RESET H/VSCROLL ON LAYER 0
9930 PRINT "ô"
9999 END
10000 REM TILE GRAPHICS DATA : REM FRAME CHAR CHR DATA POINTER
10001 DATA 0,0,0,0,0,0,0,0 : REM 0 BLANK <-- HERE FRAME 0
10002 DATA 1,2,2,100,148,20,8,0 : REM 0 ZAP-A
10003 DATA 0,128,64,64,88,36,5,2 : REM 0 ZAP-B
10004 DATA 0,0,0,64,162,165,24,0 : REM 0 ZAP-C
10005 DATA 0,0,0,0,0,0,0,0 : REM 1 BLANK <-- HERE FRAME 1
10006 DATA 16,40,36,68,69,66,128,0 : REM 1 ZAP-A
10007 DATA 0,0,0,4,138,74,81,32 : REM 1 ZAP-B
10008 DATA 0,0,0,6,41,81,128,0 : REM 1 ZAP-C
10009 DATA 0,0,0,0,0,0,0,0 : REM 2 BLANK <-- HERE FRAME 2
10010 DATA 0,128,64,64,88,36,5,2 : REM 2 ZAP-A
10011 DATA 0,0,0,64,162,165,24,0 : REM 2 ZAP-B
10012 DATA 1,2,2,100,148,20,8,0 : REM 2 ZAP-C
10013 DATA 0,0,0,0,0,0,0,0 : REM 3 BLANK <-- HERE FRAME 3
10014 DATA 0,0,0,4,138,74,81,32 : REM 3 ETC...
10015 DATA 0,0,0,6,41,81,128,0 : REM 3
10016 DATA 16,40,36,68,69,66,128,0 : REM 3
10017 DATA 0,0,0,0,0,0,0,0 : REM 4
10018 DATA 0,0,0,64,162,165,24,0 : REM 4
10019 DATA 1,2,2,100,148,20,8,0 : REM 4
10020 DATA 0,128,64,64,88,36,5,2 : REM 4
10021 DATA 0,0,0,0,0,0,0,0 : REM 5
10022 DATA 0,0,0,6,41,81,128,0 : REM 5
10023 DATA 16,40,36,68,69,66,128,0 : REM 5
10024 DATA 0,0,0,4,138,74,81,32 : REM 5
11000 REM
11001 REM - MACHINE CODE FOR QUICK SCREEN FILL
11010 DATA 120 : REM SEI
11020 DATA 169,16 : REM LDA #$10 ; SET VERA POINTER TO 00:0000 STEP 1
11030 DATA 141,34,159 : REM STA $9F22 ;
11040 DATA 169,0 : REM LDA #$00 ;
11050 DATA 141,33,159 : REM STA $9F21 ;
11060 DATA 141,32,159 : REM STA $9F20 ;
11070 DATA 162,110 : REM LDX #$6E ; COLOR CODE
11080 DATA 169,64 : REM LDA #$40
11090 DATA 133,252 : REM STA $FC ; SET $FC TO 64 (64 ROWS OF TILES)
11100 DATA 169,81 : REM LDA #$51 ; TILE CODE
11110 DATA 198,252 : REM DEC $FC
11120 DATA 48,14 : REM BMI $0428 ; JMP TO END IF DONE WITH 64 ROWS
11130 DATA 160,128 : REM LDY #$80 ; SET Y INDEX TO 128 COLUMNS
11140 DATA 136 : REM DEY
11150 DATA 48,247 : REM BMI $0416 ; LOOP TO NEXT ROW IF DONE W/ 128 COLS
11160 DATA 141,35,159 : REM STA $9F23 ; PUSH TILE TO VRAM
11170 DATA 142,35,159 : REM STX $9F23 ; PUSH COLOR TO VRAM
11180 DATA 76,28,4 : REM JMP $041C
11190 DATA 88 : REM CLI
11200 DATA 96 : REM RTS
1 REM ---- SCROLLING ELECTRICITY DEMO BY BARRY YOST SEP 7 2019 ----
2 REM
3 REM DEMONSTRATES:
4 REM - MULTI-LAYER SCREEN
5 REM - ANIMATED TILES (HORIZONTAL MOTION OF WAVE PATTERN)
6 REM - ANIMATED COLOR
7 REM - VERTICAL SCROLL FOR LAYER 1
8 REM
9 REM
10 REM
11 REM ==INITIALIZATION==
12 REM
20 VPOKE $F,$3008,0 : VPOKE $F,$3009,0 : REM HSCROLL/VSCROLL -> 0
30 POKE $9F22,$10 : REM SET VRAM STEPPING=1
40 POKE $9F21,$80 : POKE $9F20,0 : REM POINT TRANSFER PORT0 TO $00:8000
50 FOR I=1 TO 192 : REM TRANSFER 192 BYTES OF CHR DATA
51 READ A : POKE $9F23,A : NEXT I : REM SEND BYTE TO VERA DATA PORT0
60 VPOKE $F,$3000,$21 : VPOKE $F,$3001,6 : REM SET LAYER1 AS 8BPP TEXT
70 VPOKE $F,$3002,$0 : VPOKE $F,$3003,$10 : REM $004000 FOR LAYER 1 TILE MAP
80 VPOKE $F,$3004,$0 : VPOKE $F,$3005,$20 : REM USE $008000 AS TILE DATA AREA
100 REM
101 REM == SET CHR DATA FOR TILE 24 IN ALL 6 FRAMES AS $FF (A SOLID SQUARE)
102 REM
110 POKE $9F22,$10 : REM SET VRAM STEPPING=1
120 FOR I=24 TO 44 STEP 4 : REM I=TILE 24 FOR EACH FRAME
130 POKE $9F21,$80 : POKE $9F20,(8 * I)AND $FF : REM POINT TO VRAM @ TILE
140 IF 8*I >255 THEN POKE $9F21,$81 : REM IF > 255, INC HI BYTE
150 FOR J=1 TO 8 :POKE $9F23,$FF : NEXT J : REM WRITE 8 BYTES PER TILE
160 NEXT I
300 REM
301 REM == DRAW THE ELECTRICITY/SQUARES ON ROW 0 OF LAYER 1 ==
302 REM
310 POKE $9F22,$10:POKE $9F21,$40:POKE $9F20,00 : REM POINT @ LYR1 TILEMAP
320 C=0 : REM C IS THE ELEC. TILE TO USE
330 FOR I=1TO80 : REM DRAW 80 TILES ON THE ROW
340 C=C+1:IF C>3 THEN C=1 : REM C CYCLES 1,2,3,1,2,3,1,2,3,ETC...
350 REM
351 REM DRAW SQUARES AT THE ENDS OF THE BEAM, SPACES IN THE MIDDLE, AND
352 REM DRAW ELECTRICITY ON ALL OTHER COLUMNS.
353 REM
360 IF I=1 OR I=35 OR I=45 OR I=80 THEN POKE $9F23,24:POKE $9F23,$50:NEXT I
370 IF I>35 AND I<45 THEN POKE $9F23,0:POKE $9F23,0 :NEXT I
380 IF I<81 THEN POKE $9F23,C:POKE $9F23,$FF:NEXT I
400 REM
401 REM == FILL LAYER0 WITH A CHARACTER ==
403 REM
410 POKE $9F22,$10:POKE $9F21,0:POKE $9F20,0
420 REM FOR I=1 TO 64*128 : POKE $9F23,81: POKE $9F23,$6E : NEXT I
430 FOR I=0 TO 41 :READ A : POKE $400+I,A : NEXT I
440 SYS $400
1000 REM
1001 REM === MAIN LOOP ===
1002 REM
1010 S=3: F=-1 : SO=0 : REM INITIALIZE SCROLL/FRAME COUNTERS
1020 S=S-3:IF S<0 THEN S=S+$FFF : REM CYCLE SCROLL AMOUNT -3, 0..$FFF
1030 H=S AND $F00 : H=H/256 : L=S AND $FF : REM SPLIT S INTO HI/LO BYTES
1040 VPOKE $F,$3008,L : VPOKE $F,$3009,H : REM UPDATE LYR 1 VSCROLL REGISTERS
1050 C=INT(255*RND(1)) : VPOKE $F,$11FE,C
1060 F=F+1 : IF F>5 THEN F=0 : REM CYCLE ZAP ANIMATION FRAME 0..5
1070 VPOKE $F,$3004,F*8 : REM MOVE CHR DATA POINTER (32BYTE/FRAME)
1071 REM NOTE: VERA MULTIPLIES THIS BY 4 HENCE WE USE F*8 INSTEAD OF F*32.
1080 SO=SO-1:IF SO<0 THEN SO=$FFF
1090 H=SO AND $F00 : H=H/256 : L=SO AND $FF
1100 VPOKE $F,$2008,L : VPOKE $F,$2009,H
9900 GET K$ : IF K$="" THEN 1020 : REM CHECK FOR KEYPRESS TO EXIT
9910 VPOKE $F,$3000,0 : REM HIDE LAYER 1
9920 VPOKE $F,$2008,0 : VPOKE $F,$2009,0 : REM RESET H/VSCROLL ON LAYER 0
9930 PRINT "\XF4"
9999 END
10000 REM TILE GRAPHICS DATA : REM FRAME CHAR CHR DATA POINTER
10001 DATA 0,0,0,0,0,0,0,0 : REM 0 BLANK <-- HERE FRAME 0
10002 DATA 1,2,2,100,148,20,8,0 : REM 0 ZAP-A
10003 DATA 0,128,64,64,88,36,5,2 : REM 0 ZAP-B
10004 DATA 0,0,0,64,162,165,24,0 : REM 0 ZAP-C
10005 DATA 0,0,0,0,0,0,0,0 : REM 1 BLANK <-- HERE FRAME 1
10006 DATA 16,40,36,68,69,66,128,0 : REM 1 ZAP-A
10007 DATA 0,0,0,4,138,74,81,32 : REM 1 ZAP-B
10008 DATA 0,0,0,6,41,81,128,0 : REM 1 ZAP-C
10009 DATA 0,0,0,0,0,0,0,0 : REM 2 BLANK <-- HERE FRAME 2
10010 DATA 0,128,64,64,88,36,5,2 : REM 2 ZAP-A
10011 DATA 0,0,0,64,162,165,24,0 : REM 2 ZAP-B
10012 DATA 1,2,2,100,148,20,8,0 : REM 2 ZAP-C
10013 DATA 0,0,0,0,0,0,0,0 : REM 3 BLANK <-- HERE FRAME 3
10014 DATA 0,0,0,4,138,74,81,32 : REM 3 ETC...
10015 DATA 0,0,0,6,41,81,128,0 : REM 3
10016 DATA 16,40,36,68,69,66,128,0 : REM 3
10017 DATA 0,0,0,0,0,0,0,0 : REM 4
10018 DATA 0,0,0,64,162,165,24,0 : REM 4
10019 DATA 1,2,2,100,148,20,8,0 : REM 4
10020 DATA 0,128,64,64,88,36,5,2 : REM 4
10021 DATA 0,0,0,0,0,0,0,0 : REM 5
10022 DATA 0,0,0,6,41,81,128,0 : REM 5
10023 DATA 16,40,36,68,69,66,128,0 : REM 5
10024 DATA 0,0,0,4,138,74,81,32 : REM 5
11000 REM
11001 REM - MACHINE CODE FOR QUICK SCREEN FILL
11010 DATA 120 : REM SEI
11020 DATA 169,16 : REM LDA #$10 ; SET VERA POINTER TO 00:0000 STEP 1
11030 DATA 141,34,159 : REM STA $9F22 ;
11040 DATA 169,0 : REM LDA #$00 ;
11050 DATA 141,33,159 : REM STA $9F21 ;
11060 DATA 141,32,159 : REM STA $9F20 ;
11070 DATA 162,110 : REM LDX #$6E ; COLOR CODE
11080 DATA 169,64 : REM LDA #$40
11090 DATA 133,252 : REM STA $FC ; SET $FC TO 64 (64 ROWS OF TILES)
11100 DATA 169,81 : REM LDA #$51 ; TILE CODE
11110 DATA 198,252 : REM DEC $FC
11120 DATA 48,14 : REM BMI $0428 ; JMP TO END IF DONE WITH 64 ROWS
11130 DATA 160,128 : REM LDY #$80 ; SET Y INDEX TO 128 COLUMNS
11140 DATA 136 : REM DEY
11150 DATA 48,247 : REM BMI $0416 ; LOOP TO NEXT ROW IF DONE W/ 128 COLS
11160 DATA 141,35,159 : REM STA $9F23 ; PUSH TILE TO VRAM
11170 DATA 142,35,159 : REM STX $9F23 ; PUSH COLOR TO VRAM
11180 DATA 76,28,4 : REM JMP $041C
11190 DATA 88 : REM CLI
11200 DATA 96 : REM RTS

0 comments on commit 31a8b26

Please sign in to comment.