mirror of
https://github.com/jeremysrand/colourgo.git
synced 2024-05-31 21:41:29 +00:00
343 lines
12 KiB
ArmAsm
343 lines
12 KiB
ArmAsm
;
|
|
; main.s
|
|
; colourgo
|
|
;
|
|
; Created by Jeremy Rand on 2017-07-19.
|
|
; Copyright © 2017 Jeremy Rand. All rights reserved.
|
|
;
|
|
|
|
|
|
.export _game
|
|
|
|
.include "apple2.inc"
|
|
|
|
|
|
COUT = $fded
|
|
KEYBOARD = $c000
|
|
STROBE = $c010
|
|
|
|
MAXY=191
|
|
MAXXBYTE=40
|
|
MAXX=280
|
|
|
|
ZPADDR=$80
|
|
|
|
LINE0 = $2000
|
|
LINE1 = LINE0 + 1024
|
|
LINE2 = LINE1 + 1024
|
|
LINE3 = LINE2 + 1024
|
|
LINE4 = LINE3 + 1024
|
|
LINE5 = LINE4 + 1024
|
|
LINE6 = LINE5 + 1024
|
|
LINE7 = LINE6 + 1024
|
|
LINE8 = LINE0 + 128
|
|
LINE9 = LINE8 + 1024
|
|
LINE10 = LINE9 + 1024
|
|
LINE11 = LINE10 + 1024
|
|
LINE12 = LINE11 + 1024
|
|
LINE13 = LINE12 + 1024
|
|
LINE14 = LINE13 + 1024
|
|
LINE15 = LINE14 + 1024
|
|
LINE16 = LINE8 + 128
|
|
LINE17 = LINE16 + 1024
|
|
LINE18 = LINE17 + 1024
|
|
LINE19 = LINE18 + 1024
|
|
LINE20 = LINE19 + 1024
|
|
LINE21 = LINE20 + 1024
|
|
LINE22 = LINE21 + 1024
|
|
LINE23 = LINE22 + 1024
|
|
LINE24 = LINE16 + 128
|
|
LINE25 = LINE24 + 1024
|
|
LINE26 = LINE25 + 1024
|
|
LINE27 = LINE26 + 1024
|
|
LINE28 = LINE27 + 1024
|
|
LINE29 = LINE28 + 1024
|
|
LINE30 = LINE29 + 1024
|
|
LINE31 = LINE30 + 1024
|
|
LINE32 = LINE24 + 128
|
|
LINE33 = LINE32 + 1024
|
|
LINE34 = LINE33 + 1024
|
|
LINE35 = LINE34 + 1024
|
|
LINE36 = LINE35 + 1024
|
|
LINE37 = LINE36 + 1024
|
|
LINE38 = LINE37 + 1024
|
|
LINE39 = LINE38 + 1024
|
|
LINE40 = LINE32 + 128
|
|
LINE41 = LINE40 + 1024
|
|
LINE42 = LINE41 + 1024
|
|
LINE43 = LINE42 + 1024
|
|
LINE44 = LINE43 + 1024
|
|
LINE45 = LINE44 + 1024
|
|
LINE46 = LINE45 + 1024
|
|
LINE47 = LINE46 + 1024
|
|
LINE48 = LINE40 + 128
|
|
LINE49 = LINE48 + 1024
|
|
LINE50 = LINE49 + 1024
|
|
LINE51 = LINE50 + 1024
|
|
LINE52 = LINE51 + 1024
|
|
LINE53 = LINE52 + 1024
|
|
LINE54 = LINE53 + 1024
|
|
LINE55 = LINE54 + 1024
|
|
LINE56 = LINE48 + 128
|
|
LINE57 = LINE56 + 1024
|
|
LINE58 = LINE57 + 1024
|
|
LINE59 = LINE58 + 1024
|
|
LINE60 = LINE59 + 1024
|
|
LINE61 = LINE60 + 1024
|
|
LINE62 = LINE61 + 1024
|
|
LINE63 = LINE62 + 1024
|
|
LINE64 = LINE0 + 40
|
|
LINE65 = LINE64 + 1024
|
|
LINE66 = LINE65 + 1024
|
|
LINE67 = LINE66 + 1024
|
|
LINE68 = LINE67 + 1024
|
|
LINE69 = LINE68 + 1024
|
|
LINE70 = LINE69 + 1024
|
|
LINE71 = LINE70 + 1024
|
|
LINE72 = LINE64 + 128
|
|
LINE73 = LINE72 + 1024
|
|
LINE74 = LINE73 + 1024
|
|
LINE75 = LINE74 + 1024
|
|
LINE76 = LINE75 + 1024
|
|
LINE77 = LINE76 + 1024
|
|
LINE78 = LINE77 + 1024
|
|
LINE79 = LINE78 + 1024
|
|
LINE80 = LINE72 + 128
|
|
LINE81 = LINE80 + 1024
|
|
LINE82 = LINE81 + 1024
|
|
LINE83 = LINE82 + 1024
|
|
LINE84 = LINE83 + 1024
|
|
LINE85 = LINE84 + 1024
|
|
LINE86 = LINE85 + 1024
|
|
LINE87 = LINE86 + 1024
|
|
LINE88 = LINE80 + 128
|
|
LINE89 = LINE88 + 1024
|
|
LINE90 = LINE89 + 1024
|
|
LINE91 = LINE90 + 1024
|
|
LINE92 = LINE91 + 1024
|
|
LINE93 = LINE92 + 1024
|
|
LINE94 = LINE93 + 1024
|
|
LINE95 = LINE94 + 1024
|
|
LINE96 = LINE88 + 128
|
|
LINE97 = LINE96 + 1024
|
|
LINE98 = LINE97 + 1024
|
|
LINE99 = LINE98 + 1024
|
|
LINE100 = LINE99 + 1024
|
|
LINE101 = LINE100 + 1024
|
|
LINE102 = LINE101 + 1024
|
|
LINE103 = LINE102 + 1024
|
|
LINE104 = LINE96 + 128
|
|
LINE105 = LINE104 + 1024
|
|
LINE106 = LINE105 + 1024
|
|
LINE107 = LINE106 + 1024
|
|
LINE108 = LINE107 + 1024
|
|
LINE109 = LINE108 + 1024
|
|
LINE110 = LINE109 + 1024
|
|
LINE111 = LINE110 + 1024
|
|
LINE112 = LINE104 + 128
|
|
LINE113 = LINE112 + 1024
|
|
LINE114 = LINE113 + 1024
|
|
LINE115 = LINE114 + 1024
|
|
LINE116 = LINE115 + 1024
|
|
LINE117 = LINE116 + 1024
|
|
LINE118 = LINE117 + 1024
|
|
LINE119 = LINE118 + 1024
|
|
LINE120 = LINE112 + 128
|
|
LINE121 = LINE120 + 1024
|
|
LINE122 = LINE121 + 1024
|
|
LINE123 = LINE122 + 1024
|
|
LINE124 = LINE123 + 1024
|
|
LINE125 = LINE124 + 1024
|
|
LINE126 = LINE125 + 1024
|
|
LINE127 = LINE126 + 1024
|
|
LINE128 = LINE64 + 40
|
|
LINE129 = LINE128 + 1024
|
|
LINE130 = LINE129 + 1024
|
|
LINE131 = LINE130 + 1024
|
|
LINE132 = LINE131 + 1024
|
|
LINE133 = LINE132 + 1024
|
|
LINE134 = LINE133 + 1024
|
|
LINE135 = LINE134 + 1024
|
|
LINE136 = LINE128 + 128
|
|
LINE137 = LINE136 + 1024
|
|
LINE138 = LINE137 + 1024
|
|
LINE139 = LINE138 + 1024
|
|
LINE140 = LINE139 + 1024
|
|
LINE141 = LINE140 + 1024
|
|
LINE142 = LINE141 + 1024
|
|
LINE143 = LINE142 + 1024
|
|
LINE144 = LINE136 + 128
|
|
LINE145 = LINE144 + 1024
|
|
LINE146 = LINE145 + 1024
|
|
LINE147 = LINE146 + 1024
|
|
LINE148 = LINE147 + 1024
|
|
LINE149 = LINE148 + 1024
|
|
LINE150 = LINE149 + 1024
|
|
LINE151 = LINE150 + 1024
|
|
LINE152 = LINE144 + 128
|
|
LINE153 = LINE152 + 1024
|
|
LINE154 = LINE153 + 1024
|
|
LINE155 = LINE154 + 1024
|
|
LINE156 = LINE155 + 1024
|
|
LINE157 = LINE156 + 1024
|
|
LINE158 = LINE157 + 1024
|
|
LINE159 = LINE158 + 1024
|
|
LINE160 = LINE152 + 128
|
|
LINE161 = LINE160 + 1024
|
|
LINE162 = LINE161 + 1024
|
|
LINE163 = LINE162 + 1024
|
|
LINE164 = LINE163 + 1024
|
|
LINE165 = LINE164 + 1024
|
|
LINE166 = LINE165 + 1024
|
|
LINE167 = LINE166 + 1024
|
|
LINE168 = LINE160 + 128
|
|
LINE169 = LINE168 + 1024
|
|
LINE170 = LINE169 + 1024
|
|
LINE171 = LINE170 + 1024
|
|
LINE172 = LINE171 + 1024
|
|
LINE173 = LINE172 + 1024
|
|
LINE174 = LINE173 + 1024
|
|
LINE175 = LINE174 + 1024
|
|
LINE176 = LINE168 + 128
|
|
LINE177 = LINE176 + 1024
|
|
LINE178 = LINE177 + 1024
|
|
LINE179 = LINE178 + 1024
|
|
LINE180 = LINE179 + 1024
|
|
LINE181 = LINE180 + 1024
|
|
LINE182 = LINE181 + 1024
|
|
LINE183 = LINE182 + 1024
|
|
LINE184 = LINE176 + 128
|
|
LINE185 = LINE184 + 1024
|
|
LINE186 = LINE185 + 1024
|
|
LINE187 = LINE186 + 1024
|
|
LINE188 = LINE187 + 1024
|
|
LINE189 = LINE188 + 1024
|
|
LINE190 = LINE189 + 1024
|
|
LINE191 = LINE190 + 1024
|
|
|
|
|
|
.CODE
|
|
|
|
_game:
|
|
|
|
; Set up hires screen
|
|
|
|
jsr clearScreen
|
|
lda TXTCLR
|
|
lda MIXCLR
|
|
lda HIRES
|
|
lda LOWSCR
|
|
|
|
|
|
wait:
|
|
lda KEYBOARD
|
|
bpl wait
|
|
lda STROBE
|
|
|
|
lda TXTSET
|
|
|
|
rts
|
|
|
|
clearScreen:
|
|
ldx #0
|
|
ldy #0
|
|
|
|
@L1:
|
|
lda loAddrs,x
|
|
sta ZPADDR
|
|
lda page1HiAddrs,x
|
|
sta ZPADDR+1
|
|
|
|
lda #$0
|
|
@L2:
|
|
sta (ZPADDR),y
|
|
iny
|
|
cpy #MAXXBYTE
|
|
bne @L2
|
|
|
|
inx
|
|
cpx #MAXY
|
|
bne @L1
|
|
|
|
rts
|
|
|
|
.DATA
|
|
|
|
loAddrs:
|
|
.LOBYTES LINE0, LINE1, LINE2, LINE3, LINE4, LINE5, LINE6, LINE7
|
|
.LOBYTES LINE8, LINE9, LINE10, LINE11, LINE12, LINE13, LINE14, LINE15
|
|
.LOBYTES LINE16, LINE17, LINE18, LINE19, LINE20, LINE21, LINE22, LINE23
|
|
.LOBYTES LINE24, LINE25, LINE26, LINE27, LINE28, LINE29, LINE30, LINE31
|
|
.LOBYTES LINE32, LINE33, LINE34, LINE35, LINE36, LINE37, LINE38, LINE39
|
|
.LOBYTES LINE40, LINE41, LINE42, LINE43, LINE44, LINE45, LINE46, LINE47
|
|
.LOBYTES LINE48, LINE49, LINE50, LINE51, LINE52, LINE53, LINE54, LINE55
|
|
.LOBYTES LINE56, LINE57, LINE58, LINE59, LINE60, LINE61, LINE62, LINE63
|
|
.LOBYTES LINE64, LINE65, LINE66, LINE67, LINE68, LINE69, LINE70, LINE71
|
|
.LOBYTES LINE72, LINE73, LINE74, LINE75, LINE76, LINE77, LINE78, LINE79
|
|
.LOBYTES LINE80, LINE81, LINE82, LINE83, LINE84, LINE85, LINE86, LINE87
|
|
.LOBYTES LINE88, LINE89, LINE90, LINE91, LINE92, LINE93, LINE94, LINE95
|
|
.LOBYTES LINE96, LINE97, LINE98, LINE99, LINE100, LINE101, LINE102, LINE103
|
|
.LOBYTES LINE104, LINE105, LINE106, LINE107, LINE108, LINE109, LINE110, LINE111
|
|
.LOBYTES LINE112, LINE113, LINE114, LINE115, LINE116, LINE117, LINE118, LINE119
|
|
.LOBYTES LINE120, LINE121, LINE122, LINE123, LINE124, LINE125, LINE126, LINE127
|
|
.LOBYTES LINE128, LINE129, LINE130, LINE131, LINE132, LINE133, LINE134, LINE135
|
|
.LOBYTES LINE136, LINE137, LINE138, LINE139, LINE140, LINE141, LINE142, LINE143
|
|
.LOBYTES LINE144, LINE145, LINE146, LINE147, LINE148, LINE149, LINE150, LINE151
|
|
.LOBYTES LINE152, LINE153, LINE154, LINE155, LINE156, LINE157, LINE158, LINE159
|
|
.LOBYTES LINE160, LINE161, LINE162, LINE163, LINE164, LINE165, LINE166, LINE167
|
|
.LOBYTES LINE168, LINE169, LINE170, LINE171, LINE172, LINE173, LINE174, LINE175
|
|
.LOBYTES LINE176, LINE177, LINE178, LINE179, LINE180, LINE181, LINE182, LINE183
|
|
.LOBYTES LINE184, LINE185, LINE186, LINE187, LINE188, LINE189, LINE190, LINE191
|
|
|
|
page1HiAddrs:
|
|
.HIBYTES LINE0, LINE1, LINE2, LINE3, LINE4, LINE5, LINE6, LINE7
|
|
.HIBYTES LINE8, LINE9, LINE10, LINE11, LINE12, LINE13, LINE14, LINE15
|
|
.HIBYTES LINE16, LINE17, LINE18, LINE19, LINE20, LINE21, LINE22, LINE23
|
|
.HIBYTES LINE24, LINE25, LINE26, LINE27, LINE28, LINE29, LINE30, LINE31
|
|
.HIBYTES LINE32, LINE33, LINE34, LINE35, LINE36, LINE37, LINE38, LINE39
|
|
.HIBYTES LINE40, LINE41, LINE42, LINE43, LINE44, LINE45, LINE46, LINE47
|
|
.HIBYTES LINE48, LINE49, LINE50, LINE51, LINE52, LINE53, LINE54, LINE55
|
|
.HIBYTES LINE56, LINE57, LINE58, LINE59, LINE60, LINE61, LINE62, LINE63
|
|
.HIBYTES LINE64, LINE65, LINE66, LINE67, LINE68, LINE69, LINE70, LINE71
|
|
.HIBYTES LINE72, LINE73, LINE74, LINE75, LINE76, LINE77, LINE78, LINE79
|
|
.HIBYTES LINE80, LINE81, LINE82, LINE83, LINE84, LINE85, LINE86, LINE87
|
|
.HIBYTES LINE88, LINE89, LINE90, LINE91, LINE92, LINE93, LINE94, LINE95
|
|
.HIBYTES LINE96, LINE97, LINE98, LINE99, LINE100, LINE101, LINE102, LINE103
|
|
.HIBYTES LINE104, LINE105, LINE106, LINE107, LINE108, LINE109, LINE110, LINE111
|
|
.HIBYTES LINE112, LINE113, LINE114, LINE115, LINE116, LINE117, LINE118, LINE119
|
|
.HIBYTES LINE120, LINE121, LINE122, LINE123, LINE124, LINE125, LINE126, LINE127
|
|
.HIBYTES LINE128, LINE129, LINE130, LINE131, LINE132, LINE133, LINE134, LINE135
|
|
.HIBYTES LINE136, LINE137, LINE138, LINE139, LINE140, LINE141, LINE142, LINE143
|
|
.HIBYTES LINE144, LINE145, LINE146, LINE147, LINE148, LINE149, LINE150, LINE151
|
|
.HIBYTES LINE152, LINE153, LINE154, LINE155, LINE156, LINE157, LINE158, LINE159
|
|
.HIBYTES LINE160, LINE161, LINE162, LINE163, LINE164, LINE165, LINE166, LINE167
|
|
.HIBYTES LINE168, LINE169, LINE170, LINE171, LINE172, LINE173, LINE174, LINE175
|
|
.HIBYTES LINE176, LINE177, LINE178, LINE179, LINE180, LINE181, LINE182, LINE183
|
|
.HIBYTES LINE184, LINE185, LINE186, LINE187, LINE188, LINE189, LINE190, LINE191
|
|
|
|
page2HiAddrs:
|
|
.HIBYTES LINE0+$2000, LINE1+$2000, LINE2+$2000, LINE3+$2000, LINE4+$2000, LINE5+$2000, LINE6+$2000, LINE7+$2000
|
|
.HIBYTES LINE8+$2000, LINE9+$2000, LINE10+$2000, LINE11+$2000, LINE12+$2000, LINE13+$2000, LINE14+$2000, LINE15+$2000
|
|
.HIBYTES LINE16+$2000, LINE17+$2000, LINE18+$2000, LINE19+$2000, LINE20+$2000, LINE21+$2000, LINE22+$2000, LINE23+$2000
|
|
.HIBYTES LINE24+$2000, LINE25+$2000, LINE26+$2000, LINE27+$2000, LINE28+$2000, LINE29+$2000, LINE30+$2000, LINE31+$2000
|
|
.HIBYTES LINE32+$2000, LINE33+$2000, LINE34+$2000, LINE35+$2000, LINE36+$2000, LINE37+$2000, LINE38+$2000, LINE39+$2000
|
|
.HIBYTES LINE40+$2000, LINE41+$2000, LINE42+$2000, LINE43+$2000, LINE44+$2000, LINE45+$2000, LINE46+$2000, LINE47+$2000
|
|
.HIBYTES LINE48+$2000, LINE49+$2000, LINE50+$2000, LINE51+$2000, LINE52+$2000, LINE53+$2000, LINE54+$2000, LINE55+$2000
|
|
.HIBYTES LINE56+$2000, LINE57+$2000, LINE58+$2000, LINE59+$2000, LINE60+$2000, LINE61+$2000, LINE62+$2000, LINE63+$2000
|
|
.HIBYTES LINE64+$2000, LINE65+$2000, LINE66+$2000, LINE67+$2000, LINE68+$2000, LINE69+$2000, LINE70+$2000, LINE71+$2000
|
|
.HIBYTES LINE72+$2000, LINE73+$2000, LINE74+$2000, LINE75+$2000, LINE76+$2000, LINE77+$2000, LINE78+$2000, LINE79+$2000
|
|
.HIBYTES LINE80+$2000, LINE81+$2000, LINE82+$2000, LINE83+$2000, LINE84+$2000, LINE85+$2000, LINE86+$2000, LINE87+$2000
|
|
.HIBYTES LINE88+$2000, LINE89+$2000, LINE90+$2000, LINE91+$2000, LINE92+$2000, LINE93+$2000, LINE94+$2000, LINE95+$2000
|
|
.HIBYTES LINE96+$2000, LINE97+$2000, LINE98+$2000, LINE99+$2000, LINE100+$2000, LINE101+$2000, LINE102+$2000, LINE103+$2000
|
|
.HIBYTES LINE104+$2000, LINE105+$2000, LINE106+$2000, LINE107+$2000, LINE108+$2000, LINE109+$2000, LINE110+$2000, LINE111+$2000
|
|
.HIBYTES LINE112+$2000, LINE113+$2000, LINE114+$2000, LINE115+$2000, LINE116+$2000, LINE117+$2000, LINE118+$2000, LINE119+$2000
|
|
.HIBYTES LINE120+$2000, LINE121+$2000, LINE122+$2000, LINE123+$2000, LINE124+$2000, LINE125+$2000, LINE126+$2000, LINE127+$2000
|
|
.HIBYTES LINE128+$2000, LINE129+$2000, LINE130+$2000, LINE131+$2000, LINE132+$2000, LINE133+$2000, LINE134+$2000, LINE135+$2000
|
|
.HIBYTES LINE136+$2000, LINE137+$2000, LINE138+$2000, LINE139+$2000, LINE140+$2000, LINE141+$2000, LINE142+$2000, LINE143+$2000
|
|
.HIBYTES LINE144+$2000, LINE145+$2000, LINE146+$2000, LINE147+$2000, LINE148+$2000, LINE149+$2000, LINE150+$2000, LINE151+$2000
|
|
.HIBYTES LINE152+$2000, LINE153+$2000, LINE154+$2000, LINE155+$2000, LINE156+$2000, LINE157+$2000, LINE158+$2000, LINE159+$2000
|
|
.HIBYTES LINE160+$2000, LINE161+$2000, LINE162+$2000, LINE163+$2000, LINE164+$2000, LINE165+$2000, LINE166+$2000, LINE167+$2000
|
|
.HIBYTES LINE168+$2000, LINE169+$2000, LINE170+$2000, LINE171+$2000, LINE172+$2000, LINE173+$2000, LINE174+$2000, LINE175+$2000
|
|
.HIBYTES LINE176+$2000, LINE177+$2000, LINE178+$2000, LINE179+$2000, LINE180+$2000, LINE181+$2000, LINE182+$2000, LINE183+$2000
|
|
.HIBYTES LINE184+$2000, LINE185+$2000, LINE186+$2000, LINE187+$2000, LINE188+$2000, LINE189+$2000, LINE190+$2000, LINE191+$2000
|