*HISIO .INCLUDE COMMON.INC .TEXT .EVEN ;USE { m , m , ;} pea mysp BSR MAIN_INIT () BSR PAL_SET m , , clr __draw_ok MAIN_LOOP: eor #1,__2_count * m , * IFn EQ, , m , , , IFn EQ, , m , IFn EQ, , BSR MO BSR SCROLL ~no_scroll__MAIN_LOOP: move #1,__draw_ok @@: M , BRA MAIN_LOOP EXIT_MAIN m , m , DOS _EXIT *--------------- MO *() ; use{ r_nameS A2,~~sp_buf~, ;} * BSR PAL_SET move.l #0,d1 move.l #1,d2 lea __chr_data1+(100*128),a1 LP 3, d7, , , BSR JOY_GET m , M , *上か sub #2,~~y~D4 IFn GE, , @@: M , *下か add #2,~~y~D4 IFn LE, , @@: M , *左か sub #2,~~x~D3 IFn GE, , @@: M , *右か add #2,~~x~D3 IFn LE, , @@: m , *ワークには新しい仮想座標を戻す move ~~x~D3,d0 sub #_実x0,d0 m , , *d0 = d0 * 3 m , , *d0 = d0 * 32 + d0 lsr #8,d0 *d0 = d0 / 256 *=99/256 move #_実x0,d1 sub d0,d1 move d1,__GNDx sub __GNDx_old,d1 move d1,__num__GNDx_scroll *x方向にスクロールしたドット数-1か0か1が入る move __GNDx,__GNDx_old m , LP 1, d7, , , m , LP 1, d7, , , RTS () *--------------- PAL_SET * *( ~~so~D1 , ~~di~D2 ) * use d1, a2, a3 lea __d24_1+$8C60,a2 *pal_dataの先頭アドレスをにa2に lea _SP_PAL+2*16,a3 sSUPER LP 256-16-1, d1, sUSER RTS () *---------------- JOY_GET *() PUSH d0-d1 move.b __joy_state, __joy_old m , , POP d0-d1 RTS () *--------------- SP_SET *( ~~sp_buf~A2 , d1-d4 ) PUSH d3-d4 m , m , movem d1-d4,-(~~sp_buf~A2) POP d3-d4 RTS ( ~~sp_buf~A2 ) *====================== 表示 *() IFn EQ, , M , clr __draw_ok ; use{ r_nameS A2,~~sp_buf~, r_nameS A3,~~sp_reg~, ;} move #127,d0 @@: move.l -(~~sp_buf~A2),(~~sp_reg~A3)+ move.l -(~~sp_buf~A2),(~~sp_reg~A3)+ dbF d0,@B EXIT__表示 RTE () __change_crtmod dc 0 *------------------- CHANGE_CRTMOD clr __change_crtmod lea __crtmod,a1 IFn MI, , neg __crt_offs m , m , * sub d2,__GSxy RTS () *-- __crtmod dc $13b,$14b __crt_offs dc 512-336/2 *------------------ PAUSE @@ m , , , @@ m , , , @@ m , , , RTS () *-------------------- SCROLL_SPEED eor #1,__scroll_speed_flag RTS () *====================== .bss __x0 .ds.w 1 __y0 .ds.w 1 __GNDxy: __GNDx .ds.w 1 __GNDy .ds.w 1 __GNDx_old .ds.w 1 __num__GNDx_scroll .ds.w 1 *x方向にスクロールしたドット数-1か0か1が入る __draw_ok .ds.w 1 __joy_state .ds.b 1 __joy_old .ds.b 1 __2_count .ds.w 1 __sp_buf_F .ds.w 4*128 __sp_buf_B __no_縦scroll_flag .ds.w 1 __on_the_GND_flag .ds.w 1 .even __d24_1 .ds.b $9c00 *967a0+ 9C00= A03A0 __地形table& .ds.b $10000 ;data25 __地形pcg_data .ds.b $80000 ;data26 __chr_data1 .ds.b 131072 ;data28 __chr_data2 .ds.b 131072 ;data29 * $70f0, $1B70, $800, $200, $200, $3a0 .data * .even __Jx dc _実x0+104 __Jy dc _実y0+256 .stack .even .comm mystack, 1024 *スタック領域だよーん mysp .end