We make world!

This commit is contained in:
Pecusx
2024-08-10 14:40:01 +02:00
parent b29cc4908a
commit 5b2bd1628e
7 changed files with 687 additions and 374 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+61 -22
View File
@@ -4,41 +4,80 @@
; dno run ; dno run
dino_run_0 ; anly '0' jumps dino_run_0 ; anly '0' jumps
.by $ff, $23, $27, $2b, $ff ; '. ' .by $ff, $23, $27, $2b, $ff ; '. .'
.by $20, $24, $28, $2c, $ff ; ' ## ' .by $20, $24, $28, $2c, $ff ; ' ## .'
.by $21, $25, $29, $ff, $ff ; '## .' .by $21, $25, $29, $ff, $ff ; '## ..'
.by $22, $26, $2a, $ff, $ff ; '## .' .by $22, $26, $2a, $ff, $ff ; '## ..'
dino_run_1 dino_run_1
.by $ff, $23, $27, $2b, $ff ; '. ' .by $ff, $23, $27, $2b, $ff ; '. .'
.by $20, $24, $28, $2c, $ff ; ' ## ' .by $20, $24, $28, $2c, $ff ; ' ## .'
.by $21, $25, $29, $ff, $ff ; '## .' .by $21, $25, $29, $ff, $ff ; '## ..'
.by $2d, $2e, $2f, $ff, $ff ; '## .' .by $2d, $2e, $2f, $ff, $ff ; '## ..'
dino_run_2 dino_run_2
.by $ff, $23, $27, $2b, $ff ; '. ' .by $ff, $23, $27, $2b, $ff ; '. .'
.by $20, $24, $28, $2c, $ff ; ' ## ' .by $20, $24, $28, $2c, $ff ; ' ## .'
.by $21, $25, $29, $ff, $ff ; '## .' .by $21, $25, $29, $ff, $ff ; '## ..'
.by $30, $31, $32, $ff, $ff ; '## .' .by $30, $31, $32, $ff, $ff ; '## ..'
dino_crouch_1 dino_crouch_1
.by $ff, $ff, $ff, $ff, $ff .by $ff, $ff, $ff, $ff, $ff ; '.....'
.by $ff, $ff, $ff, $ff, $ff .by $ff, $ff, $ff, $ff, $ff ; '.....'
.by $33, $34, $35, $36, $37 ; '#### ' .by $33, $34, $35, $36, $37 ; '#### '
.by $38, $39, $3a, $3b, $3c ; '#### ' .by $38, $39, $3a, $3b, $3c ; '#### '
dino_crouch_2 dino_crouch_2
.by $ff, $ff, $ff, $ff, $ff .by $ff, $ff, $ff, $ff, $ff ; '.....'
.by $ff, $ff, $ff, $ff, $ff .by $ff, $ff, $ff, $ff, $ff ; '.....'
.by $33, $34, $35, $36, $37 ; '#### ' .by $33, $34, $35, $36, $37 ; '#### '
.by $3d, $3e, $3f, $3b, $3c ; '#### ' .by $3d, $3e, $3f, $3b, $3c ; '#### '
ShapesTableL DinoShapesTableL
.by <dino_run_0 .by <dino_run_0
.by <dino_run_1 .by <dino_run_1
.by <dino_run_2 .by <dino_run_2
.by <dino_crouch_1 .by <dino_crouch_1
.by <dino_crouch_2 .by <dino_crouch_2
ShapesTableH DinoShapesTableH
.by >dino_run_0 .by >dino_run_0
.by >dino_run_1 .by >dino_run_1
.by >dino_run_2 .by >dino_run_2
.by >dino_crouch_1 .by >dino_crouch_1
.by >dino_crouch_2 .by >dino_crouch_2
; other objects
ground_0
.by $ff, $ff ; '..'
.by $ff, $ff ; '..'
.by $ff, $ff ; '..'
.by $52, $ff ; '#.'
bird_0
.by $ff, $ff ; '..'
.by $ff, $ff ; '..'
.by $48, $ff ; '#.'
.by $52, $ff ; '#.'
bird_1
.by $ff, $ff ; '..'
.by $48, $ff ; '#.'
.by $ff, $ff ; '..'
.by $52, $ff ; '#.'
bird_2
.by $48, $ff ; '#.'
.by $ff, $ff ; '..'
.by $ff, $ff ; ''.'
.by $52, $ff ; '#.'
cactus_0
.by $ff, $ff ; '..'
.by $54, $54 ; '##'
.by $54, $54 ; '##'
.by $52, $52 ; '##'
ShapesTableL
.by <ground_0
.by <bird_0
.by <bird_1
.by <bird_2
.by <cactus_0
ShapesTableH
.by >ground_0
.by >bird_0
.by >bird_1
.by >bird_2
.by >cactus_0
.endif ; .IF *>0 .endif ; .IF *>0
+112 -12
View File
@@ -6,7 +6,8 @@ SCR_HEIGHT = 8
;--------------------------------------------------- ;---------------------------------------------------
; Zpage variables ; Zpage variables
.zpvar temp_w .word = $80 .zpvar temp_w .word = $80
.zpvar temp_b .byte
;--------------------------------------------------- ;---------------------------------------------------
icl 'lib/ATARISYS.ASM' icl 'lib/ATARISYS.ASM'
icl 'lib/MACRO.ASM' icl 'lib/MACRO.ASM'
@@ -49,10 +50,22 @@ line:1_addr
.endr .endr
.byte JVB .byte JVB
.word GameDL .word GameDL
;---------------------------------------------------
; World table without dino
WorldTable
:64 .byte 0 ; ground
;--------------------------------------------------- ;---------------------------------------------------
FirstSTART FirstSTART
;jsr GenerateCharsets jsr GenerateCharsets
jsr ClearWorld
; test only (some object in the world)
lda #1 ;bird0
sta WorldTable+10
lda #4 ;cactus
sta WorldTable+20
lda #4+$80 ; cactus (second char)
sta WorldTable+21
;
jsr SetGameScreen jsr SetGameScreen
ldx #5 ; position ldx #5 ; position
ldy #0 ; shape ldy #0 ; shape
@@ -71,6 +84,11 @@ FirstSTART
jsr ShowDino jsr ShowDino
mva #$50 screen+$700+32 mva #$50 screen+$700+32
EndLoop EndLoop
jsr WorldShift
jsr WorldToScreen
ldx #5 ; position
ldy #0 ; shape
jsr ShowDino
wait ; or waitRTC ? wait ; or waitRTC ?
key key
mva #>font2 chbas mva #>font2 chbas
@@ -100,17 +118,13 @@ EndLoop
; By copying and horizontal shift dino ; By copying and horizontal shift dino
;----------------------------------------------- ;-----------------------------------------------
.proc GenerateCharsets .proc GenerateCharsets
; copy charset 1 to 2,3 and 4 ; copy charset 1 to 2,3 and 4 (but not dino chars)
ldy #0 ldy #0
CopyLoop CopyLoop
lda font1,y lda font1,y
sta font2,y sta font2,y
sta font3,y sta font3,y
sta font4,y sta font4,y
lda font1+$100,y
sta font2+$100,y
sta font3+$100,y
sta font4+$100,y
lda font1+$200,y lda font1+$200,y
sta font2+$200,y sta font2+$200,y
sta font3+$200,y sta font3+$200,y
@@ -121,20 +135,106 @@ CopyLoop
sta font4+$300,y sta font4+$300,y
iny iny
bne CopyLoop bne CopyLoop
; and shifting dino shape
rts rts
.endp .endp
;-----------------------------------------------
.proc ClearWorld
ldy #63 ; world size
lda #0 ; ground
@ sta WorldTable,y
dey
bpl @-
rts
.endp
.proc ClearScreen
ldy #64
lda #0
ClearLoop
sta screen+$700,y
sta screen+$600,y
sta screen+$500,y
sta screen+$400,y
sta screen+$300,y
dey
bpl ClearLoop
rts
.endp
;-----------------------------------------------
.proc WorldToScreen
jsr ClearScreen
ldx #0 ; start position
stx temp_b
ToScreenLoop
lda WorldTable,x
bmi NothingToDraw
tay
jsr ShowObject
NothingToDraw
inc temp_b
ldx temp_b
cpx #64
bne ToScreenLoop
rts
.endp
;-----------------------------------------------
.proc WorldShift
ldy #0
Shift
lda WorldTable+1,y
sta WorldTable,y
iny
cpy #63
bne Shift
lda #0 ;ground
sta WorldTable,y
; now we can insert random object to world end
rts
.endp
;-----------------------------------------------
; Show Object on screen (test)
; X - y position
; Y - shape nr
;-----------------------------------------------
.proc ShowObject
lda ShapesTableL,y
sta temp_w
lda ShapesTableH,y
sta temp_w+1
ldy #0
ObjectLoop
lda (temp_w),y
bmi @+
sta screen+$400,x
@ adw temp_w #2
lda (temp_w),y
bmi @+
sta screen+$500,x
@ adw temp_w #2
lda (temp_w),y
bmi @+
sta screen+$600,x
@ adw temp_w #2
lda (temp_w),y
bmi @+
sta screen+$700,x
@ sbw temp_w #6
inx
iny
cpy #2 ; object width
bne ObjectLoop
rts
.endp
;----------------------------------------------- ;-----------------------------------------------
; Show Dino on screen (test) ; Show Dino on screen (test)
; X - y position ; X - y position
; Y - shape nr ; Y - shape nr
;----------------------------------------------- ;-----------------------------------------------
.proc ShowDino .proc ShowDino
lda ShapesTableL,y lda DinoShapesTableL,y
sta temp_w sta temp_w
lda ShapesTableH,y lda DinoShapesTableH,y
sta temp_w+1 sta temp_w+1
ldy #0 ldy #0
DinoLoop DinoLoop
+51 -26
View File
@@ -1,5 +1,6 @@
mads 2.1.7 build 3 (13 Sep 23) mads 2.1.7 build 3 (13 Sep 23)
Label table: Label table:
00 0008 SCR_HEIGHT
00 E400 EDITRV 00 E400 EDITRV
00 E410 SCRENV 00 E410 SCRENV
00 E420 KEYBDV 00 E420 KEYBDV
@@ -574,35 +575,59 @@ FFFD 0000 @KBCODE
00 0021 @KBCODE._SPACE 00 0021 @KBCODE._SPACE
00 009B EOL 00 009B EOL
00 0080 TEMP_W 00 0080 TEMP_W
00 0082 TEMP_B
00 2000 FONT1 00 2000 FONT1
00 2400 FONT2 00 2400 FONT2
00 2800 FONT3 00 2800 FONT3
00 2C00 FONT4 00 2C00 FONT4
00 3000 SCREEN 00 3000 SCREEN
00 3800 GAMEDL 00 3800 GAMEDL
00 3806 LINE1_ADDR 00 3806 LINE0_ADDR
00 3809 LINE2_ADDR 00 3809 LINE1_ADDR
00 380C LINE3_ADDR 00 380C LINE2_ADDR
00 380F LINE4_ADDR 00 380F LINE3_ADDR
00 3812 LINE5_ADDR 00 3812 LINE4_ADDR
00 3815 LINE6_ADDR 00 3815 LINE5_ADDR
00 3818 LINE7_ADDR 00 3818 LINE6_ADDR
00 381B LINE8_ADDR 00 381B LINE7_ADDR
00 3820 FIRSTSTART 00 3820 WORLDTABLE
00 384B ENDLOOP 00 3860 FIRSTSTART
00 3926 GENERATECHARSETS 00 38A0 ENDLOOP
00 3928 GENERATECHARSETS.COPYLOOP 00 3988 GENERATECHARSETS
00 395C SHOWDINO 00 398A GENERATECHARSETS.COPYLOOP
00 3968 SHOWDINO.DINOLOOP 00 39B2 CLEARWORLD
00 396F SHOWDINO.0@ 00 39B6 CLEARWORLD.0@
00 3981 SHOWDINO.1@ 00 39BD CLEARSCREEN
00 3993 SHOWDINO.2@ 00 39C1 CLEARSCREEN.CLEARLOOP
00 39A5 SHOWDINO.3@ 00 39D4 WORLDTOSCREEN
00 39B7 SETGAMESCREEN 00 39DB WORLDTOSCREEN.TOSCREENLOOP
00 39CC DINO_RUN_0 00 39E4 WORLDTOSCREEN.NOTHINGTODRAW
00 39E0 DINO_RUN_1 00 39ED WORLDSHIFT
00 39F4 DINO_RUN_2 00 39EF WORLDSHIFT.SHIFT
00 3A08 DINO_CROUCH_1 00 3A00 SHOWOBJECT
00 3A1C DINO_CROUCH_2 00 3A0C SHOWOBJECT.OBJECTLOOP
00 3A30 SHAPESTABLEL 00 3A13 SHOWOBJECT.1@
00 3A35 SHAPESTABLEH 00 3A25 SHOWOBJECT.2@
00 3A37 SHOWOBJECT.3@
00 3A49 SHOWOBJECT.4@
00 3A5B SHOWDINO
00 3A67 SHOWDINO.DINOLOOP
00 3A6E SHOWDINO.5@
00 3A80 SHOWDINO.6@
00 3A92 SHOWDINO.7@
00 3AA4 SHOWDINO.8@
00 3AB6 SETGAMESCREEN
00 3ACB DINO_RUN_0
00 3ADF DINO_RUN_1
00 3AF3 DINO_RUN_2
00 3B07 DINO_CROUCH_1
00 3B1B DINO_CROUCH_2
00 3B2F DINOSHAPESTABLEL
00 3B34 DINOSHAPESTABLEH
00 3B39 GROUND_0
00 3B41 BIRD_0
00 3B49 BIRD_1
00 3B51 BIRD_2
00 3B59 CACTUS_0
00 3B61 SHAPESTABLEL
00 3B66 SHAPESTABLEH
+463 -314
View File
@@ -1,15 +1,17 @@
mads 2.1.7 build 3 (13 Sep 23) mads 2.1.7 build 3 (13 Sep 23)
Source: dino.asm Source: dino.asm
1 1 = 0008 SCR_HEIGHT = 8
2 ; No internet 2
3 ;--------------------------------------------------- 3 ; No internet
4 OPT r+ 4 ;---------------------------------------------------
5 5 OPT r+
6 ;--------------------------------------------------- 6
7 ; Zpage variables 7 ;---------------------------------------------------
8 .zpvar temp_w .word = $80 8 ; Zpage variables
9 ;--------------------------------------------------- 9 .zpvar temp_w .word = $80
10 icl 'lib/ATARISYS.ASM' 10 .zpvar temp_b .byte
11 ;---------------------------------------------------
12 icl 'lib/ATARISYS.ASM'
Source: ATARISYS.ASM Source: ATARISYS.ASM
1 ;**************************************************************************** 1 ;****************************************************************************
2 ;* ATARI PERSONAL COMPUTER * 2 ;* ATARI PERSONAL COMPUTER *
@@ -736,7 +738,8 @@ Source: ATARISYS.ASM
723 .ende 723 .ende
724 = 009B EOL = $9b 724 = 009B EOL = $9b
724 = 0080 TEMP_W 724 = 0080 TEMP_W
11 icl 'lib/MACRO.ASM' 724 = 0082 TEMP_B
13 icl 'lib/MACRO.ASM'
Source: MACRO.ASM Source: MACRO.ASM
1 ;------------------------------------- 1 ;-------------------------------------
2 .MACRO ROLW 2 .MACRO ROLW
@@ -920,13 +923,13 @@ Source: MACRO.ASM
180 bne ?PAUSELOOP 180 bne ?PAUSELOOP
181 .ENDM 181 .ENDM
182 182
12 ;--------------------------------------------------- 14 ;---------------------------------------------------
13 ; dark screean and BASIC off 15 ; dark screean and BASIC off
14 ORG $2000 16 ORG $2000
15 FFFF> 2000-2024> A9 00 + mva #0 dmactls ; dark screen 17 FFFF> 2000-2024> A9 00 + mva #0 dmactls ; dark screen
16 2005 A9 FF 8D 01 D3 mva #$ff portb 18 2005 A9 FF 8D 01 D3 mva #$ff portb
17 ; and wait one frame :) 19 ; and wait one frame :)
18 200A F0 13200C wait 20 200A F0 13200C wait
Macro: WAIT [Source: MACRO.ASM] Macro: WAIT [Source: MACRO.ASM]
3 200C AD 0B D4 ?ze LDA VCOUNT 3 200C AD 0B D4 ?ze LDA VCOUNT
4 200F C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection) 4 200F C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
@@ -938,332 +941,478 @@ Macro: WAIT [Source: MACRO.ASM]
10 201D B0 FB bcs ?wf 10 201D B0 FB bcs ?wf
Source: dino.asm Source: dino.asm
seq:wait ; or waitRTC ? seq:wait ; or waitRTC ?
19 201F A9 FF 8D 01 D3 mva #$ff portb ; BASIC off 21 201F A9 FF 8D 01 D3 mva #$ff portb ; BASIC off
20 2024 60 rts 22 2024 60 rts
21 02E2-02E3> 00 20 ini $2000 23 02E2-02E3> 00 20 ini $2000
22 ;--------------------------------------------------- 24 ;---------------------------------------------------
23 25
24 org $2000 26 org $2000
25 ;--------------------------------------------------- 27 ;---------------------------------------------------
26 ; 4 charsets for fine scroll 28 ; 4 charsets for fine scroll
27 2000 font1 29 2000 font1
28 2000-2FFF> 00 00 00 00 + ins 'artwork/dino1.fnt' ; 1 charset 30 2000-2FFF> 00 00 00 00 + ins 'artwork/dino1.fnt' ; 1 charset
29 = 2400 font2 = font1+$400 31 = 2400 font2 = font1+$400
30 2400 00 00 00 00 00 00 + ins 'artwork/dino2.fnt' ; 2 charset 32 2400 00 00 00 00 00 00 + ins 'artwork/dino2.fnt' ; 2 charset
31 = 2800 font3 = font2+$400 33 = 2800 font3 = font2+$400
32 2800 00 00 00 00 00 00 + ins 'artwork/dino3.fnt' ; 3 charset 34 2800 00 00 00 00 00 00 + ins 'artwork/dino3.fnt' ; 3 charset
33 = 2C00 font4 = font3+$400 35 = 2C00 font4 = font3+$400
34 2C00 00 00 00 00 00 00 + ins 'artwork/dino4.fnt' ; 4 charset 36 2C00 00 00 00 00 00 00 + ins 'artwork/dino4.fnt' ; 4 charset
35 org font4+$400 37 org font4+$400
36 ; screen data 38 ; screen data
37 ; 8 lines 256bytes each 39 ; SCR_HEIGHT lines 256bytes each
38 3000 screen 40 3000 screen
39 org screen+($100*8) 41 = 3000 .ds $100*SCR_HEIGHT
40 ; display list 42 ; display list
41 3800 GameDL 43 3800 GameDL
42 3800-3A39> 70 70 70 70 + .byte $70,$70,$70,$70,$70 ; empty lines 44 3800-3B6A> 70 70 70 70 + :5 .byte SKIP8 ; empty lines
43 3805 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL 45
44 3806 line1_addr 46 .rept SCR_HEIGHT, #
45 3806 00 30 .word screen 47 .BYTE MODE2+LMS+SCH
46 3808 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL 48 LINE:1_ADDR
47 3809 line2_addr 49 .WORD SCREEN+$100*#
48 3809 00 31 .word screen+$100 50 .endr
49 380B 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL Source: REPT
50 380C line3_addr 47 3805 52 .BYTE MODE2+LMS+SCH
51 380C 00 32 .word screen+$200 47 3806 LINE0_ADDR
52 380E 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL 47 3806 00 30 .WORD SCREEN+$100*#
53 380F line4_addr 47 3808 52 .BYTE MODE2+LMS+SCH
54 380F 00 33 .word screen+$300 47 3809 LINE1_ADDR
55 3811 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL 47 3809 00 31 .WORD SCREEN+$100*#
56 3812 line5_addr 47 380B 52 .BYTE MODE2+LMS+SCH
57 3812 00 34 .word screen+$400 47 380C LINE2_ADDR
58 3814 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL 47 380C 00 32 .WORD SCREEN+$100*#
59 3815 line6_addr 47 380E 52 .BYTE MODE2+LMS+SCH
60 3815 00 35 .word screen+$500 47 380F LINE3_ADDR
61 3817 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL 47 380F 00 33 .WORD SCREEN+$100*#
62 3818 line7_addr 47 3811 52 .BYTE MODE2+LMS+SCH
63 3818 00 36 .word screen+$600 47 3812 LINE4_ADDR
64 381A 52 .byte $02+$40+$10 ; gr.0+LMS+HSCRL 47 3812 00 34 .WORD SCREEN+$100*#
65 381B line8_addr 47 3814 52 .BYTE MODE2+LMS+SCH
66 381B 00 37 .word screen+$700 47 3815 LINE5_ADDR
67 381D 41 .byte $41 ;JVB 47 3815 00 35 .WORD SCREEN+$100*#
68 381E 00 38 .word GameDL 47 3817 52 .BYTE MODE2+LMS+SCH
69 47 3818 LINE6_ADDR
70 ;--------------------------------------------------- 47 3818 00 36 .WORD SCREEN+$100*#
71 3820 FirstSTART 47 381A 52 .BYTE MODE2+LMS+SCH
72 ;jsr GenerateCharsets 47 381B LINE7_ADDR
73 3820 20 B7 39 jsr SetGameScreen 47 381B 00 37 .WORD SCREEN+$100*#
74 3823 A2 05 ldx #5 ; position Source: dino.asm
75 3825 A0 00 ldy #0 ; shape 51 381D 41 .byte JVB
76 3827 20 5C 39 jsr ShowDino 52 381E 00 38 .word GameDL
77 382A A2 0A ldx #10 ; position 53 ;---------------------------------------------------
78 382C A0 01 ldy #1 ; shape 54 ; World table without dino
79 382E 20 5C 39 jsr ShowDino 55 3820 WorldTable
80 3831 A2 0F ldx #15 ; position 56 3820 00 00 00 00 00 00 + :64 .byte 0 ; ground
81 3833 A0 02 ldy #2 ; shape 57 ;---------------------------------------------------
82 3835 20 5C 39 jsr ShowDino 58 3860 FirstSTART
83 3838 A2 14 ldx #20 ; position 59 3860 20 88 39 jsr GenerateCharsets
84 383A A0 03 ldy #3 ; shape 60 3863 20 B2 39 jsr ClearWorld
85 383C 20 5C 39 jsr ShowDino 61 ; test only (some object in the world)
86 383F A2 19 ldx #25 ; position 62 3866 A9 01 lda #1 ;bird0
87 3841 A0 04 ldy #4 ; shape 63 3868 8D 2A 38 sta WorldTable+10
88 3843 20 5C 39 jsr ShowDino 64 386B A9 04 lda #4 ;cactus
89 3846 A9 50 8D 20 37 mva #$50 screen+$700+32 65 386D 8D 34 38 sta WorldTable+20
90 384B EndLoop 66 3870 A9 84 lda #4+$80 ; cactus (second char)
91 384B wait ; or waitRTC ? 67 3872 8D 35 38 sta WorldTable+21
68 ;
69 3875 20 B6 3A jsr SetGameScreen
70 3878 A2 05 ldx #5 ; position
71 387A A0 00 ldy #0 ; shape
72 387C 20 5B 3A jsr ShowDino
73 387F A2 0A ldx #10 ; position
74 3881 A0 01 ldy #1 ; shape
75 3883 20 5B 3A jsr ShowDino
76 3886 A2 0F ldx #15 ; position
77 3888 A0 02 ldy #2 ; shape
78 388A 20 5B 3A jsr ShowDino
79 388D A2 14 ldx #20 ; position
80 388F A0 03 ldy #3 ; shape
81 3891 20 5B 3A jsr ShowDino
82 3894 A2 19 ldx #25 ; position
83 3896 A0 04 ldy #4 ; shape
84 3898 20 5B 3A jsr ShowDino
85 389B A9 50 8D 20 37 mva #$50 screen+$700+32
86 38A0 EndLoop
87 38A0 20 ED 39 jsr WorldShift
88 38A3 20 D4 39 jsr WorldToScreen
89 38A6 A2 05 ldx #5 ; position
90 38A8 A0 00 ldy #0 ; shape
91 38AA 20 5B 3A jsr ShowDino
92 38AD wait ; or waitRTC ?
Macro: WAIT [Source: MACRO.ASM] Macro: WAIT [Source: MACRO.ASM]
3 384B AD 0B D4 ?ze LDA VCOUNT 3 38AD AD 0B D4 ?ze LDA VCOUNT
4 384E C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection) 4 38B0 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
5 3850 90 F9 bcc ?ze 5 38B2 90 F9 bcc ?ze
6 3852 E9 0A sbc #10 ; last lines correction 6 38B4 E9 0A sbc #10 ; last lines correction
7 3854 CD 0B D4 ?wa cmp VCOUNT 7 38B6 CD 0B D4 ?wa cmp VCOUNT
8 3857 90 FB bcc ?wa 8 38B9 90 FB bcc ?wa
9 3859 CD 0B D4 ?wf cmp VCOUNT 9 38BB CD 0B D4 ?wf cmp VCOUNT
10 385C B0 FB bcs ?wf 10 38BE B0 FB bcs ?wf
Source: dino.asm Source: dino.asm
92 385E key 93 38C0 key
Macro: KEY [Source: MACRO.ASM] Macro: KEY [Source: MACRO.ASM]
3 385E 48 PHA 3 38C0 48 PHA
4 385F AD 0F D2 ?CK1 LDA SKSTAT 4 38C1 AD 0F D2 ?CK1 LDA SKSTAT
5 3862 29 04 AND #$04 5 38C4 29 04 AND #$04
6 3864 F0 F9 BEQ ?CK1 6 38C6 F0 F9 BEQ ?CK1
7 3866 AD 0F D2 ?CK LDA SKSTAT 7 38C8 AD 0F D2 ?CK LDA SKSTAT
8 3869 29 04 AND #$04 8 38CB 29 04 AND #$04
9 386B D0 F9 BNE ?CK 9 38CD D0 F9 BNE ?CK
10 386D 68 PLA 10 38CF 68 PLA
Source: dino.asm Source: dino.asm
93 386E A9 24 8D F4 02 mva #>font2 chbas 94 38D0 A9 24 8D F4 02 mva #>font2 chbas
94 3873 waitRTC ; or waitRTC ? 95 38D5 waitRTC ; or waitRTC ?
Macro: WAITRTC [Source: MACRO.ASM] Macro: WAITRTC [Source: MACRO.ASM]
1 3873 A5 14 lda RTCLOK+2 1 38D5 A5 14 lda RTCLOK+2
2 3875 C5 14 ?wa cmp RTCLOK+2 2 38D7 C5 14 ?wa cmp RTCLOK+2
3 3877 F0 FC beq ?wa 3 38D9 F0 FC beq ?wa
Source: dino.asm Source: dino.asm
95 3879 A9 03 8D 04 D4 mva #3 hscrol 96 38DB A9 03 8D 04 D4 mva #3 hscrol
96 387E wait ; or waitRTC ? 97 38E0 wait ; or waitRTC ?
Macro: WAIT [Source: MACRO.ASM] Macro: WAIT [Source: MACRO.ASM]
3 387E AD 0B D4 ?ze LDA VCOUNT 3 38E0 AD 0B D4 ?ze LDA VCOUNT
4 3881 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection) 4 38E3 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
5 3883 90 F9 bcc ?ze 5 38E5 90 F9 bcc ?ze
6 3885 E9 0A sbc #10 ; last lines correction 6 38E7 E9 0A sbc #10 ; last lines correction
7 3887 CD 0B D4 ?wa cmp VCOUNT 7 38E9 CD 0B D4 ?wa cmp VCOUNT
8 388A 90 FB bcc ?wa 8 38EC 90 FB bcc ?wa
9 388C CD 0B D4 ?wf cmp VCOUNT 9 38EE CD 0B D4 ?wf cmp VCOUNT
10 388F B0 FB bcs ?wf 10 38F1 B0 FB bcs ?wf
Source: dino.asm Source: dino.asm
97 3891 key 98 38F3 key
Macro: KEY [Source: MACRO.ASM] Macro: KEY [Source: MACRO.ASM]
3 3891 48 PHA 3 38F3 48 PHA
4 3892 AD 0F D2 ?CK1 LDA SKSTAT 4 38F4 AD 0F D2 ?CK1 LDA SKSTAT
5 3895 29 04 AND #$04 5 38F7 29 04 AND #$04
6 3897 F0 F9 BEQ ?CK1 6 38F9 F0 F9 BEQ ?CK1
7 3899 AD 0F D2 ?CK LDA SKSTAT 7 38FB AD 0F D2 ?CK LDA SKSTAT
8 389C 29 04 AND #$04 8 38FE 29 04 AND #$04
9 389E D0 F9 BNE ?CK 9 3900 D0 F9 BNE ?CK
10 38A0 68 PLA 10 3902 68 PLA
Source: dino.asm Source: dino.asm
98 38A1 A9 28 8D F4 02 mva #>font3 chbas 99 3903 A9 28 8D F4 02 mva #>font3 chbas
99 38A6 waitRTC ; or waitRTC ? 100 3908 waitRTC ; or waitRTC ?
Macro: WAITRTC [Source: MACRO.ASM] Macro: WAITRTC [Source: MACRO.ASM]
1 38A6 A5 14 lda RTCLOK+2 1 3908 A5 14 lda RTCLOK+2
2 38A8 C5 14 ?wa cmp RTCLOK+2 2 390A C5 14 ?wa cmp RTCLOK+2
3 38AA F0 FC beq ?wa 3 390C F0 FC beq ?wa
Source: dino.asm Source: dino.asm
100 38AC A9 02 8D 04 D4 mva #2 hscrol 101 390E A9 02 8D 04 D4 mva #2 hscrol
101 38B1 wait ; or waitRTC ? 102 3913 wait ; or waitRTC ?
Macro: WAIT [Source: MACRO.ASM] Macro: WAIT [Source: MACRO.ASM]
3 38B1 AD 0B D4 ?ze LDA VCOUNT 3 3913 AD 0B D4 ?ze LDA VCOUNT
4 38B4 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection) 4 3916 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
5 38B6 90 F9 bcc ?ze 5 3918 90 F9 bcc ?ze
6 38B8 E9 0A sbc #10 ; last lines correction 6 391A E9 0A sbc #10 ; last lines correction
7 38BA CD 0B D4 ?wa cmp VCOUNT 7 391C CD 0B D4 ?wa cmp VCOUNT
8 38BD 90 FB bcc ?wa 8 391F 90 FB bcc ?wa
9 38BF CD 0B D4 ?wf cmp VCOUNT 9 3921 CD 0B D4 ?wf cmp VCOUNT
10 38C2 B0 FB bcs ?wf 10 3924 B0 FB bcs ?wf
Source: dino.asm Source: dino.asm
102 38C4 key 103 3926 key
Macro: KEY [Source: MACRO.ASM] Macro: KEY [Source: MACRO.ASM]
3 38C4 48 PHA 3 3926 48 PHA
4 38C5 AD 0F D2 ?CK1 LDA SKSTAT 4 3927 AD 0F D2 ?CK1 LDA SKSTAT
5 38C8 29 04 AND #$04 5 392A 29 04 AND #$04
6 38CA F0 F9 BEQ ?CK1 6 392C F0 F9 BEQ ?CK1
7 38CC AD 0F D2 ?CK LDA SKSTAT 7 392E AD 0F D2 ?CK LDA SKSTAT
8 38CF 29 04 AND #$04 8 3931 29 04 AND #$04
9 38D1 D0 F9 BNE ?CK 9 3933 D0 F9 BNE ?CK
10 38D3 68 PLA 10 3935 68 PLA
Source: dino.asm Source: dino.asm
103 38D4 A9 2C 8D F4 02 mva #>font4 chbas 104 3936 A9 2C 8D F4 02 mva #>font4 chbas
104 38D9 waitRTC ; or waitRTC ? 105 393B waitRTC ; or waitRTC ?
Macro: WAITRTC [Source: MACRO.ASM] Macro: WAITRTC [Source: MACRO.ASM]
1 38D9 A5 14 lda RTCLOK+2 1 393B A5 14 lda RTCLOK+2
2 38DB C5 14 ?wa cmp RTCLOK+2 2 393D C5 14 ?wa cmp RTCLOK+2
3 38DD F0 FC beq ?wa 3 393F F0 FC beq ?wa
Source: dino.asm Source: dino.asm
105 38DF A9 01 8D 04 D4 mva #1 hscrol 106 3941 A9 01 8D 04 D4 mva #1 hscrol
106 38E4 wait ; or waitRTC ? 107 3946 wait ; or waitRTC ?
Macro: WAIT [Source: MACRO.ASM] Macro: WAIT [Source: MACRO.ASM]
3 38E4 AD 0B D4 ?ze LDA VCOUNT 3 3946 AD 0B D4 ?ze LDA VCOUNT
4 38E7 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection) 4 3949 C9 10 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
5 38E9 90 F9 bcc ?ze 5 394B 90 F9 bcc ?ze
6 38EB E9 0A sbc #10 ; last lines correction 6 394D E9 0A sbc #10 ; last lines correction
7 38ED CD 0B D4 ?wa cmp VCOUNT 7 394F CD 0B D4 ?wa cmp VCOUNT
8 38F0 90 FB bcc ?wa 8 3952 90 FB bcc ?wa
9 38F2 CD 0B D4 ?wf cmp VCOUNT 9 3954 CD 0B D4 ?wf cmp VCOUNT
10 38F5 B0 FB bcs ?wf 10 3957 B0 FB bcs ?wf
Source: dino.asm Source: dino.asm
107 38F7 key 108 3959 key
Macro: KEY [Source: MACRO.ASM] Macro: KEY [Source: MACRO.ASM]
3 38F7 48 PHA 3 3959 48 PHA
4 38F8 AD 0F D2 ?CK1 LDA SKSTAT 4 395A AD 0F D2 ?CK1 LDA SKSTAT
5 38FB 29 04 AND #$04 5 395D 29 04 AND #$04
6 38FD F0 F9 BEQ ?CK1 6 395F F0 F9 BEQ ?CK1
7 38FF AD 0F D2 ?CK LDA SKSTAT 7 3961 AD 0F D2 ?CK LDA SKSTAT
8 3902 29 04 AND #$04 8 3964 29 04 AND #$04
9 3904 D0 F9 BNE ?CK 9 3966 D0 F9 BNE ?CK
10 3906 68 PLA 10 3968 68 PLA
Source: dino.asm Source: dino.asm
108 3907 A9 20 8D F4 02 mva #>font1 chbas 109 3969 A9 20 8D F4 02 mva #>font1 chbas
109 390C waitRTC ; or waitRTC ? 110 396E waitRTC ; or waitRTC ?
Macro: WAITRTC [Source: MACRO.ASM] Macro: WAITRTC [Source: MACRO.ASM]
1 390C A5 14 lda RTCLOK+2 1 396E A5 14 lda RTCLOK+2
2 390E C5 14 ?wa cmp RTCLOK+2 2 3970 C5 14 ?wa cmp RTCLOK+2
3 3910 F0 FC beq ?wa 3 3972 F0 FC beq ?wa
Source: dino.asm Source: dino.asm
110 3912 A9 04 8D 04 D4 mva #4 hscrol 111 3974 A9 04 8D 04 D4 mva #4 hscrol
111 3917 4C 4B 38 jmp EndLoop 112 3979 4C A0 38 jmp EndLoop
112 391A halt 113 397C halt
Macro: HALT [Source: MACRO.ASM] Macro: HALT [Source: MACRO.ASM]
1 391A ?stop 1 397C ?stop
2 391A AD 0A D2 lda RANDOM 2 397C AD 0A D2 lda RANDOM
3 391D 29 05 and #$05 3 397F 29 05 and #$05
4 391F 8D 1A D0 sta COLBAK 4 3981 8D 1A D0 sta COLBAK
5 3922 4C 1A 39 jmp ?stop 5 3984 4C 7C 39 jmp ?stop
Source: dino.asm Source: dino.asm
113 3925 60 rts 114 3987 60 rts
114 115
115 ;----------------------------------------------- 116 ;-----------------------------------------------
116 ; Generation of character sets 2,3 and 4 of 1 117 ; Generation of character sets 2,3 and 4 of 1
117 ; By copying and horizontal shift dino 118 ; By copying and horizontal shift dino
118 ;----------------------------------------------- 119 ;-----------------------------------------------
119 3926 .proc GenerateCharsets 120 3988 .proc GenerateCharsets
120 ; copy charset 1 to 2,3 and 4 121 ; copy charset 1 to 2,3 and 4 (but not dino chars)
121 3926 A0 00 ldy #0 122 3988 A0 00 ldy #0
122 3928 CopyLoop 123 398A CopyLoop
123 3928 B9 00 20 lda font1,y 124 398A B9 00 20 lda font1,y
124 392B 99 00 24 sta font2,y 125 398D 99 00 24 sta font2,y
125 392E 99 00 28 sta font3,y 126 3990 99 00 28 sta font3,y
126 3931 99 00 2C sta font4,y 127 3993 99 00 2C sta font4,y
127 3934 B9 00 21 lda font1+$100,y 128 3996 B9 00 22 lda font1+$200,y
128 3937 99 00 25 sta font2+$100,y 129 3999 99 00 26 sta font2+$200,y
129 393A 99 00 29 sta font3+$100,y 130 399C 99 00 2A sta font3+$200,y
130 393D 99 00 2D sta font4+$100,y 131 399F 99 00 2E sta font4+$200,y
131 3940 B9 00 22 lda font1+$200,y 132 39A2 B9 00 23 lda font1+$300,y
132 3943 99 00 26 sta font2+$200,y 133 39A5 99 00 27 sta font2+$300,y
133 3946 99 00 2A sta font3+$200,y 134 39A8 99 00 2B sta font3+$300,y
134 3949 99 00 2E sta font4+$200,y 135 39AB 99 00 2F sta font4+$300,y
135 394C B9 00 23 lda font1+$300,y 136 39AE C8 iny
136 394F 99 00 27 sta font2+$300,y 137 39AF D0 D9 bne CopyLoop
137 3952 99 00 2B sta font3+$300,y 138
138 3955 99 00 2F sta font4+$300,y 139 39B1 60 rts
139 3958 C8 iny 140 .endp
140 3959 D0 CD bne CopyLoop 141 ;-----------------------------------------------
141 ; and shifting dino shape 142 39B2 .proc ClearWorld
142 143 39B2 A0 3F ldy #63 ; world size
143 395B 60 rts 144 39B4 A9 00 lda #0 ; ground
144 .endp 145 39B6 99 20 38 @ sta WorldTable,y
145 146 39B9 88 dey
146 ;----------------------------------------------- 147 39BA 10 FA bpl @-
147 ; Show Dino on screen (test) 148 39BC 60 rts
148 ; X - y position 149 .endp
149 ; Y - shape nr 150 39BD .proc ClearScreen
150 ;----------------------------------------------- 151 39BD A0 40 ldy #64
151 395C .proc ShowDino 152 39BF A9 00 lda #0
152 395C B9 30 3A lda ShapesTableL,y 153 39C1 ClearLoop
153 395F 85 80 sta temp_w 154 39C1 99 00 37 sta screen+$700,y
154 3961 B9 35 3A lda ShapesTableH,y 155 39C4 99 00 36 sta screen+$600,y
155 3964 85 81 sta temp_w+1 156 39C7 99 00 35 sta screen+$500,y
156 3966 A0 00 ldy #0 157 39CA 99 00 34 sta screen+$400,y
157 3968 DinoLoop 158 39CD 99 00 33 sta screen+$300,y
158 3968 B1 80 lda (temp_w),y 159 39D0 88 dey
159 396A 30 03 bmi @+ 160 39D1 10 EE bpl ClearLoop
160 396C 9D 00 34 sta screen+$400,x 161 39D3 60 rts
161 396F 18 A5 80 69 05 85 + @ adw temp_w #5 162 .endp
162 397A B1 80 lda (temp_w),y 163 ;-----------------------------------------------
163 397C 30 03 bmi @+ 164 39D4 .proc WorldToScreen
164 397E 9D 00 35 sta screen+$500,x 165 39D4 20 BD 39 jsr ClearScreen
165 3981 18 A5 80 69 05 85 + @ adw temp_w #5 166 39D7 A2 00 ldx #0 ; start position
166 398C B1 80 lda (temp_w),y 167 39D9 86 82 stx temp_b
167 398E 30 03 bmi @+ 168 39DB ToScreenLoop
168 3990 9D 00 36 sta screen+$600,x 169 39DB BD 20 38 lda WorldTable,x
169 3993 18 A5 80 69 05 85 + @ adw temp_w #5 170 39DE 30 04 bmi NothingToDraw
170 399E B1 80 lda (temp_w),y 171 39E0 A8 tay
171 39A0 30 03 bmi @+ 172 39E1 20 00 3A jsr ShowObject
172 39A2 9D 00 37 sta screen+$700,x 173 39E4 NothingToDraw
173 39A5 38 A5 80 E9 0F 85 + @ sbw temp_w #15 174 39E4 E6 82 inc temp_b
174 39B0 E8 inx 175 39E6 A6 82 ldx temp_b
175 39B1 C8 iny 176 39E8 E0 40 cpx #64
176 39B2 C0 05 cpy #5 ; dino width 177 39EA D0 EF bne ToScreenLoop
177 39B4 D0 B2 bne DinoLoop 178 39EC 60 rts
178 39B6 60 rts
179 .endp 179 .endp
180 ;----------------------------------------------- 180 ;-----------------------------------------------
181 ; Generation of character sets 2,3 and 4 of 1 181 39ED .proc WorldShift
182 ; By copying and horizontal shift dino 182 39ED A0 00 ldy #0
183 ;----------------------------------------------- 183 39EF Shift
184 39B7 .proc SetGameScreen 184 39EF B9 21 38 lda WorldTable+1,y
185 39B7 A9 00 8D 30 02 A9 + mwa #GameDL dlptrs 185 39F2 99 20 38 sta WorldTable,y
186 39C1 A9 3E lda #%00111110 ; normal screen width, DL on, P/M on 186 39F5 C8 iny
187 39C3 8D 2F 02 sta dmactls 187 39F6 C0 3F cpy #63
188 39C6 A9 20 8D F4 02 mva #>font1 chbas 188 39F8 D0 F5 bne Shift
189 39CB 60 rts 189 39FA A9 00 lda #0 ;ground
190 .endp 190 39FC 99 20 38 sta WorldTable,y
191 ;-------------------------------------------------- 191 ; now we can insert random object to world end
192 39CC icl 'artwork/shapes.asm' 192
193 39FF 60 rts
194 .endp
195 ;-----------------------------------------------
196 ; Show Object on screen (test)
197 ; X - y position
198 ; Y - shape nr
199 ;-----------------------------------------------
200 3A00 .proc ShowObject
201 3A00 B9 61 3B lda ShapesTableL,y
202 3A03 85 80 sta temp_w
203 3A05 B9 66 3B lda ShapesTableH,y
204 3A08 85 81 sta temp_w+1
205 3A0A A0 00 ldy #0
206 3A0C ObjectLoop
207 3A0C B1 80 lda (temp_w),y
208 3A0E 30 03 bmi @+
209 3A10 9D 00 34 sta screen+$400,x
210 3A13 18 A5 80 69 02 85 + @ adw temp_w #2
211 3A1E B1 80 lda (temp_w),y
212 3A20 30 03 bmi @+
213 3A22 9D 00 35 sta screen+$500,x
214 3A25 18 A5 80 69 02 85 + @ adw temp_w #2
215 3A30 B1 80 lda (temp_w),y
216 3A32 30 03 bmi @+
217 3A34 9D 00 36 sta screen+$600,x
218 3A37 18 A5 80 69 02 85 + @ adw temp_w #2
219 3A42 B1 80 lda (temp_w),y
220 3A44 30 03 bmi @+
221 3A46 9D 00 37 sta screen+$700,x
222 3A49 38 A5 80 E9 06 85 + @ sbw temp_w #6
223 3A54 E8 inx
224 3A55 C8 iny
225 3A56 C0 02 cpy #2 ; object width
226 3A58 D0 B2 bne ObjectLoop
227 3A5A 60 rts
228 .endp
229 ;-----------------------------------------------
230 ; Show Dino on screen (test)
231 ; X - y position
232 ; Y - shape nr
233 ;-----------------------------------------------
234 3A5B .proc ShowDino
235 3A5B B9 2F 3B lda DinoShapesTableL,y
236 3A5E 85 80 sta temp_w
237 3A60 B9 34 3B lda DinoShapesTableH,y
238 3A63 85 81 sta temp_w+1
239 3A65 A0 00 ldy #0
240 3A67 DinoLoop
241 3A67 B1 80 lda (temp_w),y
242 3A69 30 03 bmi @+
243 3A6B 9D 00 34 sta screen+$400,x
244 3A6E 18 A5 80 69 05 85 + @ adw temp_w #5
245 3A79 B1 80 lda (temp_w),y
246 3A7B 30 03 bmi @+
247 3A7D 9D 00 35 sta screen+$500,x
248 3A80 18 A5 80 69 05 85 + @ adw temp_w #5
249 3A8B B1 80 lda (temp_w),y
250 3A8D 30 03 bmi @+
251 3A8F 9D 00 36 sta screen+$600,x
252 3A92 18 A5 80 69 05 85 + @ adw temp_w #5
253 3A9D B1 80 lda (temp_w),y
254 3A9F 30 03 bmi @+
255 3AA1 9D 00 37 sta screen+$700,x
256 3AA4 38 A5 80 E9 0F 85 + @ sbw temp_w #15
257 3AAF E8 inx
258 3AB0 C8 iny
259 3AB1 C0 05 cpy #5 ; dino width
260 3AB3 D0 B2 bne DinoLoop
261 3AB5 60 rts
262 .endp
263 ;-----------------------------------------------
264 ; Generation of character sets 2,3 and 4 of 1
265 ; By copying and horizontal shift dino
266 ;-----------------------------------------------
267 3AB6 .proc SetGameScreen
268 3AB6 A9 00 8D 30 02 A9 + mwa #GameDL dlptrs
269 3AC0 A9 3E lda #%00111110 ; normal screen width, DL on, P/M on
270 3AC2 8D 2F 02 sta dmactls
271 3AC5 A9 20 8D F4 02 mva #>font1 chbas
272 3ACA 60 rts
273 .endp
274 ;--------------------------------------------------
275 3ACB icl 'artwork/shapes.asm'
Source: shapes.asm Source: shapes.asm
1 ; @com.wudsn.ide.asm.mainsourcefile=scorch.asm 1 ; @com.wudsn.ide.asm.mainsourcefile=dino.asm
2 2
3 .IF *>0 ;this is a trick that prevents compiling this file alone 3 .IF *>0 ;this is a trick that prevents compiling this file alone
4 4
5 ; dno run 5 ; dno run
6 39CC dino_run_0 ; anly '0' jumps 6 3ACB dino_run_0 ; anly '0' jumps
7 39CC FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. ' 7 3ACB FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. .'
8 39D1 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## ' 8 3AD0 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## .'
9 39D6 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .' 9 3AD5 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## ..'
10 39DB 22 26 2A FF FF .by $22, $26, $2a, $ff, $ff ; '## .' 10 3ADA 22 26 2A FF FF .by $22, $26, $2a, $ff, $ff ; '## ..'
11 39E0 dino_run_1 11 3ADF dino_run_1
12 39E0 FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. ' 12 3ADF FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. .'
13 39E5 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## ' 13 3AE4 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## .'
14 39EA 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .' 14 3AE9 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## ..'
15 39EF 2D 2E 2F FF FF .by $2d, $2e, $2f, $ff, $ff ; '## .' 15 3AEE 2D 2E 2F FF FF .by $2d, $2e, $2f, $ff, $ff ; '## ..'
16 39F4 dino_run_2 16 3AF3 dino_run_2
17 39F4 FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. ' 17 3AF3 FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. .'
18 39F9 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## ' 18 3AF8 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## .'
19 39FE 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## .' 19 3AFD 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## ..'
20 3A03 30 31 32 FF FF .by $30, $31, $32, $ff, $ff ; '## .' 20 3B02 30 31 32 FF FF .by $30, $31, $32, $ff, $ff ; '## ..'
21 3A08 dino_crouch_1 21 3B07 dino_crouch_1
22 3A08 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff 22 3B07 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff ; '.....'
23 3A0D FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff 23 3B0C FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff ; '.....'
24 3A12 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### ' 24 3B11 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### '
25 3A17 38 39 3A 3B 3C .by $38, $39, $3a, $3b, $3c ; '#### ' 25 3B16 38 39 3A 3B 3C .by $38, $39, $3a, $3b, $3c ; '#### '
26 3A1C dino_crouch_2 26 3B1B dino_crouch_2
27 3A1C FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff 27 3B1B FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff ; '.....'
28 3A21 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff 28 3B20 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff ; '.....'
29 3A26 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### ' 29 3B25 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### '
30 3A2B 3D 3E 3F 3B 3C .by $3d, $3e, $3f, $3b, $3c ; '#### ' 30 3B2A 3D 3E 3F 3B 3C .by $3d, $3e, $3f, $3b, $3c ; '#### '
31 3A30 ShapesTableL 31 3B2F DinoShapesTableL
32 3A30 CC .by <dino_run_0 32 3B2F CB .by <dino_run_0
33 3A31 E0 .by <dino_run_1 33 3B30 DF .by <dino_run_1
34 3A32 F4 .by <dino_run_2 34 3B31 F3 .by <dino_run_2
35 3A33 08 .by <dino_crouch_1 35 3B32 07 .by <dino_crouch_1
36 3A34 1C .by <dino_crouch_2 36 3B33 1B .by <dino_crouch_2
37 3A35 ShapesTableH 37 3B34 DinoShapesTableH
38 3A35 39 .by >dino_run_0 38 3B34 3A .by >dino_run_0
39 3A36 39 .by >dino_run_1 39 3B35 3A .by >dino_run_1
40 3A37 39 .by >dino_run_2 40 3B36 3A .by >dino_run_2
41 3A38 3A .by >dino_crouch_1 41 3B37 3B .by >dino_crouch_1
42 3A39 3A .by >dino_crouch_2 42 3B38 3B .by >dino_crouch_2
43 43 ; other objects
44 .endif ; .IF *>0 44 3B39 ground_0
193 ;-------------------------------------------------- 45 3B39 FF FF .by $ff, $ff ; '..'
194 46 3B3B FF FF .by $ff, $ff ; '..'
195 02E0-02E1> 20 38 run FirstSTART 47 3B3D FF FF .by $ff, $ff ; '..'
48 3B3F 52 FF .by $52, $ff ; '#.'
49 3B41 bird_0
50 3B41 FF FF .by $ff, $ff ; '..'
51 3B43 FF FF .by $ff, $ff ; '..'
52 3B45 48 FF .by $48, $ff ; '#.'
53 3B47 52 FF .by $52, $ff ; '#.'
54 3B49 bird_1
55 3B49 FF FF .by $ff, $ff ; '..'
56 3B4B 48 FF .by $48, $ff ; '#.'
57 3B4D FF FF .by $ff, $ff ; '..'
58 3B4F 52 FF .by $52, $ff ; '#.'
59 3B51 bird_2
60 3B51 48 FF .by $48, $ff ; '#.'
61 3B53 FF FF .by $ff, $ff ; '..'
62 3B55 FF FF .by $ff, $ff ; ''.'
63 3B57 52 FF .by $52, $ff ; '#.'
64 3B59 cactus_0
65 3B59 FF FF .by $ff, $ff ; '..'
66 3B5B 54 54 .by $54, $54 ; '##'
67 3B5D 54 54 .by $54, $54 ; '##'
68 3B5F 52 52 .by $52, $52 ; '##'
69
70 3B61 ShapesTableL
71 3B61 39 .by <ground_0
72 3B62 41 .by <bird_0
73 3B63 49 .by <bird_1
74 3B64 51 .by <bird_2
75 3B65 59 .by <cactus_0
76 3B66 ShapesTableH
77 3B66 3B .by >ground_0
78 3B67 3B .by >bird_0
79 3B68 3B .by >bird_1
80 3B69 3B .by >bird_2
81 3B6A 3B .by >cactus_0
82
83 .endif ; .IF *>0
276 ;--------------------------------------------------
277
278 02E0-02E1> 60 38 run FirstSTART
BIN
View File
Binary file not shown.