;Light v1.0 by Alban Gervaise ;made the 28/11/98 ;last released 29/11/98 include "doorsos.h" include "userlib.h" include "graphlib.h" include "sndlib.h" ; lib for the sound xdef _main xdef _comment xdef _ti89 difficulty = 50 ; you can change it to change the difficulty _main: bsr play_song2 clr.b pos bsr print_pubs bsr ini_screen bsr ini_random clr.b flag main_loop: move.l #command,-(a7) jsr doorsos::ST_showHelp lea 4(a7),a7 jsr userlib::idle_loop cmp.w #264,d0 beq exit cmp.w #338,d0 beq gauche cmp.w #344,d0 beq droite cmp.w #337,d0 beq bas cmp.w #340,d0 beq haut cmp.w #13,d0 beq select cmp.w #263,d0 beq _main bra main_loop gauche: clr.l d0 move.b pos,d0 divu #5,d0 swap d0 tst.w d0 beq main_loop sub.b #1,pos bsr ini_screen bsr play_sound2 bra main_loop droite clr.l d0 move.b pos,d0 divu #5,d0 swap d0 cmp.w #4,d0 beq main_loop add.b #1,pos bsr ini_screen bsr play_sound2 bra main_loop bas cmp.b #5,pos blt main_loop sub.b #5,pos bsr ini_screen bsr play_sound2 bra main_loop haut cmp.b #20,pos bge main_loop add.b #5,pos bsr ini_screen bsr play_sound2 bra main_loop select clr.l d0 clr.l d1 move.b pos,d1 divu #5,d1 mulu #2,d1 move.b pos,d0 add.b d1,d0 move.l #terrain+8,a0 add.l d0,a0 bchg #0,(a0) bchg #0,-1(a0) bchg #0,1(a0) bchg #0,-6(a0) bchg #0,6(a0) bchg #0,7(a0) bchg #0,-7(a0) bchg #0,8(a0) bchg #0,-8(a0) bsr ini_screen tst.b flag bne fin bsr play_sound1 move.l #terrain+8,a0 move.w #4,d7 check1 move.w #4,d6 check2 move.b (a0)+,d5 tst.b d5 beq main_loop dbra d6,check2 lea 2(a0),a0 dbra d7,check1 move.w #2,-(a7) jsr doorsos::FontSetSys move.w #4,-(a7) pea win_str(pc) move.w #80,-(a7) move.w #15,-(a7) jsr doorsos::DrawStrXY bsr play_song1 move.l #press_str,-(a7) jsr doorsos::ST_showHelp lea 16(a7),a7 jsr userlib::idle_loop bra _main exit bsr play_song3 fin rts ini_screen: move.w #62,d0 move.w #24,d1 move.w #41,d2 move.w #41,d3 move.w #1,d4 jsr graphlib::fill move.w #62,d0 move.w #24,d1 move.w #41,d4 move.w #41,d5 jsr graphlib::frame move.l #terrain+8,a6 move.w #63,d0 move.w #25,d1 move.w #4,d7 verti move.w #4,d6 horiz move.b (a6)+,d5 tst.B d5 beq passe move.b #%11111111,d3 move.l #sprite,a0 jsr graphlib::put_sprite_mask passe: add.w #8,d0 dbra d6,horiz add.w #8,d1 moveq #63,d0 lea 2(a6),a6 dbra d7,verti clr.l d0 move.b pos,d0 bsr convert_pos move.l #cur,a0 moveq #0,d3 jsr graphlib::put_sprite_mask rts ini_random move.l #change_str,-(a7) jsr doorsos::ST_showHelp lea 4(a7),a7 move.w #difficulty,d7 move.b d7,flag loopini move.w #24,d0 jsr userlib::random move.b d0,pos movem d7,-(a7) bsr play_sound2 bsr select movem (a7)+,d7 dbra d7,loopini bsr print_pubs bsr ini_screen rts print_pubs: jsr graphlib::clr_scr move.w #2,-(a7) jsr doorsos::FontSetSys move.w #4,-(a7) pea pub(pc) clr.w -(a7) move.w #15,-(a7) jsr doorsos::DrawStrXY clr.w -(a7) jsr doorsos::FontSetSys move.w #4,-(a7) pea pub_1(pc) move.w #10,-(a7) move.w #15,-(a7) jsr doorsos::DrawStrXY lea 24(a7),a7 rts ;лллллллллллллл SOUNDS лллллллллллллллл play_sound1: moveq #50,d0 move.l #10000,d1 jsr sndlib::Beep rts play_sound2: moveq #71,d0 move.l #10000,d1 jsr sndlib::Beep rts play_song1: clr.l d0 move.w #254,d7 loopsnd move.l #2500,d1 jsr sndlib::Beep addq #1,d0 dbra d7,loopsnd rts play_song2: clr.l d0 moveq #25,d7 loopsg2 move.l #2500,d1 jsr sndlib::Beep sub.b #10,d0 dbra d7,loopsg2 rts play_song3: clr.l d0 moveq #25,d7 loopsg3 move.l #2500,d1 jsr sndlib::Beep add.b #10,d0 dbra d7,loopsg3 rts convert_pos: clr.l d1 divu #5,d0 move.b d0,d1 mulu #8,d1 add.w #25,d1 clr.w d0 swap d0 mulu #8,d0 add.w #63,d0 rts sprite dc.w 8 dc.w 1 dc.b %00111100 dc.b %01111110 dc.b %11100111 dc.b %11011011 dc.b %11011011 dc.B %11100111 dc.b %01111110 dc.B %00111100 cur dc.w 8 dc.w 1 dc.b %11100111 dc.b %10000001 dc.b %10000001 dc.b %00000000 dc.b %00000000 dc.b %10000001 dc.b %10000001 dc.b %11100111 win_str dc.b "CONGRATULATIONS!!",0 press_str dc.B "press a key",0 change_str dc.b "change status...",0 pub dc.b "Light with sound!",0 pub_1 dc.b "v1.0 by Endive ",0 command dc.b 17,18,23,24,":move \ Enter:select \ Esc:quit",0 terrain dc.b 0,0,0,0,0,0,0 ; I want to put it in BSS but there are bug...? dc.b 0,0,0,0,0,0,0 ; If someone knows why! dc.b 0,0,0,0,0,0,0 dc.b 0,0,0,0,0,0,0 dc.b 0,0,0,0,0,0,0 dc.b 0,0,0,0,0,0,0 dc.b 0,0,0,0,0,0,0 _comment dc.B "Light v1.0 with sound! by Endive",0 BSS flag ds.b 1 pos ds.b 1 end ;made by Alban Gervaise