//------------------------------- // Snakes of Atari Island // // Author: Jakub "JKR" Krzak // Katowice, April 2012 //------------------------------- arrFields: ;### snake.atl(1292) $49 $49 $49 $49 $49 $49 $49 $49 0 $49 $49 $00 $3B $49 $3C $00 $49 $49 0 $49 $49 $49 $00 $00 $49 $49 $49 0 $49 $49 $49 $00 $00 $49 $49 $49 dta b(73) dta b(73) dta b(73) dta b(73) dta b(73) dta b(73) dta b(73) dta b(73) dta b(0) dta b(73) dta b(73) dta b(0) dta b(59) dta b(73) dta b(60) dta b(0) dta b(73) dta b(73) dta b(0) dta b(73) dta b(73) dta b(73) dta b(0) dta b(0) dta b(73) dta b(73) dta b(73) dta b(0) dta b(73) dta b(73) dta b(73) dta b(0) dta b(0) dta b(73) dta b(73) dta b(73) ;### snake.atl(1293) $49 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $49 dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) ;### snake.atl(1294) $49 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $00 $49 0 $00 $00 $00 $00 $00 $00 $00 $00 0 $00 $00 $00 $49 $49 $00 $00 $00 dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(73) dta b(0) dta b(0) dta b(0) ;### snake.atl(1295) $49 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $00 $49 0 $00 $00 $00 $00 $00 $00 $00 $00 0 $00 $00 $49 $49 $49 $49 $00 $00 dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(73) dta b(73) dta b(73) dta b(0) dta b(0) ;### snake.atl(1296) $49 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $00 $49 0 $00 $00 $00 $00 $00 $00 $00 $00 0 $00 $00 $00 $49 $49 $00 $00 $00 dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(73) dta b(0) dta b(0) dta b(0) ;### snake.atl(1297) $49 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $49 0 $49 $00 $00 $00 $00 $00 $00 $49 dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) dta b(0) dta b(73) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(0) dta b(73) ;### snake.atl(1298) $49 $49 $49 $49 $49 $49 $49 $49 0 $49 $49 $00 $3B $49 $3C $00 $49 $49 0 $49 $49 $49 $00 $00 $49 $49 $49 0 $49 $49 $49 $00 $00 $49 $49 $49 dta b(73) dta b(73) dta b(73) dta b(73) dta b(73) dta b(73) dta b(73) dta b(73) dta b(0) dta b(73) dta b(73) dta b(0) dta b(59) dta b(73) dta b(60) dta b(0) dta b(73) dta b(73) dta b(0) dta b(73) dta b(73) dta b(73) dta b(0) dta b(0) dta b(73) dta b(73) dta b(73) dta b(0) dta b(73) dta b(73) dta b(73) dta b(0) dta b(0) dta b(73) dta b(73) dta b(73) writeCredits .proc PRINT_AT 8 7 \ dta 24, c'caaaaaaaaaaaaaaaaaaaaaaf', 0 PRINT_AT 8 8 \ dta 24, c'b b', 0 PRINT_AT 8 9 \ dta 24, c'b PROGRAMMED BY JKR b', 0 PRINT_AT 8 10 \ dta 24, c'b b', 0 PRINT_AT 8 11 \ dta 24, c'b IN *MADS* ASSEMBLER b', 0 PRINT_AT 8 12 \ dta 24, c'b b', 0 PRINT_AT 8 13 \ dta 24, c'b KATOWICE, b', 0 PRINT_AT 8 14 \ dta 24, c'b b', 0 PRINT_AT 8 15 \ dta 24, c'b APRIL 2012 b', 0 PRINT_AT 8 16 \ dta 24, c'gaaaaaaaaaaaaaaaaaaaaaah', 0 rts .endp writeTitle .proc PRINT_AT 0 0 \ dta 40, c' aaa SNAKES OF ATARI ISLAND aaa ', 0 #if .byte _mute = #1 PRINT_AT 0 0 \ dta 2, c'de', 0 #end rts .endp ;------------------------------------------------------------------------- DrawArea1 .proc ;### snake.atl(1128) __x = 0 lda #0 sta __x ;### snake.atl(1134) __y = 2 jmp _lbl292 _lbl294: ;### snake.atl(1130) _scr(__x, 1) = WALL_CHR ldy #1 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1131) _scr(__x, 23) = WALL_CHR ldy #23 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1132) inc __x inc __x _lbl292: ;### snake.atl(1129) while __x <= 39 lda __x cmp #39 jeq _lbl511 jcs _lbl293 _lbl511: jmp _lbl294 _lbl293: lda #2 sta __y ;### snake.atl(1144) inc __y jmp _lbl295 ;### snake.atl(1144) inc __y _lbl300: ;### snake.atl(1136) _scr(0, __y) = WALL_CHR ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy #0 lda #chrWall sta (_arr),y ;### snake.atl(1137) _scr(39, __y) = WALL_CHR ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy #39 lda #chrWall sta (_arr),y ;### snake.atl(1138) __x = 1 lda #1 sta __x ;### snake.atl(1142) inc __y jmp _lbl297 _lbl299: ;### snake.atl(1140) _scr(__x, __y) = 0 ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #0 sta (_arr),y ;### snake.atl(1141) inc __x inc __x _lbl297: ;### snake.atl(1139) while __x <= 38 lda __x cmp #38 jeq _lbl512 jcs _lbl298 _lbl512: jmp _lbl299 _lbl298: inc __y ;### snake.atl(1144) inc __y _lbl295: ;### snake.atl(1135) while __y <= 22 lda __y cmp #22 jeq _lbl513 jcs _lbl296 _lbl513: ;### snake.atl(1144) inc __y jmp _lbl300 ;### snake.atl(1144) inc __y _lbl296: rts .endp ;------------------------------------------------------------------------- DrawArea2 .proc ;### snake.atl(1146) __x = 0 lda #0 sta __x ;### snake.atl(1156) __x = 15 jmp _lbl301 _lbl307: ;### snake.atl(1148) if __x < 7 or __x > 32 lda __x cmp #7 jcs _lbl303 jmp _lbl304 _lbl303: lda __x cmp #32 jcc _lbl305 jeq _lbl305 _lbl304: ;### snake.atl(1149) _scr(__x, 1) = WALL_CHR ldy #1 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1150) _scr(__x, 23) = WALL_CHR ldy #23 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1151) else jmp _lbl306 _lbl305: ;### snake.atl(1152) _scr(__x, 1) = 0 ldy #1 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #0 sta (_arr),y ;### snake.atl(1153) _scr(__x, 23) = 0 ldy #23 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #0 sta (_arr),y ;### snake.atl(1154) inc __x _lbl306: inc __x _lbl301: ;### snake.atl(1147) while __x <= 39 lda __x cmp #39 jeq _lbl514 jcs _lbl302 _lbl514: jmp _lbl307 _lbl302: lda #15 sta __x ;### snake.atl(1162) __y = 2 jmp _lbl308 _lbl310: ;### snake.atl(1158) _scr(__x, 1) = WALL_CHR ldy #1 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1159) _scr(__x, 23) = WALL_CHR ldy #23 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1160) inc __x inc __x _lbl308: ;### snake.atl(1157) while __x <= 24 lda __x cmp #24 jeq _lbl515 jcs _lbl309 _lbl515: jmp _lbl310 _lbl309: lda #2 sta __y ;### snake.atl(1172) inc __y jmp _lbl311 ;### snake.atl(1172) inc __y _lbl316: ;### snake.atl(1164) _scr(0, __y) = WALL_CHR ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy #0 lda #chrWall sta (_arr),y ;### snake.atl(1165) _scr(39, __y) = WALL_CHR ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy #39 lda #chrWall sta (_arr),y ;### snake.atl(1166) __x = 1 lda #1 sta __x ;### snake.atl(1170) inc __y jmp _lbl313 _lbl315: ;### snake.atl(1168) _scr(__x, __y) = 0 ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #0 sta (_arr),y ;### snake.atl(1169) inc __x inc __x _lbl313: ;### snake.atl(1167) while __x <= 38 lda __x cmp #38 jeq _lbl516 jcs _lbl314 _lbl516: jmp _lbl315 _lbl314: inc __y ;### snake.atl(1172) inc __y _lbl311: ;### snake.atl(1163) while __y <= 22 lda __y cmp #22 jeq _lbl517 jcs _lbl312 _lbl517: ;### snake.atl(1172) inc __y jmp _lbl316 ;### snake.atl(1172) inc __y _lbl312: rts .endp ;------------------------------------------------------------------------- DrawArea3 .proc ;### snake.atl(1174) __x = 0 lda #0 sta __x ;### snake.atl(1184) __y = 2 jmp _lbl317 _lbl323: ;### snake.atl(1176) if __x < 16 or __x > 24 lda __x cmp #16 jcs _lbl319 jmp _lbl320 _lbl319: lda __x cmp #24 jcc _lbl321 jeq _lbl321 _lbl320: ;### snake.atl(1177) _scr(__x, 1) = WALL_CHR ldy #1 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1178) _scr(__x, 23) = WALL_CHR ldy #23 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1179) else jmp _lbl322 _lbl321: ;### snake.atl(1180) _scr(__x, 1) = 0 ldy #1 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #0 sta (_arr),y ;### snake.atl(1181) _scr(__x, 23) = 0 ldy #23 lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #0 sta (_arr),y ;### snake.atl(1182) inc __x _lbl322: inc __x _lbl317: ;### snake.atl(1175) while __x <= 39 lda __x cmp #39 jeq _lbl518 jcs _lbl318 _lbl518: jmp _lbl323 _lbl318: lda #2 sta __y ;### snake.atl(1197) inc __y jmp _lbl324 ;### snake.atl(1197) inc __y _lbl333: ;### snake.atl(1186) if __y < 9 or __y > 15 lda __y cmp #9 jcs _lbl326 jmp _lbl327 _lbl326: lda __y cmp #15 jcc _lbl328 jeq _lbl328 _lbl327: ;### snake.atl(1187) _scr(0, __y) = WALL_CHR ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy #0 lda #chrWall sta (_arr),y ;### snake.atl(1188) _scr(39, __y) = WALL_CHR ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy #39 lda #chrWall sta (_arr),y ;### snake.atl(1189) else jmp _lbl329 _lbl328: ;### snake.atl(1190) _scr(0, __y) = 0 ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy #0 lda #0 sta (_arr),y ;### snake.atl(1191) _scr(39, __y) = 0 ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy #39 lda #0 sta (_arr),y ;### snake.atl(1192) __x = 1 _lbl329: lda #1 sta __x ;### snake.atl(1196) inc __y jmp _lbl330 _lbl332: ;### snake.atl(1194) _scr(__x, __y) = 0 ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #0 sta (_arr),y ;### snake.atl(1195) inc __x inc __x _lbl330: ;### snake.atl(1193) while __x <= 38 lda __x cmp #38 jeq _lbl519 jcs _lbl331 _lbl519: jmp _lbl332 _lbl331: inc __y ;### snake.atl(1197) inc __y _lbl324: ;### snake.atl(1185) while __y <= 22 lda __y cmp #22 jeq _lbl520 jcs _lbl325 _lbl520: ;### snake.atl(1197) inc __y jmp _lbl333 ;### snake.atl(1197) inc __y _lbl325: rts .endp ;------------------------------------------------------------------------- DrawArea4 .proc ;### snake.atl(1200) drawArea3 jsr drawArea3 ;### snake.atl(1202) __x = 15 lda #15 sta __x ;### snake.atl(1210) __x = 19 jmp _lbl334 _lbl339: ;### snake.atl(1204) __y = 11 lda #11 sta __y ;### snake.atl(1208) inc __x jmp _lbl336 _lbl338: ;### snake.atl(1206) _scr(__x, __y) = WALL_CHR ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1207) inc __y inc __y _lbl336: ;### snake.atl(1205) while __y <= 13 lda __y cmp #13 jeq _lbl521 jcs _lbl337 _lbl521: jmp _lbl338 _lbl337: inc __x _lbl334: ;### snake.atl(1203) while __x <= 25 lda __x cmp #25 jeq _lbl522 jcs _lbl335 _lbl522: jmp _lbl339 _lbl335: lda #19 sta __x ;### snake.atl(1219) inc __x jmp _lbl340 ;### snake.atl(1219) inc __x _lbl345: ;### snake.atl(1212) __y = 8 lda #8 sta __y ;### snake.atl(1216) inc __x jmp _lbl342 _lbl344: ;### snake.atl(1214) _scr(__x, __y) = WALL_CHR ldy __y lda _scr_lo,y sta _arr lda _scr_hi,y sta _arr+1 ldy __x lda #chrWall sta (_arr),y ;### snake.atl(1215) inc __y inc __y _lbl342: ;### snake.atl(1213) while __y <= 16 lda __y cmp #16 jeq _lbl523 jcs _lbl343 _lbl523: jmp _lbl344 _lbl343: inc __x ;### snake.atl(1219) inc __x _lbl340: ;### snake.atl(1211) while __x <= 21 lda __x cmp #21 jeq _lbl524 jcs _lbl341 _lbl524: ;### snake.atl(1219) inc __x jmp _lbl345 ;### snake.atl(1219) inc __x _lbl341: rts .endp