mirror of
https://github.com/Pecusx/dino-game.git
synced 2026-05-21 06:39:38 +02:00
4 charsers
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -25,10 +25,13 @@
|
||||
;---------------------------------------------------
|
||||
; 4 charsets for fine scroll
|
||||
font1
|
||||
ins 'artwork/dino.fnt' ; first charset
|
||||
ins 'artwork/dino1.fnt' ; 1 charset
|
||||
font2 = font1+$400
|
||||
ins 'artwork/dino2.fnt' ; 2 charset
|
||||
font3 = font2+$400
|
||||
ins 'artwork/dino3.fnt' ; 3 charset
|
||||
font4 = font3+$400
|
||||
ins 'artwork/dino4.fnt' ; 4 charset
|
||||
org font4+$400
|
||||
; screen data
|
||||
; 8 lines 256bytes each
|
||||
@@ -66,7 +69,7 @@ line8_addr
|
||||
|
||||
;---------------------------------------------------
|
||||
FirstSTART
|
||||
jsr GenerateCharsets
|
||||
;jsr GenerateCharsets
|
||||
jsr SetGameScreen
|
||||
ldx #5 ; position
|
||||
ldy #0 ; shape
|
||||
@@ -84,6 +87,20 @@ FirstSTART
|
||||
ldy #4 ; shape
|
||||
jsr ShowDino
|
||||
|
||||
EndLoop
|
||||
wait ; or waitRTC ?
|
||||
wait ; or waitRTC ?
|
||||
mva #>font2 chbas
|
||||
wait ; or waitRTC ?
|
||||
wait ; or waitRTC ?
|
||||
mva #>font3 chbas
|
||||
wait ; or waitRTC ?
|
||||
wait ; or waitRTC ?
|
||||
mva #>font4 chbas
|
||||
wait ; or waitRTC ?
|
||||
wait ; or waitRTC ?
|
||||
mva #>font1 chbas
|
||||
jmp EndLoop
|
||||
halt
|
||||
rts
|
||||
|
||||
|
||||
@@ -589,19 +589,20 @@ FFFD 0000 @KBCODE
|
||||
00 3818 LINE7_ADDR
|
||||
00 381B LINE8_ADDR
|
||||
00 3820 FIRSTSTART
|
||||
00 3855 GENERATECHARSETS
|
||||
00 3857 GENERATECHARSETS.COPYLOOP
|
||||
00 388B SHOWDINO
|
||||
00 3897 SHOWDINO.DINOLOOP
|
||||
00 389E SHOWDINO.0@
|
||||
00 38B0 SHOWDINO.1@
|
||||
00 38C2 SHOWDINO.2@
|
||||
00 38D4 SHOWDINO.3@
|
||||
00 38E6 SETGAMESCREEN
|
||||
00 38FB DINO_RUN_0
|
||||
00 390F DINO_RUN_1
|
||||
00 3923 DINO_RUN_2
|
||||
00 3937 DINO_CROUCH_1
|
||||
00 394B DINO_CROUCH_2
|
||||
00 395F SHAPESTABLEL
|
||||
00 3964 SHAPESTABLEH
|
||||
00 3846 ENDLOOP
|
||||
00 3901 GENERATECHARSETS
|
||||
00 3903 GENERATECHARSETS.COPYLOOP
|
||||
00 3937 SHOWDINO
|
||||
00 3943 SHOWDINO.DINOLOOP
|
||||
00 394A SHOWDINO.0@
|
||||
00 395C SHOWDINO.1@
|
||||
00 396E SHOWDINO.2@
|
||||
00 3980 SHOWDINO.3@
|
||||
00 3992 SETGAMESCREEN
|
||||
00 39A7 DINO_RUN_0
|
||||
00 39BB DINO_RUN_1
|
||||
00 39CF DINO_RUN_2
|
||||
00 39E3 DINO_CROUCH_1
|
||||
00 39F7 DINO_CROUCH_2
|
||||
00 3A0B SHAPESTABLEL
|
||||
00 3A10 SHAPESTABLEH
|
||||
|
||||
@@ -947,198 +947,295 @@ Source: dino.asm
|
||||
25 ;---------------------------------------------------
|
||||
26 ; 4 charsets for fine scroll
|
||||
27 2000 font1
|
||||
28 2000-23FF> 00 00 00 00 + ins 'artwork/dino.fnt' ; first charset
|
||||
28 2000-2FFF> 00 00 00 00 + ins 'artwork/dino1.fnt' ; 1 charset
|
||||
29 = 2400 font2 = font1+$400
|
||||
30 = 2800 font3 = font2+$400
|
||||
31 = 2C00 font4 = font3+$400
|
||||
32 org font4+$400
|
||||
33 ; screen data
|
||||
34 ; 8 lines 256bytes each
|
||||
35 3000 screen
|
||||
36 org screen+($100*8)
|
||||
37 ; display list
|
||||
38 3800 GameDL
|
||||
39 3800-3968> 70 70 70 70 + .byte $70,$70,$70,$70,$70 ; empty lines
|
||||
40 3805 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
41 3806 line1_addr
|
||||
42 3806 00 30 .word screen
|
||||
43 3808 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
44 3809 line2_addr
|
||||
45 3809 00 31 .word screen+$100
|
||||
46 380B 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
47 380C line3_addr
|
||||
48 380C 00 32 .word screen+$200
|
||||
49 380E 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
50 380F line4_addr
|
||||
51 380F 00 33 .word screen+$300
|
||||
52 3811 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
53 3812 line5_addr
|
||||
54 3812 00 34 .word screen+$400
|
||||
55 3814 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
56 3815 line6_addr
|
||||
57 3815 00 35 .word screen+$500
|
||||
58 3817 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
59 3818 line7_addr
|
||||
60 3818 00 36 .word screen+$600
|
||||
61 381A 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
62 381B line8_addr
|
||||
63 381B 00 37 .word screen+$700
|
||||
64 381D 41 .byte $41 ;JVB
|
||||
65 381E 00 38 .word GameDL
|
||||
66
|
||||
67 ;---------------------------------------------------
|
||||
68 3820 FirstSTART
|
||||
69 3820 20 55 38 jsr GenerateCharsets
|
||||
70 3823 20 E6 38 jsr SetGameScreen
|
||||
71 3826 A2 05 ldx #5 ; position
|
||||
72 3828 A0 00 ldy #0 ; shape
|
||||
73 382A 20 8B 38 jsr ShowDino
|
||||
74 382D A2 0A ldx #10 ; position
|
||||
75 382F A0 01 ldy #1 ; shape
|
||||
76 3831 20 8B 38 jsr ShowDino
|
||||
77 3834 A2 0F ldx #15 ; position
|
||||
78 3836 A0 02 ldy #2 ; shape
|
||||
79 3838 20 8B 38 jsr ShowDino
|
||||
80 383B A2 14 ldx #20 ; position
|
||||
81 383D A0 03 ldy #3 ; shape
|
||||
82 383F 20 8B 38 jsr ShowDino
|
||||
83 3842 A2 19 ldx #25 ; position
|
||||
84 3844 A0 04 ldy #4 ; shape
|
||||
85 3846 20 8B 38 jsr ShowDino
|
||||
86
|
||||
87 3849 halt
|
||||
Macro: HALT [Source: MACRO.ASM]
|
||||
1 3849 ?stop
|
||||
2 3849 AD 0A D2 lda RANDOM
|
||||
3 384C 29 05 and #$05
|
||||
4 384E 8D 1A D0 sta COLBAK
|
||||
5 3851 4C 49 38 jmp ?stop
|
||||
30 2400 00 00 00 00 00 00 + ins 'artwork/dino2.fnt' ; 2 charset
|
||||
31 = 2800 font3 = font2+$400
|
||||
32 2800 00 00 00 00 00 00 + ins 'artwork/dino3.fnt' ; 3 charset
|
||||
33 = 2C00 font4 = font3+$400
|
||||
34 2C00 00 00 00 00 00 00 + ins 'artwork/dino4.fnt' ; 4 charset
|
||||
35 org font4+$400
|
||||
36 ; screen data
|
||||
37 ; 8 lines 256bytes each
|
||||
38 3000 screen
|
||||
39 org screen+($100*8)
|
||||
40 ; display list
|
||||
41 3800 GameDL
|
||||
42 3800-3A14> 70 70 70 70 + .byte $70,$70,$70,$70,$70 ; empty lines
|
||||
43 3805 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
44 3806 line1_addr
|
||||
45 3806 00 30 .word screen
|
||||
46 3808 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
47 3809 line2_addr
|
||||
48 3809 00 31 .word screen+$100
|
||||
49 380B 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
50 380C line3_addr
|
||||
51 380C 00 32 .word screen+$200
|
||||
52 380E 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
53 380F line4_addr
|
||||
54 380F 00 33 .word screen+$300
|
||||
55 3811 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
56 3812 line5_addr
|
||||
57 3812 00 34 .word screen+$400
|
||||
58 3814 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
59 3815 line6_addr
|
||||
60 3815 00 35 .word screen+$500
|
||||
61 3817 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
62 3818 line7_addr
|
||||
63 3818 00 36 .word screen+$600
|
||||
64 381A 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL
|
||||
65 381B line8_addr
|
||||
66 381B 00 37 .word screen+$700
|
||||
67 381D 41 .byte $41 ;JVB
|
||||
68 381E 00 38 .word GameDL
|
||||
69
|
||||
70 ;---------------------------------------------------
|
||||
71 3820 FirstSTART
|
||||
72 ;jsr GenerateCharsets
|
||||
73 3820 20 92 39 jsr SetGameScreen
|
||||
74 3823 A2 05 ldx #5 ; position
|
||||
75 3825 A0 00 ldy #0 ; shape
|
||||
76 3827 20 37 39 jsr ShowDino
|
||||
77 382A A2 0A ldx #10 ; position
|
||||
78 382C A0 01 ldy #1 ; shape
|
||||
79 382E 20 37 39 jsr ShowDino
|
||||
80 3831 A2 0F ldx #15 ; position
|
||||
81 3833 A0 02 ldy #2 ; shape
|
||||
82 3835 20 37 39 jsr ShowDino
|
||||
83 3838 A2 14 ldx #20 ; position
|
||||
84 383A A0 03 ldy #3 ; shape
|
||||
85 383C 20 37 39 jsr ShowDino
|
||||
86 383F A2 19 ldx #25 ; position
|
||||
87 3841 A0 04 ldy #4 ; shape
|
||||
88 3843 20 37 39 jsr ShowDino
|
||||
89
|
||||
90 3846 EndLoop
|
||||
91 3846 wait ; or waitRTC ?
|
||||
Macro: WAIT [Source: MACRO.ASM]
|
||||
3 3846 AD 0B D4 ?ze LDA VCOUNT
|
||||
4 3849 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
|
||||
5 384B 90 F9 bcc ?ze
|
||||
6 384D E9 0A sbc #10 ; last lines correction
|
||||
7 384F CD 0B D4 ?wa cmp VCOUNT
|
||||
8 3852 90 FB bcc ?wa
|
||||
9 3854 CD 0B D4 ?wf cmp VCOUNT
|
||||
10 3857 B0 FB bcs ?wf
|
||||
Source: dino.asm
|
||||
88 3854 60 rts
|
||||
89
|
||||
90 ;-----------------------------------------------
|
||||
91 ; Generation of character sets 2,3 and 4 of 1
|
||||
92 ; By copying and horizontal shift dino
|
||||
93 ;-----------------------------------------------
|
||||
94 3855 .proc GenerateCharsets
|
||||
95 ; copy charset 1 to 2,3 and 4
|
||||
96 3855 A0 00 ldy #0
|
||||
97 3857 CopyLoop
|
||||
98 3857 B9 00 20 lda font1,y
|
||||
99 385A 99 00 24 sta font2,y
|
||||
100 385D 99 00 28 sta font3,y
|
||||
101 3860 99 00 2C sta font4,y
|
||||
102 3863 B9 00 21 lda font1+$100,y
|
||||
103 3866 99 00 25 sta font2+$100,y
|
||||
104 3869 99 00 29 sta font3+$100,y
|
||||
105 386C 99 00 2D sta font4+$100,y
|
||||
106 386F B9 00 22 lda font1+$200,y
|
||||
107 3872 99 00 26 sta font2+$200,y
|
||||
108 3875 99 00 2A sta font3+$200,y
|
||||
109 3878 99 00 2E sta font4+$200,y
|
||||
110 387B B9 00 23 lda font1+$300,y
|
||||
111 387E 99 00 27 sta font2+$300,y
|
||||
112 3881 99 00 2B sta font3+$300,y
|
||||
113 3884 99 00 2F sta font4+$300,y
|
||||
114 3887 C8 iny
|
||||
115 3888 D0 CD bne CopyLoop
|
||||
116 ; and shifting dino shape
|
||||
117
|
||||
118 388A 60 rts
|
||||
119 .endp
|
||||
120
|
||||
121 ;-----------------------------------------------
|
||||
122 ; Show Dino on screen (test)
|
||||
123 ; X - y position
|
||||
124 ; Y - shape nr
|
||||
125 ;-----------------------------------------------
|
||||
126 388B .proc ShowDino
|
||||
127 388B B9 5F 39 lda ShapesTableL,y
|
||||
128 388E 85 80 sta temp_w
|
||||
129 3890 B9 64 39 lda ShapesTableH,y
|
||||
130 3893 85 81 sta temp_w+1
|
||||
131 3895 A0 00 ldy #0
|
||||
132 3897 DinoLoop
|
||||
133 3897 B1 80 lda (temp_w),y
|
||||
134 3899 30 03 bmi @+
|
||||
135 389B 9D 00 34 sta screen+$400,x
|
||||
136 389E 18 A5 80 69 05 85 + @ adw temp_w #5
|
||||
137 38A9 B1 80 lda (temp_w),y
|
||||
138 38AB 30 03 bmi @+
|
||||
139 38AD 9D 00 35 sta screen+$500,x
|
||||
140 38B0 18 A5 80 69 05 85 + @ adw temp_w #5
|
||||
141 38BB B1 80 lda (temp_w),y
|
||||
142 38BD 30 03 bmi @+
|
||||
143 38BF 9D 00 36 sta screen+$600,x
|
||||
144 38C2 18 A5 80 69 05 85 + @ adw temp_w #5
|
||||
145 38CD B1 80 lda (temp_w),y
|
||||
146 38CF 30 03 bmi @+
|
||||
147 38D1 9D 00 37 sta screen+$700,x
|
||||
148 38D4 38 A5 80 E9 0F 85 + @ sbw temp_w #15
|
||||
149 38DF E8 inx
|
||||
150 38E0 C8 iny
|
||||
151 38E1 C0 05 cpy #5 ; dino width
|
||||
152 38E3 D0 B2 bne DinoLoop
|
||||
153 38E5 60 rts
|
||||
154 .endp
|
||||
155 ;-----------------------------------------------
|
||||
156 ; Generation of character sets 2,3 and 4 of 1
|
||||
157 ; By copying and horizontal shift dino
|
||||
158 ;-----------------------------------------------
|
||||
159 38E6 .proc SetGameScreen
|
||||
160 38E6 A9 00 8D 30 02 A9 + mwa #GameDL dlptrs
|
||||
161 38F0 A9 3E lda #%00111110 ; normal screen width, DL on, P/M on
|
||||
162 38F2 8D 2F 02 sta dmactls
|
||||
163 38F5 A9 20 8D F4 02 mva #>font1 chbas
|
||||
164 38FA 60 rts
|
||||
165 .endp
|
||||
166 ;--------------------------------------------------
|
||||
167 38FB icl 'artwork/shapes.asm'
|
||||
92 3859 wait ; or waitRTC ?
|
||||
Macro: WAIT [Source: MACRO.ASM]
|
||||
3 3859 AD 0B D4 ?ze LDA VCOUNT
|
||||
4 385C C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
|
||||
5 385E 90 F9 bcc ?ze
|
||||
6 3860 E9 0A sbc #10 ; last lines correction
|
||||
7 3862 CD 0B D4 ?wa cmp VCOUNT
|
||||
8 3865 90 FB bcc ?wa
|
||||
9 3867 CD 0B D4 ?wf cmp VCOUNT
|
||||
10 386A B0 FB bcs ?wf
|
||||
Source: dino.asm
|
||||
93 386C A9 24 8D F4 02 mva #>font2 chbas
|
||||
94 3871 wait ; or waitRTC ?
|
||||
Macro: WAIT [Source: MACRO.ASM]
|
||||
3 3871 AD 0B D4 ?ze LDA VCOUNT
|
||||
4 3874 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
|
||||
5 3876 90 F9 bcc ?ze
|
||||
6 3878 E9 0A sbc #10 ; last lines correction
|
||||
7 387A CD 0B D4 ?wa cmp VCOUNT
|
||||
8 387D 90 FB bcc ?wa
|
||||
9 387F CD 0B D4 ?wf cmp VCOUNT
|
||||
10 3882 B0 FB bcs ?wf
|
||||
Source: dino.asm
|
||||
95 3884 wait ; or waitRTC ?
|
||||
Macro: WAIT [Source: MACRO.ASM]
|
||||
3 3884 AD 0B D4 ?ze LDA VCOUNT
|
||||
4 3887 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
|
||||
5 3889 90 F9 bcc ?ze
|
||||
6 388B E9 0A sbc #10 ; last lines correction
|
||||
7 388D CD 0B D4 ?wa cmp VCOUNT
|
||||
8 3890 90 FB bcc ?wa
|
||||
9 3892 CD 0B D4 ?wf cmp VCOUNT
|
||||
10 3895 B0 FB bcs ?wf
|
||||
Source: dino.asm
|
||||
96 3897 A9 28 8D F4 02 mva #>font3 chbas
|
||||
97 389C wait ; or waitRTC ?
|
||||
Macro: WAIT [Source: MACRO.ASM]
|
||||
3 389C AD 0B D4 ?ze LDA VCOUNT
|
||||
4 389F C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
|
||||
5 38A1 90 F9 bcc ?ze
|
||||
6 38A3 E9 0A sbc #10 ; last lines correction
|
||||
7 38A5 CD 0B D4 ?wa cmp VCOUNT
|
||||
8 38A8 90 FB bcc ?wa
|
||||
9 38AA CD 0B D4 ?wf cmp VCOUNT
|
||||
10 38AD B0 FB bcs ?wf
|
||||
Source: dino.asm
|
||||
98 38AF wait ; or waitRTC ?
|
||||
Macro: WAIT [Source: MACRO.ASM]
|
||||
3 38AF AD 0B D4 ?ze LDA VCOUNT
|
||||
4 38B2 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
|
||||
5 38B4 90 F9 bcc ?ze
|
||||
6 38B6 E9 0A sbc #10 ; last lines correction
|
||||
7 38B8 CD 0B D4 ?wa cmp VCOUNT
|
||||
8 38BB 90 FB bcc ?wa
|
||||
9 38BD CD 0B D4 ?wf cmp VCOUNT
|
||||
10 38C0 B0 FB bcs ?wf
|
||||
Source: dino.asm
|
||||
99 38C2 A9 2C 8D F4 02 mva #>font4 chbas
|
||||
100 38C7 wait ; or waitRTC ?
|
||||
Macro: WAIT [Source: MACRO.ASM]
|
||||
3 38C7 AD 0B D4 ?ze LDA VCOUNT
|
||||
4 38CA C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
|
||||
5 38CC 90 F9 bcc ?ze
|
||||
6 38CE E9 0A sbc #10 ; last lines correction
|
||||
7 38D0 CD 0B D4 ?wa cmp VCOUNT
|
||||
8 38D3 90 FB bcc ?wa
|
||||
9 38D5 CD 0B D4 ?wf cmp VCOUNT
|
||||
10 38D8 B0 FB bcs ?wf
|
||||
Source: dino.asm
|
||||
101 38DA wait ; or waitRTC ?
|
||||
Macro: WAIT [Source: MACRO.ASM]
|
||||
3 38DA AD 0B D4 ?ze LDA VCOUNT
|
||||
4 38DD C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
|
||||
5 38DF 90 F9 bcc ?ze
|
||||
6 38E1 E9 0A sbc #10 ; last lines correction
|
||||
7 38E3 CD 0B D4 ?wa cmp VCOUNT
|
||||
8 38E6 90 FB bcc ?wa
|
||||
9 38E8 CD 0B D4 ?wf cmp VCOUNT
|
||||
10 38EB B0 FB bcs ?wf
|
||||
Source: dino.asm
|
||||
102 38ED A9 20 8D F4 02 mva #>font1 chbas
|
||||
103 38F2 4C 46 38 jmp EndLoop
|
||||
104 38F5 halt
|
||||
Macro: HALT [Source: MACRO.ASM]
|
||||
1 38F5 ?stop
|
||||
2 38F5 AD 0A D2 lda RANDOM
|
||||
3 38F8 29 05 and #$05
|
||||
4 38FA 8D 1A D0 sta COLBAK
|
||||
5 38FD 4C F5 38 jmp ?stop
|
||||
Source: dino.asm
|
||||
105 3900 60 rts
|
||||
106
|
||||
107 ;-----------------------------------------------
|
||||
108 ; Generation of character sets 2,3 and 4 of 1
|
||||
109 ; By copying and horizontal shift dino
|
||||
110 ;-----------------------------------------------
|
||||
111 3901 .proc GenerateCharsets
|
||||
112 ; copy charset 1 to 2,3 and 4
|
||||
113 3901 A0 00 ldy #0
|
||||
114 3903 CopyLoop
|
||||
115 3903 B9 00 20 lda font1,y
|
||||
116 3906 99 00 24 sta font2,y
|
||||
117 3909 99 00 28 sta font3,y
|
||||
118 390C 99 00 2C sta font4,y
|
||||
119 390F B9 00 21 lda font1+$100,y
|
||||
120 3912 99 00 25 sta font2+$100,y
|
||||
121 3915 99 00 29 sta font3+$100,y
|
||||
122 3918 99 00 2D sta font4+$100,y
|
||||
123 391B B9 00 22 lda font1+$200,y
|
||||
124 391E 99 00 26 sta font2+$200,y
|
||||
125 3921 99 00 2A sta font3+$200,y
|
||||
126 3924 99 00 2E sta font4+$200,y
|
||||
127 3927 B9 00 23 lda font1+$300,y
|
||||
128 392A 99 00 27 sta font2+$300,y
|
||||
129 392D 99 00 2B sta font3+$300,y
|
||||
130 3930 99 00 2F sta font4+$300,y
|
||||
131 3933 C8 iny
|
||||
132 3934 D0 CD bne CopyLoop
|
||||
133 ; and shifting dino shape
|
||||
134
|
||||
135 3936 60 rts
|
||||
136 .endp
|
||||
137
|
||||
138 ;-----------------------------------------------
|
||||
139 ; Show Dino on screen (test)
|
||||
140 ; X - y position
|
||||
141 ; Y - shape nr
|
||||
142 ;-----------------------------------------------
|
||||
143 3937 .proc ShowDino
|
||||
144 3937 B9 0B 3A lda ShapesTableL,y
|
||||
145 393A 85 80 sta temp_w
|
||||
146 393C B9 10 3A lda ShapesTableH,y
|
||||
147 393F 85 81 sta temp_w+1
|
||||
148 3941 A0 00 ldy #0
|
||||
149 3943 DinoLoop
|
||||
150 3943 B1 80 lda (temp_w),y
|
||||
151 3945 30 03 bmi @+
|
||||
152 3947 9D 00 34 sta screen+$400,x
|
||||
153 394A 18 A5 80 69 05 85 + @ adw temp_w #5
|
||||
154 3955 B1 80 lda (temp_w),y
|
||||
155 3957 30 03 bmi @+
|
||||
156 3959 9D 00 35 sta screen+$500,x
|
||||
157 395C 18 A5 80 69 05 85 + @ adw temp_w #5
|
||||
158 3967 B1 80 lda (temp_w),y
|
||||
159 3969 30 03 bmi @+
|
||||
160 396B 9D 00 36 sta screen+$600,x
|
||||
161 396E 18 A5 80 69 05 85 + @ adw temp_w #5
|
||||
162 3979 B1 80 lda (temp_w),y
|
||||
163 397B 30 03 bmi @+
|
||||
164 397D 9D 00 37 sta screen+$700,x
|
||||
165 3980 38 A5 80 E9 0F 85 + @ sbw temp_w #15
|
||||
166 398B E8 inx
|
||||
167 398C C8 iny
|
||||
168 398D C0 05 cpy #5 ; dino width
|
||||
169 398F D0 B2 bne DinoLoop
|
||||
170 3991 60 rts
|
||||
171 .endp
|
||||
172 ;-----------------------------------------------
|
||||
173 ; Generation of character sets 2,3 and 4 of 1
|
||||
174 ; By copying and horizontal shift dino
|
||||
175 ;-----------------------------------------------
|
||||
176 3992 .proc SetGameScreen
|
||||
177 3992 A9 00 8D 30 02 A9 + mwa #GameDL dlptrs
|
||||
178 399C A9 3E lda #%00111110 ; normal screen width, DL on, P/M on
|
||||
179 399E 8D 2F 02 sta dmactls
|
||||
180 39A1 A9 20 8D F4 02 mva #>font1 chbas
|
||||
181 39A6 60 rts
|
||||
182 .endp
|
||||
183 ;--------------------------------------------------
|
||||
184 39A7 icl 'artwork/shapes.asm'
|
||||
Source: shapes.asm
|
||||
1 ; @com.wudsn.ide.asm.mainsourcefile=scorch.asm
|
||||
2
|
||||
3 .IF *>0 ;this is a trick that prevents compiling this file alone
|
||||
4
|
||||
5 ; dno run
|
||||
6 38FB dino_run_0 ; anly '0' jumps
|
||||
7 38FB FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. '
|
||||
8 3900 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## '
|
||||
9 3905 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .'
|
||||
10 390A 22 26 2A FF FF .by $22, $26, $2a, $ff, $ff ; '## .'
|
||||
11 390F dino_run_1
|
||||
12 390F FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. '
|
||||
13 3914 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## '
|
||||
14 3919 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .'
|
||||
15 391E 2D 2E 2F FF FF .by $2d, $2e, $2f, $ff, $ff ; '## .'
|
||||
16 3923 dino_run_2
|
||||
17 3923 FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. '
|
||||
18 3928 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## '
|
||||
19 392D 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .'
|
||||
20 3932 30 31 32 FF FF .by $30, $31, $32, $ff, $ff ; '## .'
|
||||
21 3937 dino_crouch_1
|
||||
22 3937 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff
|
||||
23 393C FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff
|
||||
24 3941 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### '
|
||||
25 3946 38 39 3A 3B 3C .by $38, $39, $3a, $3b, $3c ; '#### '
|
||||
26 394B dino_crouch_2
|
||||
27 394B FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff
|
||||
28 3950 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff
|
||||
29 3955 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### '
|
||||
30 395A 3D 3E 3F 3B 3C .by $3d, $3e, $3f, $3b, $3c ; '#### '
|
||||
31 395F ShapesTableL
|
||||
32 395F FB .by <dino_run_0
|
||||
33 3960 0F .by <dino_run_1
|
||||
34 3961 23 .by <dino_run_2
|
||||
35 3962 37 .by <dino_crouch_1
|
||||
36 3963 4B .by <dino_crouch_2
|
||||
37 3964 ShapesTableH
|
||||
38 3964 38 .by >dino_run_0
|
||||
39 3965 39 .by >dino_run_1
|
||||
40 3966 39 .by >dino_run_2
|
||||
41 3967 39 .by >dino_crouch_1
|
||||
42 3968 39 .by >dino_crouch_2
|
||||
6 39A7 dino_run_0 ; anly '0' jumps
|
||||
7 39A7 FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. '
|
||||
8 39AC 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## '
|
||||
9 39B1 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .'
|
||||
10 39B6 22 26 2A FF FF .by $22, $26, $2a, $ff, $ff ; '## .'
|
||||
11 39BB dino_run_1
|
||||
12 39BB FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. '
|
||||
13 39C0 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## '
|
||||
14 39C5 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .'
|
||||
15 39CA 2D 2E 2F FF FF .by $2d, $2e, $2f, $ff, $ff ; '## .'
|
||||
16 39CF dino_run_2
|
||||
17 39CF FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. '
|
||||
18 39D4 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## '
|
||||
19 39D9 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .'
|
||||
20 39DE 30 31 32 FF FF .by $30, $31, $32, $ff, $ff ; '## .'
|
||||
21 39E3 dino_crouch_1
|
||||
22 39E3 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff
|
||||
23 39E8 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff
|
||||
24 39ED 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### '
|
||||
25 39F2 38 39 3A 3B 3C .by $38, $39, $3a, $3b, $3c ; '#### '
|
||||
26 39F7 dino_crouch_2
|
||||
27 39F7 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff
|
||||
28 39FC FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff
|
||||
29 3A01 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### '
|
||||
30 3A06 3D 3E 3F 3B 3C .by $3d, $3e, $3f, $3b, $3c ; '#### '
|
||||
31 3A0B ShapesTableL
|
||||
32 3A0B A7 .by <dino_run_0
|
||||
33 3A0C BB .by <dino_run_1
|
||||
34 3A0D CF .by <dino_run_2
|
||||
35 3A0E E3 .by <dino_crouch_1
|
||||
36 3A0F F7 .by <dino_crouch_2
|
||||
37 3A10 ShapesTableH
|
||||
38 3A10 39 .by >dino_run_0
|
||||
39 3A11 39 .by >dino_run_1
|
||||
40 3A12 39 .by >dino_run_2
|
||||
41 3A13 39 .by >dino_crouch_1
|
||||
42 3A14 39 .by >dino_crouch_2
|
||||
43
|
||||
44 .endif ; .IF *>0
|
||||
168 ;--------------------------------------------------
|
||||
169
|
||||
170 02E0-02E1> 20 38 run FirstSTART
|
||||
185 ;--------------------------------------------------
|
||||
186
|
||||
187 02E0-02E1> 20 38 run FirstSTART
|
||||
|
||||
Reference in New Issue
Block a user