; Generator, deep under Myst Island ; by deater (Vince Weaver) ; Zero Page .include "zp.inc" .include "hardware.inc" .include "common_defines.inc" .include "common_routines.inc" generator_start: ;=================== ; init screen ;=================== jsr TEXT jsr HOME bit KEYRESET bit SET_GR bit PAGE0 bit LORES bit FULLGR ;================= ; set up location ;================= lda #locations sta LOCATIONS_H lda #0 sta DRAW_PAGE sta LEVEL_OVER ; init cursor lda #20 sta CURSOR_X sta CURSOR_Y ; set up initial location jsr change_location lda #1 sta CURSOR_VISIBLE ; visible at first game_loop: ;================= ; reset things ;================= lda #0 sta IN_SPECIAL sta IN_RIGHT sta IN_LEFT ;==================================== ; copy background to current page ;==================================== jsr gr_copy_to_current ;==================================== ; handle special-case forground logic ;==================================== ; handle generator puzzle lda LOCATION cmp #GEN_TOWER1_TOP bne location_generator jsr draw_circuit_breaker jmp nothing_special location_generator: cmp #GEN_GENERATOR_ROOM bne nothing_special lda DIRECTION and #$f cmp #DIRECTION_N bne nothing_special jsr generator_update_volts jsr generator_draw_buttons jmp nothing_special nothing_special: ;==================================== ; draw pointer ;==================================== jsr draw_pointer ;==================================== ; page flip ;==================================== jsr page_flip ;==================================== ; handle keypress/joystick ;==================================== jsr handle_keypress ;==================================== ; inc frame count ;==================================== inc FRAMEL bne room_frame_no_oflo inc FRAMEH room_frame_no_oflo: ;==================================== ; check level over ;==================================== lda LEVEL_OVER bne really_exit jmp game_loop really_exit: jmp end_level ;========================== ; includes ;========================== ; graphics data .include "graphics_generator/generator_graphics.inc" ; puzzles .include "generator_puzzle.s" ; level data .include "leveldata_generator.inc" ; sound .include "simple_sounds.s"