diff --git a/libsrc/games/__bit_irqstatus.asm b/libsrc/games/__bit_irqstatus.asm index 3326cfe81be..c57d5d7135b 100644 --- a/libsrc/games/__bit_irqstatus.asm +++ b/libsrc/games/__bit_irqstatus.asm @@ -1,7 +1,7 @@ - SECTION bss_clib - PUBLIC __bit_irqstatus + SECTION bss_clib + PUBLIC __bit_irqstatus __bit_irqstatus: - defw 0 ; current irq status when DI is necessary + defw 0 ; current irq status when DI is necessary diff --git a/libsrc/games/__snd_tick.asm b/libsrc/games/__snd_tick.asm index 5370df33f4b..aa702d96c9d 100644 --- a/libsrc/games/__snd_tick.asm +++ b/libsrc/games/__snd_tick.asm @@ -1,6 +1,6 @@ - SECTION bss_clib - PUBLIC __snd_tick + SECTION bss_clib + PUBLIC __snd_tick __snd_tick: - defb 0 + defb 0 diff --git a/libsrc/games/asm_bit_beepfx.asm b/libsrc/games/asm_bit_beepfx.asm index a325636d361..1068168c3c9 100644 --- a/libsrc/games/asm_bit_beepfx.asm +++ b/libsrc/games/asm_bit_beepfx.asm @@ -15,16 +15,16 @@ ; ; =============================================================== - INCLUDE "games.inc" + INCLUDE "games.inc" - IF !__CPU_INTEL__&&!__CPU_GBZ80__&&!__CPU_RABBIT__ +IF !__CPU_INTEL__&&!__CPU_GBZ80__&&!__CPU_RABBIT__ - SECTION code_clib - SECTION code_sound_bit + SECTION code_clib + SECTION code_sound_bit - PUBLIC asm_bit_beepfx + PUBLIC asm_bit_beepfx - EXTERN bit_open, bit_close + EXTERN bit_open, bit_close asm_bit_beepfx: @@ -32,49 +32,49 @@ asm_bit_beepfx: ; ; uses : af, bc, de, hl, bc', de', hl', ix - exx + exx - call bit_open + call bit_open - and +(~SOUND_ONEBIT_mask)&0xff - ld h, a ; h'= sound_bit_state with output bit = 0 + and +(~SOUND_ONEBIT_mask)&0xff + ld h, a ; h'= sound_bit_state with output bit = 0 - IF SOUND_ONEBIT_port>=256 + IF SOUND_ONEBIT_port>=256 - ld bc, SOUND_ONEBIT_port + ld bc, SOUND_ONEBIT_port - ENDIF + ENDIF - exx + exx read_data: - ld a, (ix+0) ; a = block_type - exx - ld e, (ix+1) - ld d, (ix+2) ; de'= duration_1 - exx - ld c, (ix+3) - ld b, (ix+4) ; bc = duration_2 + ld a, (ix+0) ; a = block_type + exx + ld e, (ix+1) + ld d, (ix+2) ; de'= duration_1 + exx + ld c, (ix+3) + ld b, (ix+4) ; bc = duration_2 - dec a - jr z, sfx_routine_tone + dec a + jr z, sfx_routine_tone - dec a - jp z, sfx_routine_noise + dec a + jp z, sfx_routine_noise - dec a - jr z, sfx_routine_sample + dec a + jr z, sfx_routine_sample - exx + exx ; leave 1-bit device in 0 position - ld a, h - ONEBITOUT2 - exx + ld a, h + ONEBITOUT2 + exx - jp bit_close + jp bit_close ; ************************************************************* @@ -88,17 +88,17 @@ sfx_routine_sample: ; bc'= port_16 when sound_bit_method == 2 ; de'= duration_1 - exx + exx - ld l, SOUND_ONEBIT_mask - push de + ld l, SOUND_ONEBIT_mask + push de - exx + exx - ld l, c - ld h, b ; hl = duration_2 + ld l, c + ld h, b ; hl = duration_2 - pop bc ; bc = duration_1 + pop bc ; bc = duration_1 ; ix = & block descriptor ; hl = sample_ptr (duration_2) @@ -109,13 +109,13 @@ sfx_routine_sample: sample_loop_0: - ld e, 8 - ld d, (hl) - inc hl + ld e, 8 + ld d, (hl) + inc hl sample_loop_1: - ld a, (ix+5) + ld a, (ix+5) sample_loop_2: @@ -133,20 +133,20 @@ sample_loop_2: ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - dec a - jr nz, sample_loop_2 + dec a + jr nz, sample_loop_2 - rl d - sbc a, a + rl d + sbc a, a - exx + exx - and l ; confine to toggle bits - or h ; mix with sound_bit_state + and l ; confine to toggle bits + or h ; mix with sound_bit_state - ONEBITOUT2 + ONEBITOUT2 - exx + exx ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; note: original loop time = 72T @@ -163,8 +163,8 @@ sample_loop_2: ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - dec e - jr nz, sample_loop_1 + dec e + jr nz, sample_loop_1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; note: outer loop time = 46T @@ -180,18 +180,18 @@ sample_loop_2: ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - dec bc + dec bc - ld a, b - or c - jr nz, sample_loop_0 + ld a, b + or c + jr nz, sample_loop_0 - ld c, 6 + ld c, 6 next_data: - add ix, bc ; skip to next block - jr read_data + add ix, bc ; skip to next block + jr read_data ; ************************************************************* @@ -205,17 +205,17 @@ sfx_routine_tone: ; bc'= port_16 when sound_bit_method == 2 ; de'= duration_1 - ld e, (ix+5) - ld d, (ix+6) ; de = time_delta + ld e, (ix+5) + ld d, (ix+6) ; de = time_delta - exx + exx - ld a, (ix+9) - ld l, a ; l'= duty_count + ld a, (ix+9) + ld l, a ; l'= duty_count - exx + exx - ld hl, 0 + ld hl, 0 ; ix = & block descriptor ; hl = time_count @@ -228,24 +228,24 @@ sfx_routine_tone: tone_loop_0: - push bc ; save duration_2 + push bc ; save duration_2 tone_loop_1: - add hl, de ; time_count += time_delta - ld a, h + add hl, de ; time_count += time_delta + ld a, h - exx + exx - cp l - sbc a, a ; time_count >= duty_count ? + cp l + sbc a, a ; time_count >= duty_count ? - and SOUND_ONEBIT_mask ; set toggle bit if yes - or h ; mix with bit_state + and SOUND_ONEBIT_mask ; set toggle bit if yes + or h ; mix with bit_state - ONEBITOUT2 + ONEBITOUT2 - exx + exx ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; note: original inner loop time = 77T @@ -262,26 +262,26 @@ tone_loop_1: ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - dec bc ; duration_2 -= 1 + dec bc ; duration_2 -= 1 - ld a, b - or c - jr nz, tone_loop_1 + ld a, b + or c + jr nz, tone_loop_1 - ld c, (ix+7) ; slide - ld b, (ix+8) + ld c, (ix+7) ; slide + ld b, (ix+8) - ex de, hl - add hl, bc ; time_delta += slide - ex de, hl + ex de, hl + add hl, bc ; time_delta += slide + ex de, hl ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; delay 35T to match original routine - ld b, 2 + ld b, 2 waste_0: - djnz waste_0 - ld b, 2 + djnz waste_0 + ld b, 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; note: outer loop time = 174T @@ -297,24 +297,24 @@ waste_0: ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - exx + exx - ld a, l ; duty change - add a, (ix+10) - ld l, a + ld a, l ; duty change + add a, (ix+10) + ld l, a - dec de ; duration_1 -= 1 + dec de ; duration_1 -= 1 - ld a, d - or e + ld a, d + or e - exx + exx - pop bc ; bc = duration_2 - jr nz, tone_loop_0 + pop bc ; bc = duration_2 + jr nz, tone_loop_0 - ld bc, 11 - jr next_data + ld bc, 11 + jr next_data ; ************************************************************* @@ -329,15 +329,15 @@ sfx_routine_noise: ; bc'= port_16 when sound_bit_method == 2 ; de'= duration_1 - ld e, (ix+5) ; e = noise_period + ld e, (ix+5) ; e = noise_period - ld d, 1 - ld h, d - ld l, d + ld d, 1 + ld h, d + ld l, d - exx - ld l, SOUND_ONEBIT_mask - exx + exx + ld l, SOUND_ONEBIT_mask + exx ; ix = & block descriptor ; hl = & random_data @@ -351,32 +351,32 @@ sfx_routine_noise: noise_loop_0: - push bc ; save duration_2 + push bc ; save duration_2 noise_loop_1: - ld a, (hl) + ld a, (hl) - exx + exx - and l ; toggle bits are random - or h ; mix with bit_state + and l ; toggle bits are random + or h ; mix with bit_state - ONEBITOUT2 + ONEBITOUT2 - exx + exx - dec d ; noise_count -= 1 - jr nz, period_continue + dec d ; noise_count -= 1 + jr nz, period_continue ; noise period elapsed - ld d, e ; reset noise_period - inc hl ; advance random data pointer + ld d, e ; reset noise_period + inc hl ; advance random data pointer - ld a, h ; keep random data pointer in first 8k - and 31 - ld h, a + ld a, h ; keep random data pointer in first 8k + and 31 + ld h, a period_continue: @@ -395,21 +395,21 @@ period_continue: ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - dec bc ; duration_2 -= 1 + dec bc ; duration_2 -= 1 - ld a, b - or c - jr nz, noise_loop_1 + ld a, b + or c + jr nz, noise_loop_1 - ld a, e - add a, (ix+6) ; noise period slide - ld e, a + ld a, e + add a, (ix+6) ; noise period slide + ld e, a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; delay 17T to match original routine - ld bc, 0 - ld c, 0 + ld bc, 0 + ld c, 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; note: outer loop time = 99T @@ -425,20 +425,20 @@ period_continue: ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - pop bc ; restore duration_2 + pop bc ; restore duration_2 - exx + exx - dec de ; duration_1 -= 1 + dec de ; duration_1 -= 1 - ld a, d - or e + ld a, d + or e - exx + exx - jr nz, noise_loop_0 + jr nz, noise_loop_0 - ld bc, 7 - jp next_data + ld bc, 7 + jp next_data - ENDIF +ENDIF diff --git a/libsrc/games/beeper.asm b/libsrc/games/beeper.asm index 9f298ed5656..a806219f37c 100644 --- a/libsrc/games/beeper.asm +++ b/libsrc/games/beeper.asm @@ -3,14 +3,14 @@ ; Generic 1 bit sound functions ; - SECTION code_clib - PUBLIC beeper - PUBLIC _beeper - INCLUDE "games/games.inc" + SECTION code_clib + PUBLIC beeper + PUBLIC _beeper + INCLUDE "games/games.inc" ;EXTERN bit_open_di ;EXTERN bit_close_ei - EXTERN __snd_tick + EXTERN __snd_tick ; ; Ported by Dominic Morris @@ -24,105 +24,106 @@ beeper: _beeper: - IF __CPU_GBZ80__ - ret - ELSE - - IF __CPU_GBZ80__||__CPU_INTEL__ - ld a, l - and a - rra - and a - rra - ld c, a - ld a, l - ld l, c +IF __CPU_GBZ80__ + ret +ELSE - ELSE + IF __CPU_GBZ80__||__CPU_INTEL__ + ld a, l + and a + rra + and a + rra + ld c, a + ld a, l + ld l, c - push ix - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF - ld a, l - srl l - srl l + ELSE + push ix + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx ENDIF + ld a, l + srl l + srl l - cpl - and 3 - ld c, a - ld b, 0 - IF __CPU_GBZ80__||__CPU_INTEL__ - push hl - ld hl, beixp3 - add hl, bc - ELSE - ld ix, beixp3 - add ix, bc - ENDIF + ENDIF + + cpl + and 3 + ld c, a + ld b, 0 + IF __CPU_GBZ80__||__CPU_INTEL__ + push hl + ld hl, beixp3 + add hl, bc + ELSE + ld ix, beixp3 + add ix, bc + ENDIF ;call bit_open_di - ld a, (__snd_tick) + ld a, (__snd_tick) beixp3: - nop - nop - nop - inc b - inc c - IF __CPU_GBZ80__||__CPU_INTEL__ - ex (sp), hl - ENDIF -behllp: dec c - jr nz, behllp - ld c, $3F - dec b - jp nz, behllp - xor SOUND_ONEBIT_mask + nop + nop + nop + inc b + inc c + IF __CPU_GBZ80__||__CPU_INTEL__ + ex (sp), hl + ENDIF +behllp: + dec c + jr nz, behllp + ld c, $3F + dec b + jp nz, behllp + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - ld b, h - ld c, a - IF __CPU_GBZ80__||__CPU_INTEL__ - and SOUND_ONEBIT_mask - ld a, c - ELSE - bit SOUND_ONEBIT_bit, a ;if o/p go again! - ENDIF - jr nz, be_again - ld a, d - or e - jr z, be_end - ld a, c - ld c, l - dec de - IF __CPU_GBZ80__||__CPU_INTEL__ - ex (sp), hl - jp (hl) - ELSE - jp (ix) - ENDIF + ld b, h + ld c, a + IF __CPU_GBZ80__||__CPU_INTEL__ + and SOUND_ONEBIT_mask + ld a, c + ELSE + bit SOUND_ONEBIT_bit, a ;if o/p go again! + ENDIF + jr nz, be_again + ld a, d + or e + jr z, be_end + ld a, c + ld c, l + dec de + IF __CPU_GBZ80__||__CPU_INTEL__ + ex (sp), hl + jp (hl) + ELSE + jp (ix) + ENDIF be_again: - ld c, l - inc c - IF __CPU_GBZ80__||__CPU_INTEL__ - ex (sp), hl - jp (hl) - ELSE - jp (ix) - ENDIF + ld c, l + inc c + IF __CPU_GBZ80__||__CPU_INTEL__ + ex (sp), hl + jp (hl) + ELSE + jp (ix) + ENDIF be_end: - IF __CPU_GBZ80__||__CPU_INTEL__ - pop hl - ELSE - pop ix - ENDIF + IF __CPU_GBZ80__||__CPU_INTEL__ + pop hl + ELSE + pop ix + ENDIF ;call bit_close_ei - ret + ret - ENDIF +ENDIF diff --git a/libsrc/games/bit_beep.asm b/libsrc/games/bit_beep.asm index 87f21ef1925..95b91f00936 100644 --- a/libsrc/games/bit_beep.asm +++ b/libsrc/games/bit_beep.asm @@ -4,13 +4,13 @@ ; ; void bit_beep(int duration, int period); ; - SECTION code_clib - PUBLIC bit_beep - PUBLIC _bit_beep - EXTERN beeper + SECTION code_clib + PUBLIC bit_beep + PUBLIC _bit_beep + EXTERN beeper - EXTERN bit_open_di - EXTERN bit_close_ei + EXTERN bit_open_di + EXTERN bit_close_ei ; ; Stub by Stefano Bodrato - 8/10/2001 @@ -19,13 +19,13 @@ bit_beep: _bit_beep: - call bit_open_di - pop bc - pop hl - pop de - push de - push hl - push bc + call bit_open_di + pop bc + pop hl + pop de + push de + push hl + push bc - call beeper - jp bit_close_ei + call beeper + jp bit_close_ei diff --git a/libsrc/games/bit_beep_callee.asm b/libsrc/games/bit_beep_callee.asm index c6f0b0016a9..d0281ad4571 100644 --- a/libsrc/games/bit_beep_callee.asm +++ b/libsrc/games/bit_beep_callee.asm @@ -4,13 +4,13 @@ ; ; void bit_beep(int duration, int period); ; - SECTION code_clib - PUBLIC bit_beep_callee - PUBLIC _bit_beep_callee - EXTERN beeper + SECTION code_clib + PUBLIC bit_beep_callee + PUBLIC _bit_beep_callee + EXTERN beeper - EXTERN bit_open_di - EXTERN bit_close_ei + EXTERN bit_open_di + EXTERN bit_close_ei ; ; Stub by Stefano Bodrato - 13/01/2021 @@ -19,12 +19,12 @@ bit_beep_callee: _bit_beep_callee: - call bit_open_di - pop bc - pop hl - pop de - push bc + call bit_open_di + pop bc + pop hl + pop de + push bc - call beeper - jp bit_close_ei + call beeper + jp bit_close_ei diff --git a/libsrc/games/bit_beepfx.asm b/libsrc/games/bit_beepfx.asm index 09ca90bffdc..a37a43222e8 100644 --- a/libsrc/games/bit_beepfx.asm +++ b/libsrc/games/bit_beepfx.asm @@ -1,23 +1,23 @@ ; void bit_beepfx(void *effect) - SECTION code_clib - SECTION code_sound_bit + SECTION code_clib + SECTION code_sound_bit - IF !__CPU_INTEL__&&!__CPU_GBZ80__&&!__CPU_RABBIT__ - PUBLIC bit_beepfx - PUBLIC _bit_beepfx +IF !__CPU_INTEL__&&!__CPU_GBZ80__&&!__CPU_RABBIT__ + PUBLIC bit_beepfx + PUBLIC _bit_beepfx - EXTERN asm_bit_beepfx + EXTERN asm_bit_beepfx bit_beepfx: _bit_beepfx: - push hl - ex (sp), ix + push hl + ex (sp), ix - call asm_bit_beepfx + call asm_bit_beepfx - pop ix - ret + pop ix + ret - ENDIF +ENDIF diff --git a/libsrc/games/bit_click.asm b/libsrc/games/bit_click.asm index e0b6757ce16..cddaced38c2 100644 --- a/libsrc/games/bit_click.asm +++ b/libsrc/games/bit_click.asm @@ -7,21 +7,21 @@ ; Stefano Bodrato - 2/10/2001 ; - IF !__CPU_GBZ80__ +IF !__CPU_GBZ80__ - SECTION code_clib - PUBLIC bit_click - PUBLIC _bit_click - INCLUDE "games/games.inc" + SECTION code_clib + PUBLIC bit_click + PUBLIC _bit_click + INCLUDE "games/games.inc" - EXTERN __snd_tick + EXTERN __snd_tick bit_click: _bit_click: - ld a, (__snd_tick) - xor SOUND_ONEBIT_mask - ld (__snd_tick), a - ONEBITOUT - ret + ld a, (__snd_tick) + xor SOUND_ONEBIT_mask + ld (__snd_tick), a + ONEBITOUT + ret - ENDIF +ENDIF diff --git a/libsrc/games/bit_close.asm b/libsrc/games/bit_close.asm index d2f72ae22e4..7307798a7e5 100644 --- a/libsrc/games/bit_close.asm +++ b/libsrc/games/bit_close.asm @@ -7,11 +7,11 @@ ; Stefano Bodrato - 2001..2013 ; - SECTION code_clib - PUBLIC bit_close - PUBLIC _bit_close + SECTION code_clib + PUBLIC bit_close + PUBLIC _bit_close bit_close: _bit_close: - ret + ret diff --git a/libsrc/games/bit_close_ei.asm b/libsrc/games/bit_close_ei.asm index a12457365ee..35c5307971a 100644 --- a/libsrc/games/bit_close_ei.asm +++ b/libsrc/games/bit_close_ei.asm @@ -8,20 +8,20 @@ ; Stefano Bodrato - 2001..2013 ; - IF !__CPU_GBZ80__ - SECTION code_clib - PUBLIC bit_close_ei - PUBLIC _bit_close_ei - EXTERN __bit_irqstatus +IF !__CPU_GBZ80__ + SECTION code_clib + PUBLIC bit_close_ei + PUBLIC _bit_close_ei + EXTERN __bit_irqstatus bit_close_ei: _bit_close_ei: - push hl - ld hl, (__bit_irqstatus) - ex (sp), hl - pop af - ret po - ei - ret + push hl + ld hl, (__bit_irqstatus) + ex (sp), hl + pop af + ret po + ei + ret - ENDIF +ENDIF diff --git a/libsrc/games/bit_fx.asm b/libsrc/games/bit_fx.asm index d2207ce2d2b..01196051771 100644 --- a/libsrc/games/bit_fx.asm +++ b/libsrc/games/bit_fx.asm @@ -13,17 +13,17 @@ ;>due to the fact that it is usually in the 00xxxxxx state when we ;>get there - IF !__CPU_GBZ80__ - SECTION smc_clib - PUBLIC bit_fx - PUBLIC _bit_fx - INCLUDE "games/games.inc" +IF !__CPU_GBZ80__ + SECTION smc_clib + PUBLIC bit_fx + PUBLIC _bit_fx + INCLUDE "games/games.inc" - EXTERN beeper - EXTERN bit_open - EXTERN bit_open_di - EXTERN bit_close - EXTERN bit_close_ei + EXTERN beeper + EXTERN bit_open + EXTERN bit_open_di + EXTERN bit_close + EXTERN bit_close_ei ;Sound routine..enter in with e holding the desired effect! @@ -32,246 +32,248 @@ bit_fx: _bit_fx: - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF - ld a, l - cp 8 - ret nc - add a, a - ld e, a - ld d, 0 - ld hl, table - add hl, de - ld a, (hl) - inc hl - ld h, (hl) - ld l, a - jp (hl) + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx + ENDIF + ld a, l + cp 8 + ret nc + add a, a + ld e, a + ld d, 0 + ld hl, table + add hl, de + ld a, (hl) + inc hl + ld h, (hl) + ld l, a + jp (hl) table: - defw fx2 ; effect #0 - defw fx5 - defw fx6 - defw zap0 - defw zap1 - defw clackson - defw zap3 - defw warpcall ; effect #7 + defw fx2 ; effect #0 + defw fx5 + defw fx6 + defw zap0 + defw zap1 + defw clackson + defw zap3 + defw warpcall ; effect #7 ;Strange squeak hl=300,de=2 ;Game up hl=300,de=10 inc de ;-like a PACMAN sound fx6: - call bit_open_di - ld b, 1 -fx6_1: push bc - ld hl, 300 - ld de, 10 -fx6_2: push hl - push de - call beeper - pop de - pop hl + call bit_open_di + ld b, 1 +fx6_1: + push bc + ld hl, 300 + ld de, 10 +fx6_2: + push hl + push de + call beeper + pop de + pop hl ; inc de ;if added in makes different sound.. - ld bc, 10 - and a - sbc hl, bc - jr nc, fx6_2 - pop bc - djnz fx6_1 - jp bit_close_ei + ld bc, 10 + and a + sbc hl, bc + jr nc, fx6_2 + pop bc + djnz fx6_1 + jp bit_close_ei ;Use during key defines? fx2: - call bit_open_di - ld e, 150 + call bit_open_di + ld e, 150 fx2_1: - ONEBITOUT - xor SOUND_ONEBIT_mask - ld b, e + ONEBITOUT + xor SOUND_ONEBIT_mask + ld b, e fx2_2: - djnz fx2_2 - inc e - jr nz, fx2_1 - jp bit_close_ei + djnz fx2_2 + inc e + jr nz, fx2_1 + jp bit_close_ei ;Laser repeat sound fx5: - call bit_open_di - ld b, 1 + call bit_open_di + ld b, 1 fx5_1: - push bc - ld hl, 1200 - ld de, 6 + push bc + ld hl, 1200 + ld de, 6 fx5_2: - push hl - push de - call beeper - pop de - pop hl - ld bc, 100 - and a - sbc hl, bc - jr nc, fx5_2 - pop bc - djnz fx5_1 - jp bit_close_ei + push hl + push de + call beeper + pop de + pop hl + ld bc, 100 + and a + sbc hl, bc + jr nc, fx5_2 + pop bc + djnz fx5_1 + jp bit_close_ei ;Eating sound zap0: - call bit_open_di - ld h, 4 + call bit_open_di + ld h, 4 zap0_1: - ld b, (hl) - dec hl + ld b, (hl) + dec hl zap0_2: - IF __CPU_INTEL__ - dec b - jp nz, zap0_2 - ELSE - djnz zap0_2 - ENDIF - - ONEBITOUT - - xor SOUND_ONEBIT_mask - - ld e, a - ld a, h - or l - jr z, zap0_3 - ld a, e - jr zap0_1 + IF __CPU_INTEL__ + dec b + jp nz, zap0_2 + ELSE + djnz zap0_2 + ENDIF + + ONEBITOUT + + xor SOUND_ONEBIT_mask + + ld e, a + ld a, h + or l + jr z, zap0_3 + ld a, e + jr zap0_1 zap0_3: - jp bit_close_ei + jp bit_close_ei ;Clackson sound clackson: - call bit_open_di + call bit_open_di clackson_LENGHT: - ld b, 90 + ld b, 90 clackson_loop: - dec h - jr nz, clackson_jump - xor SOUND_ONEBIT_mask + dec h + jr nz, clackson_jump + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT clackson_FR_1: - ld h, 230 + ld h, 230 clackson_jump: - dec l - jr nz, clackson_loop - xor SOUND_ONEBIT_mask + dec l + jr nz, clackson_loop + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT clackson_FR_2: - ld l, 255 - djnz clackson_loop - jp bit_close_ei + ld l, 255 + djnz clackson_loop + jp bit_close_ei ;Beep thing zap3: - call bit_open_di + call bit_open_di zap3_1: - push bc - xor SOUND_ONEBIT_mask + push bc + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - push af - xor a - sub b - ld b, a - pop af + push af + xor a + sub b + ld b, a + pop af zap3_2: - nop - djnz zap3_2 - xor SOUND_ONEBIT_mask + nop + djnz zap3_2 + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - pop bc - push bc + pop bc + push bc zap3_3: - nop - djnz zap3_3 - pop bc - djnz zap3_1 - jp bit_close_ei + nop + djnz zap3_3 + pop bc + djnz zap3_1 + jp bit_close_ei ;Sound for warp warpcall: - call bit_open_di - ld hl, 1600 - ld (warps+1), hl - ld hl, -800 - ld (warps1+1), hl - ld hl, -100 - ld (warps2+1), hl - ld b, 20 + call bit_open_di + ld hl, 1600 + ld (warps+1), hl + ld hl, -800 + ld (warps1+1), hl + ld hl, -100 + ld (warps2+1), hl + ld b, 20 warpcall1: - push bc - call warps - pop bc - djnz warpcall1 - jp bit_close_ei + push bc + call warps + pop bc + djnz warpcall1 + jp bit_close_ei warps: - ld hl, 1600 - ld de, 6 - call beeper + ld hl, 1600 + ld de, 6 + call beeper warps1: - ld hl, -800 + ld hl, -800 warps2: - ld de, -100 - and a - sbc hl, de - ld (warps1+1), hl - jr nz, warps3 - ld de, 100 - ld (warps2+1), de + ld de, -100 + and a + sbc hl, de + ld (warps1+1), hl + jr nz, warps3 + ld de, 100 + ld (warps2+1), de warps3: - ex de, hl - ld hl, 1600 - add hl, de - ld (warps+1), hl - ret + ex de, hl + ld hl, 1600 + add hl, de + ld (warps+1), hl + ret ;Our old squelch... zap1: - call bit_open - ld b, 0 + call bit_open + ld b, 0 zap1_1: - push bc - xor SOUND_ONEBIT_mask ;oscillate between high and low bits... + push bc + xor SOUND_ONEBIT_mask ;oscillate between high and low bits... - ONEBITOUT + ONEBITOUT zap1_2: - nop - nop - djnz zap1_2 - pop bc - djnz zap1_1 - jp bit_close - ENDIF + nop + nop + djnz zap1_2 + pop bc + djnz zap1_1 + jp bit_close +ENDIF diff --git a/libsrc/games/bit_fx2.asm b/libsrc/games/bit_fx2.asm index 4a6665f9537..f0b2f8744d6 100644 --- a/libsrc/games/bit_fx2.asm +++ b/libsrc/games/bit_fx2.asm @@ -4,441 +4,441 @@ ; Alternate sound library by Stefano Bodrato ; - IF !__CPU_GBZ80__ - SECTION smc_clib - PUBLIC bit_fx2 - PUBLIC _bit_fx2 - INCLUDE "games/games.inc" +IF !__CPU_GBZ80__ + SECTION smc_clib + PUBLIC bit_fx2 + PUBLIC _bit_fx2 + INCLUDE "games/games.inc" - EXTERN bit_open - EXTERN bit_open_di - EXTERN bit_close - EXTERN bit_close_ei + EXTERN bit_open + EXTERN bit_open_di + EXTERN bit_close + EXTERN bit_close_ei bit_fx2: _bit_fx2: - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF - - ld a, l - cp 8 - ret nc - add a, a - ld e, a - ld d, 0 - ld hl, table - add hl, de - ld a, (hl) - inc hl - ld h, (hl) - ld l, a - jp (hl) + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx + ENDIF + + ld a, l + cp 8 + ret nc + add a, a + ld e, a + ld d, 0 + ld hl, table + add hl, de + ld a, (hl) + inc hl + ld h, (hl) + ld l, a + jp (hl) table: - defw DeepSpace ; effect #0 - defw SSpace2 - defw TSpace - defw Clackson2 - defw TSpace2 - defw TSpace3 ; effect #5 - defw Squoink - defw explosion + defw DeepSpace ; effect #0 + defw SSpace2 + defw TSpace + defw Clackson2 + defw TSpace2 + defw TSpace3 ; effect #5 + defw Squoink + defw explosion ;Space sound DeepSpace: - call bit_open_di + call bit_open_di DS_LENGHT: - ld b, 100 + ld b, 100 ds_loop: - dec h - jr nz, ds_jump - xor SOUND_ONEBIT_mask + dec h + jr nz, ds_jump + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - push bc - ld b, 250 + push bc + ld b, 250 loosetime1: - djnz loosetime1 - pop bc - xor SOUND_ONEBIT_mask + djnz loosetime1 + pop bc + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT ds_FR_1: ;ld h,230 - ld h, 254 + ld h, 254 ds_jump: - dec l - jr nz, ds_loop - xor SOUND_ONEBIT_mask + dec l + jr nz, ds_loop + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - push bc - ld b, 200 + push bc + ld b, 200 loosetime2: - djnz loosetime2 - pop bc - xor SOUND_ONEBIT_mask - ONEBITOUT + djnz loosetime2 + pop bc + xor SOUND_ONEBIT_mask + ONEBITOUT ds_FR_2: - ld l, 255 - djnz ds_loop - call bit_close_ei - ret + ld l, 255 + djnz ds_loop + call bit_close_ei + ret ;Dual note with fuzzy addedd SSpace2: - call bit_open_di + call bit_open_di SS_LENGHT: - ld b, 100 + ld b, 100 ss_loop: - dec h - jr nz, ss_jump - push hl - push af - ld a, SOUND_ONEBIT_mask - ld h, 0 - and (hl) - ld l, a - pop af - xor l + dec h + jr nz, ss_jump + push hl + push af + ld a, SOUND_ONEBIT_mask + ld h, 0 + and (hl) + ld l, a + pop af + xor l - ONEBITOUT + ONEBITOUT - pop hl - xor SOUND_ONEBIT_mask - ONEBITOUT + pop hl + xor SOUND_ONEBIT_mask + ONEBITOUT ss_FR_1: - ld h, 230 + ld h, 230 ss_jump: - dec l - jr nz, ss_loop - xor SOUND_ONEBIT_mask + dec l + jr nz, ss_loop + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT ss_FR_2: - ld l, 255 - djnz ss_loop - call bit_close_ei - ret + ld l, 255 + djnz ss_loop + call bit_close_ei + ret ;Dual note with LOT of fuzzy addedd TSpace: - call bit_open_di + call bit_open_di TS_LENGHT: - ld b, 100 + ld b, 100 ts_loop: - dec h - jr nz, ts_jump - push hl - push af - ld a, SOUND_ONEBIT_mask - ld h, 0 - and (hl) - ld l, a - pop af - xor l + dec h + jr nz, ts_jump + push hl + push af + ld a, SOUND_ONEBIT_mask + ld h, 0 + and (hl) + ld l, a + pop af + xor l - ONEBITOUT + ONEBITOUT - pop hl - xor SOUND_ONEBIT_mask + pop hl + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT ts_FR_1: - ld h, 130 + ld h, 130 ts_jump: - dec l - jr nz, ts_loop - push hl - push af - ld a, SOUND_ONEBIT_mask - ld l, h - ld h, 0 - and (hl) - ld l, a - pop af - xor l + dec l + jr nz, ts_loop + push hl + push af + ld a, SOUND_ONEBIT_mask + ld l, h + ld h, 0 + and (hl) + ld l, a + pop af + xor l - ONEBITOUT + ONEBITOUT - pop hl - xor SOUND_ONEBIT_mask + pop hl + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT ts_FR_2: - ld l, 155 - djnz ts_loop - call bit_close_ei - ret + ld l, 155 + djnz ts_loop + call bit_close_ei + ret Clackson2: - call bit_open_di + call bit_open_di CS_LENGHT: - ld b, 200 + ld b, 200 cs_loop: - dec h - jr nz, cs_jump - xor SOUND_ONEBIT_mask - ONEBITOUT + dec h + jr nz, cs_jump + xor SOUND_ONEBIT_mask + ONEBITOUT - push bc - ld b, 250 + push bc + ld b, 250 cswait1: - djnz cswait1 - pop bc - xor SOUND_ONEBIT_mask + djnz cswait1 + pop bc + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT cs_FR_1: - ld h, 230 + ld h, 230 cs_jump: - inc l - jr nz, cs_loop - xor SOUND_ONEBIT_mask + inc l + jr nz, cs_loop + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - push bc - ld b, 200 + push bc + ld b, 200 cswait2: - djnz cswait2 - pop bc - xor SOUND_ONEBIT_mask - ONEBITOUT + djnz cswait2 + pop bc + xor SOUND_ONEBIT_mask + ONEBITOUT cs_FR_2: - ld l, 0 - djnz cs_loop - call bit_close_ei - ret + ld l, 0 + djnz cs_loop + call bit_close_ei + ret TSpace2: - ld a, 230 - ld (t2_FR_1+1), a - xor a - ld (t2_FR_2+1), a + ld a, 230 + ld (t2_FR_1+1), a + xor a + ld (t2_FR_2+1), a - call bit_open_di + call bit_open_di T2_LENGHT: - ld b, 200 + ld b, 200 t2_loop: - dec h - jr nz, t2_jump - xor SOUND_ONEBIT_mask + dec h + jr nz, t2_jump + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - push bc - ld b, 250 + push bc + ld b, 250 wait1: - djnz wait1 - pop bc - xor SOUND_ONEBIT_mask + djnz wait1 + pop bc + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT t2_FR_1: - ld h, 230 + ld h, 230 t2_jump: - inc l - jr nz, t2_loop - push af - ld a, (t2_FR_2+1) - inc a - ld (t2_FR_2+1), a - pop af - xor SOUND_ONEBIT_mask + inc l + jr nz, t2_loop + push af + ld a, (t2_FR_2+1) + inc a + ld (t2_FR_2+1), a + pop af + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - push bc - ld b, 200 + push bc + ld b, 200 wait2: - djnz wait2 - pop bc - xor SOUND_ONEBIT_mask + djnz wait2 + pop bc + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT t2_FR_2: - ld l, 0 - djnz t2_loop - call bit_close_ei - ret + ld l, 0 + djnz t2_loop + call bit_close_ei + ret TSpace3: - ld a, 230 - ld (u2_FR_1+1), a - xor a - ld (u2_FR_2+1), a + ld a, 230 + ld (u2_FR_1+1), a + xor a + ld (u2_FR_2+1), a - call bit_open_di + call bit_open_di U2_LENGHT: - ld b, 200 + ld b, 200 u2_loop: - dec h - jr nz, u2_jump - push af - ld a, (u2_FR_1+1) - inc a - ld (u2_FR_1+1), a - pop af - xor SOUND_ONEBIT_mask + dec h + jr nz, u2_jump + push af + ld a, (u2_FR_1+1) + inc a + ld (u2_FR_1+1), a + pop af + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT u2_FR_1: - ld h, 50 + ld h, 50 u2_jump: - inc l - jr nz, u2_loop - push af - ld a, (u2_FR_2+1) - inc a - ld (u2_FR_2+1), a - pop af - xor SOUND_ONEBIT_mask + inc l + jr nz, u2_loop + push af + ld a, (u2_FR_2+1) + inc a + ld (u2_FR_2+1), a + pop af + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT u2_FR_2: - ld l, 0 - djnz u2_loop - call bit_close_ei - ret + ld l, 0 + djnz u2_loop + call bit_close_ei + ret Squoink: - ld a, 230 - ld (qi_FR_1+1), a - xor a - ld (qi_FR_2+1), a + ld a, 230 + ld (qi_FR_1+1), a + xor a + ld (qi_FR_2+1), a - call bit_open_di + call bit_open_di qi_LENGHT: - ld b, 200 + ld b, 200 qi_loop: - dec h - jr nz, qi_jump - push af - ld a, (qi_FR_1+1) - dec a - ld (qi_FR_1+1), a - pop af - xor SOUND_ONEBIT_mask - ONEBITOUT + dec h + jr nz, qi_jump + push af + ld a, (qi_FR_1+1) + dec a + ld (qi_FR_1+1), a + pop af + xor SOUND_ONEBIT_mask + ONEBITOUT qi_FR_1: - ld h, 50 + ld h, 50 qi_jump: - inc l - jr nz, qi_loop - push af - ld a, (qi_FR_2+1) - inc a - ld (qi_FR_2+1), a - pop af - xor SOUND_ONEBIT_mask + inc l + jr nz, qi_loop + push af + ld a, (qi_FR_2+1) + inc a + ld (qi_FR_2+1), a + pop af + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT qi_FR_2: - ld l, 0 - djnz qi_loop - call bit_close_ei - ret + ld l, 0 + djnz qi_loop + call bit_close_ei + ret explosion: - call bit_open_di - ld hl, 1 - IF __CPU_INTEL__ - push af - ENDIF + call bit_open_di + ld hl, 1 + IF __CPU_INTEL__ + push af + ENDIF expl: - IF __CPU_INTEL__ - pop af - ENDIF - push hl - push af - ld a, SOUND_ONEBIT_mask - ld h, 0 - and (hl) - ld l, a - pop af - xor l - - ONEBITOUT - - pop hl - - push af - ld b, h - ld c, l + IF __CPU_INTEL__ + pop af + ENDIF + push hl + push af + ld a, SOUND_ONEBIT_mask + ld h, 0 + and (hl) + ld l, a + pop af + xor l + + ONEBITOUT + + pop hl + + push af + ld b, h + ld c, l dly: - dec bc - ld a, b - or c - jr nz, dly - pop af - - inc hl - IF __CPU_INTEL__ - push af - xor a - add h - ELSE - bit 1, h - ENDIF - jr z, expl - - IF __CPU_INTEL__ - pop af - ENDIF - - call bit_close_ei - ret - + dec bc + ld a, b + or c + jr nz, dly + pop af + + inc hl + IF __CPU_INTEL__ + push af + xor a + add h + ELSE + bit 1, h + ENDIF + jr z, expl + IF __CPU_INTEL__ + pop af ENDIF + + call bit_close_ei + ret + + +ENDIF diff --git a/libsrc/games/bit_fx3.asm b/libsrc/games/bit_fx3.asm index 2103d0c423e..f9e24791b75 100644 --- a/libsrc/games/bit_fx3.asm +++ b/libsrc/games/bit_fx3.asm @@ -4,314 +4,328 @@ ; Alternate sound library by Stefano Bodrato ; - IF !__CPU_GBZ80__&&!__CPU_INTEL__ - SECTION code_clib - PUBLIC bit_fx3 - PUBLIC _bit_fx3 - INCLUDE "games/games.inc" +IF !__CPU_GBZ80__&&!__CPU_INTEL__ + SECTION code_clib + PUBLIC bit_fx3 + PUBLIC _bit_fx3 + INCLUDE "games/games.inc" - EXTERN bit_open - EXTERN bit_open_di - EXTERN bit_close - EXTERN bit_close_ei + EXTERN bit_open + EXTERN bit_open_di + EXTERN bit_close + EXTERN bit_close_ei bit_fx3: _bit_fx3: - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF - - ld a, l - cp 8 - ret nc - add a, a - ld e, a - ld d, 0 - ld hl, table - add hl, de - ld a, (hl) - inc hl - ld h, (hl) - ld l, a - jp (hl) - -table: defw blirp2 ; effect #0 - defw blirp - defw coff ; effect #2 - defw blurp - defw descending - defw ascending - defw descending2 - defw fx7 ; effect #7 + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx + ENDIF + + ld a, l + cp 8 + ret nc + add a, a + ld e, a + ld d, 0 + ld hl, table + add hl, de + ld a, (hl) + inc hl + ld h, (hl) + ld l, a + jp (hl) + +table: + defw blirp2 ; effect #0 + defw blirp + defw coff ; effect #2 + defw blurp + defw descending + defw ascending + defw descending2 + defw fx7 ; effect #7 blirp: - call bit_open_di - ld b, 255 + call bit_open_di + ld b, 255 expl: - push af - ld a, SOUND_ONEBIT_mask - ld h, 0 - ld l, b - and (hl) - ld l, a - pop af - xor l - ONEBITOUT - - - push bc -dly: nop - djnz dly - pop bc - - push af - ld a, SOUND_ONEBIT_mask - ld h, 0 - ld l, b - and (hl) - ld l, a - pop af - xor l - - ONEBITOUT - - - push bc - push af - ld a, 255 - sub b - ld b, a - pop af -dly2: nop - djnz dly2 - pop bc - - djnz expl - - call bit_close_ei - ret + push af + ld a, SOUND_ONEBIT_mask + ld h, 0 + ld l, b + and (hl) + ld l, a + pop af + xor l + ONEBITOUT + + + push bc +dly: + nop + djnz dly + pop bc + + push af + ld a, SOUND_ONEBIT_mask + ld h, 0 + ld l, b + and (hl) + ld l, a + pop af + xor l + + ONEBITOUT + + + push bc + push af + ld a, 255 + sub b + ld b, a + pop af +dly2: + nop + djnz dly2 + pop bc + + djnz expl + + call bit_close_ei + ret blirp2: - call bit_open_di - ld b, 100 + call bit_open_di + ld b, 100 blrp: - push af - ld a, SOUND_ONEBIT_mask - ld h, 0 - ld l, b - and (hl) - ld l, a - pop af - xor l - ONEBITOUT + push af + ld a, SOUND_ONEBIT_mask + ld h, 0 + ld l, b + and (hl) + ld l, a + pop af + xor l + ONEBITOUT - push bc - push af - ld a, 255 - sub b - ld b, a - pop af -dlyb: nop - djnz dlyb - pop bc + push bc + push af + ld a, 255 + sub b + ld b, a + pop af +dlyb: + nop + djnz dlyb + pop bc - xor SOUND_ONEBIT_mask + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT - push bc -dlya: nop - djnz dlya - pop bc + push bc +dlya: + nop + djnz dlya + pop bc - djnz blrp + djnz blrp - call bit_close_ei - ret + call bit_close_ei + ret ; Steam engine coff: - call bit_open_di - ld hl, 0 + call bit_open_di + ld hl, 0 coff2: - push af - ld a, SOUND_ONEBIT_mask - and (hl) - ld b, a - pop af - xor b + push af + ld a, SOUND_ONEBIT_mask + and (hl) + ld b, a + pop af + xor b - ONEBITOUT + ONEBITOUT - ld b, (hl) + ld b, (hl) cdly: - djnz cdly + djnz cdly - inc hl - bit 7, l - jr z, coff2 + inc hl + bit 7, l + jr z, coff2 - call bit_close_ei - ret + call bit_close_ei + ret blurp: - call bit_open_di - ld b, 255 + call bit_open_di + ld b, 255 blurp2: - push af - ld a, SOUND_ONEBIT_mask - ld h, 0 - ld l, b - and (hl) - ld l, a - pop af - xor l + push af + ld a, SOUND_ONEBIT_mask + ld h, 0 + ld l, b + and (hl) + ld l, a + pop af + xor l - ONEBITOUT + ONEBITOUT - push af - ld a, (hl) -dblurp: dec a - jr nz, dblurp - pop af + push af + ld a, (hl) +dblurp: + dec a + jr nz, dblurp + pop af - djnz blurp2 + djnz blurp2 - call bit_close_ei - ret + call bit_close_ei + ret ; descending buzzing noise descending: - call bit_open_di - ld hl, 1000 + call bit_open_di + ld hl, 1000 -desc1: push hl - ld b, 16 -desc2: rl l - rl h - jr nc, desc3 - xor SOUND_ONEBIT_mask +desc1: + push hl + ld b, 16 +desc2: + rl l + rl h + jr nc, desc3 + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT desc3: - ld e, 5 -desc4: dec e - jr nz, desc4 + ld e, 5 +desc4: + dec e + jr nz, desc4 - djnz desc2 + djnz desc2 - pop hl - dec hl - ld c, a - ld a, h - or l - ld a, c - jr nz, desc1 + pop hl + dec hl + ld c, a + ld a, h + or l + ld a, c + jr nz, desc1 - call bit_close_ei - ret + call bit_close_ei + ret ; ascending buzzing noise ascending: - call bit_open_di - ld hl, 1023 + call bit_open_di + ld hl, 1023 -hdesc1: push hl - ld b, 16 -hdesc2: rl l - rl h - jr nc, hdesc3 - xor SOUND_ONEBIT_mask +hdesc1: + push hl + ld b, 16 +hdesc2: + rl l + rl h + jr nc, hdesc3 + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT hdesc3: - djnz hdesc2 + djnz hdesc2 - pop hl - dec hl - ld c, a - ld a, h - or l - ld a, c - jr nz, hdesc1 + pop hl + dec hl + ld c, a + ld a, h + or l + ld a, c + jr nz, hdesc1 - call bit_close_ei - ret + call bit_close_ei + ret ; descending buzzing noise #2 descending2: - call bit_open_di - ld hl, 1023 + call bit_open_di + ld hl, 1023 -asc1: push hl - ld b, 16 -asc2: rl l - rl h - jr c, asc3 - xor SOUND_ONEBIT_mask +asc1: + push hl + ld b, 16 +asc2: + rl l + rl h + jr c, asc3 + xor SOUND_ONEBIT_mask - ONEBITOUT + ONEBITOUT asc3: - djnz asc2 + djnz asc2 - pop hl - dec hl - ld c, a - ld a, h - or l - ld a, c - jr nz, asc1 + pop hl + dec hl + ld c, a + ld a, h + or l + ld a, c + jr nz, asc1 - call bit_close_ei - ret + call bit_close_ei + ret ; noise #7 fx7: - call bit_open_di - ld hl, 4000 - -fx71: push hl - push af - ld a, SOUND_ONEBIT_mask - and l - ld l, a - pop af - xor l - - ONEBITOUT - - - pop hl - dec hl - ld c, a - ld a, h - or l - ld a, c - jr nz, fx71 - - call bit_close_ei - ret - ENDIF + call bit_open_di + ld hl, 4000 + +fx71: + push hl + push af + ld a, SOUND_ONEBIT_mask + and l + ld l, a + pop af + xor l + + ONEBITOUT + + + pop hl + dec hl + ld c, a + ld a, h + or l + ld a, c + jr nz, fx71 + + call bit_close_ei + ret +ENDIF diff --git a/libsrc/games/bit_fx4.asm b/libsrc/games/bit_fx4.asm index 437413b2ce6..2574afcd3fe 100644 --- a/libsrc/games/bit_fx4.asm +++ b/libsrc/games/bit_fx4.asm @@ -5,274 +5,279 @@ ; Library #4 by Stefano Bodrato ; - IF !__CPU_GBZ80__ - SECTION code_clib - PUBLIC bit_fx4 - PUBLIC _bit_fx4 - INCLUDE "games/games.inc" - - EXTERN beeper - EXTERN bit_open - EXTERN bit_open_di - EXTERN bit_close - EXTERN bit_close_ei - EXTERN bit_click +IF !__CPU_GBZ80__ + SECTION code_clib + PUBLIC bit_fx4 + PUBLIC _bit_fx4 + INCLUDE "games/games.inc" + + EXTERN beeper + EXTERN bit_open + EXTERN bit_open_di + EXTERN bit_close + EXTERN bit_close_ei + EXTERN bit_click ;Sound routine..enter in with e holding the desired effect! bit_fx4: _bit_fx4: - ld a, l - cp 8 - ret nc - add a, a - ld e, a - ld d, 0 - ld hl, table - add hl, de - ld a, (hl) - inc hl - ld h, (hl) - ld l, a - jp (hl) - -table: defw fx1 ; effect #0 - defw fx2 - defw fx3 - defw fx4 - defw fx5 - defw fx6 - defw fx7 - defw fx8 + ld a, l + cp 8 + ret nc + add a, a + ld e, a + ld d, 0 + ld hl, table + add hl, de + ld a, (hl) + inc hl + ld h, (hl) + ld l, a + jp (hl) + +table: + defw fx1 ; effect #0 + defw fx2 + defw fx3 + defw fx4 + defw fx5 + defw fx6 + defw fx7 + defw fx8 ; Strange squeak fx1: - call bit_open_di - ld b, 1 -fx1_1: push bc - ld hl, 600 - ld de, 2 -fx1_2: push hl - push de - call beeper - pop de - pop hl - push hl - push de - ld bc, 400 - sbc hl, bc - ld l, c - ld h, b - call beeper - pop de - pop hl - ld bc, 40 - and a - sbc hl, bc - jr nc, fx1_2 - pop bc - djnz fx1_1 - jp bit_close_ei + call bit_open_di + ld b, 1 +fx1_1: + push bc + ld hl, 600 + ld de, 2 +fx1_2: + push hl + push de + call beeper + pop de + pop hl + push hl + push de + ld bc, 400 + sbc hl, bc + ld l, c + ld h, b + call beeper + pop de + pop hl + ld bc, 40 + and a + sbc hl, bc + jr nc, fx1_2 + pop bc + djnz fx1_1 + jp bit_close_ei ; Sort of "audio tape rewind" effect fx2: - call bit_open_di - ld hl, 1024 + call bit_open_di + ld hl, 1024 fx2_1: - ld de, 1 - push hl - push de - ld a, 55 - xor l - ld l, a - call beeper - pop de - pop hl - dec hl - ld a, h - or l - jr nz, fx2_1 - jp bit_close_ei + ld de, 1 + push hl + push de + ld a, 55 + xor l + ld l, a + call beeper + pop de + pop hl + dec hl + ld a, h + or l + jr nz, fx2_1 + jp bit_close_ei ; FX3 effect fx3: - call bit_open_di - ld hl, 30 - ld de, 1 + call bit_open_di + ld hl, 30 + ld de, 1 fx3_1: - push hl - push de - call beeper - ld hl, 600 - ld de, 1 - call beeper - pop de - pop hl - dec hl + push hl + push de + call beeper + ld hl, 600 + ld de, 1 + call beeper + pop de + pop hl + dec hl - inc de - ld a, h - or l - jr nz, fx3_1 - jp bit_close_ei + inc de + ld a, h + or l + jr nz, fx3_1 + jp bit_close_ei ; FX4 effect fx4: - call bit_open_di - ld hl, 1124 - ld de, 1 + call bit_open_di + ld hl, 1124 + ld de, 1 fx4_1: - push hl - push de - call beeper - pop de - pop hl + push hl + push de + call beeper + pop de + pop hl - push hl - push de - ld bc, 900 - sbc hl, bc - call beeper - pop de - pop hl + push hl + push de + ld bc, 900 + sbc hl, bc + call beeper + pop de + pop hl - inc hl - ld a, l - and a - jr nz, fx4_1 - jp bit_close_ei + inc hl + ld a, l + and a + jr nz, fx4_1 + jp bit_close_ei ; Strange descending squeak ; FX5 effect fx5: - call bit_open_di - ld hl, 200 - ld de, 1 + call bit_open_di + ld hl, 200 + ld de, 1 fx5_1: - push hl - push de - call beeper - pop de - pop hl - - push hl - push de - ld bc, 180 - sbc hl, bc - call beeper - pop de - pop hl - - push hl - push de - call beeper - pop de - pop hl - - inc hl - inc de - ld a, l - and a - jr nz, fx5_1 - jp bit_close_ei + push hl + push de + call beeper + pop de + pop hl + + push hl + push de + ld bc, 180 + sbc hl, bc + call beeper + pop de + pop hl + + push hl + push de + call beeper + pop de + pop hl + + inc hl + inc de + ld a, l + and a + jr nz, fx5_1 + jp bit_close_ei ; FX6 effect fx6: - call bit_open_di - ld hl, 300 - ld de, 1 + call bit_open_di + ld hl, 300 + ld de, 1 fx6_1: - push hl - push de - call beeper - pop de - pop hl - - push hl - push de - ld bc, 200 - sbc hl, bc - call beeper - pop de - pop hl - - inc hl - inc de - ld a, l - and 50 - jr nz, fx6_1 - jp bit_close_ei + push hl + push de + call beeper + pop de + pop hl + + push hl + push de + ld bc, 200 + sbc hl, bc + call beeper + pop de + pop hl + + inc hl + inc de + ld a, l + and 50 + jr nz, fx6_1 + jp bit_close_ei ; FX7 effect fx7: - call bit_open_di - ld hl, 1000 - ld de, 1 + call bit_open_di + ld hl, 1000 + ld de, 1 fx7_1: - push hl - push de - call beeper - pop de - pop hl - - push hl - push de - ld bc, 200 - sbc hl, bc - call beeper - pop de - pop hl - - dec hl - ld a, l - and 50 - jr nz, fx7_1 - jp bit_close_ei + push hl + push de + call beeper + pop de + pop hl + + push hl + push de + ld bc, 200 + sbc hl, bc + call beeper + pop de + pop hl + + dec hl + ld a, l + and 50 + jr nz, fx7_1 + jp bit_close_ei ; FX8 effect fx8: - call bit_open_di - ld b, 1 -fx8_1: push bc - ld hl, 2600 - ld de, 2 -fx8_2: push hl - push de - call beeper - inc hl - pop de - pop hl - push hl - push de - ld bc, 400 - sbc hl, bc - ld l, c - ld h, b - call beeper - pop de - pop hl - ld bc, 40 - and a - sbc hl, bc - jr nc, fx8_2 - pop bc - djnz fx8_1 - ret - ld hl, 100 - ld de, 1 - jp bit_close_ei - - ENDIF + call bit_open_di + ld b, 1 +fx8_1: + push bc + ld hl, 2600 + ld de, 2 +fx8_2: + push hl + push de + call beeper + inc hl + pop de + pop hl + push hl + push de + ld bc, 400 + sbc hl, bc + ld l, c + ld h, b + call beeper + pop de + pop hl + ld bc, 40 + and a + sbc hl, bc + jr nc, fx8_2 + pop bc + djnz fx8_1 + ret + ld hl, 100 + ld de, 1 + jp bit_close_ei + +ENDIF diff --git a/libsrc/games/bit_fx5.asm b/libsrc/games/bit_fx5.asm index b8528e450e4..f0641b35332 100644 --- a/libsrc/games/bit_fx5.asm +++ b/libsrc/games/bit_fx5.asm @@ -5,270 +5,275 @@ ; Library #5 by Stefano Bodrato ; - IF !__CPU_GBZ80__ - SECTION code_clib - PUBLIC bit_fx5 - PUBLIC _bit_fx5 - INCLUDE "games/games.inc" - - EXTERN beeper - EXTERN noise - EXTERN bit_open - EXTERN bit_open_di - EXTERN bit_close - EXTERN bit_close_ei - EXTERN bit_click +IF !__CPU_GBZ80__ + SECTION code_clib + PUBLIC bit_fx5 + PUBLIC _bit_fx5 + INCLUDE "games/games.inc" + + EXTERN beeper + EXTERN noise + EXTERN bit_open + EXTERN bit_open_di + EXTERN bit_close + EXTERN bit_close_ei + EXTERN bit_click ;Sound routine..enter in with e holding the desired effect! bit_fx5: _bit_fx5: - ld a, l - cp 8 - ret nc - add a, a - ld e, a - ld d, 0 - ld hl, table - add hl, de - ld a, (hl) - inc hl - ld h, (hl) - ld l, a - jp (hl) - -table: defw fx1 ; effect #0 - defw fx1b - defw fx2 - defw fx2b - defw fx3 - defw fx4 - defw fx5 - defw fx6 + ld a, l + cp 8 + ret nc + add a, a + ld e, a + ld d, 0 + ld hl, table + add hl, de + ld a, (hl) + inc hl + ld h, (hl) + ld l, a + jp (hl) + +table: + defw fx1 ; effect #0 + defw fx1b + defw fx2 + defw fx2b + defw fx3 + defw fx4 + defw fx5 + defw fx6 ; Slippery floor, a bit like Mario on "Donkey Kong" fx1: - call bit_open_di - ld b, 1 -fx1_1: push bc - ld hl, 600 - ld de, 2 -fx1_2: push hl - push de - call beeper - pop de - pop hl - push hl - push de - ld bc, 400 - sbc hl, bc - ld l, c - ld h, b - call noise - pop de - pop hl - ld bc, 40 - and a - sbc hl, bc - jr nc, fx1_2 - pop bc - djnz fx1_1 - jp bit_close_ei + call bit_open_di + ld b, 1 +fx1_1: + push bc + ld hl, 600 + ld de, 2 +fx1_2: + push hl + push de + call beeper + pop de + pop hl + push hl + push de + ld bc, 400 + sbc hl, bc + ld l, c + ld h, b + call noise + pop de + pop hl + ld bc, 40 + and a + sbc hl, bc + jr nc, fx1_2 + pop bc + djnz fx1_1 + jp bit_close_ei ; Hitting a wall.. or someone fx1b: - call bit_open_di - ld b, 1 -fx1b_1: push bc - ld hl, 600 - ld de, 2 -fx1b_2: push hl - push de - call noise - pop de - pop hl - push hl - push de - ld bc, 400 - sbc hl, bc - ld l, c - ld h, b - call beeper - pop de - pop hl - ld bc, 40 - and a - sbc hl, bc - jr nc, fx1b_2 - pop bc - djnz fx1b_1 - jp bit_close_ei + call bit_open_di + ld b, 1 +fx1b_1: + push bc + ld hl, 600 + ld de, 2 +fx1b_2: + push hl + push de + call noise + pop de + pop hl + push hl + push de + ld bc, 400 + sbc hl, bc + ld l, c + ld h, b + call beeper + pop de + pop hl + ld bc, 40 + and a + sbc hl, bc + jr nc, fx1b_2 + pop bc + djnz fx1b_1 + jp bit_close_ei ; Shooting with a.. gun fx2: - call bit_open_di - ld hl, 70 + call bit_open_di + ld hl, 70 fx2_1: - ld de, 1 - push hl - push de - ld a, 55 - xor l - ld l, a - call noise - pop de - pop hl - dec hl - ld a, h - or l - jr nz, fx2_1 - jp bit_close_ei + ld de, 1 + push hl + push de + ld a, 55 + xor l + ld l, a + call noise + pop de + pop hl + dec hl + ld a, h + or l + jr nz, fx2_1 + jp bit_close_ei ; Kiss fx2b: - call bit_open_di - ld hl, 70 + call bit_open_di + ld hl, 70 fx2b_1: - ld de, 1 - push hl - push de - ld a, 55 - xor l - ld l, a - call beeper - pop de - pop hl - push hl - push de - ld a, 87 - xor l - ld l, a - call beeper - pop de - pop hl - dec hl - ld a, h - or l - jr nz, fx2b_1 - jp bit_close_ei + ld de, 1 + push hl + push de + ld a, 55 + xor l + ld l, a + call beeper + pop de + pop hl + push hl + push de + ld a, 87 + xor l + ld l, a + call beeper + pop de + pop hl + dec hl + ld a, h + or l + jr nz, fx2b_1 + jp bit_close_ei ; FX3 effect fx3: - call bit_open_di - ld hl, 30 - ld de, 1 + call bit_open_di + ld hl, 30 + ld de, 1 fx3_1: - push hl - push de - call beeper - ld hl, 600 - ld de, 1 - call beeper - pop de - pop hl - push hl - push de - call noise - pop de - pop hl - dec hl - inc de - ld a, h - or l - jr nz, fx3_1 - jp bit_close_ei + push hl + push de + call beeper + ld hl, 600 + ld de, 1 + call beeper + pop de + pop hl + push hl + push de + call noise + pop de + pop hl + dec hl + inc de + ld a, h + or l + jr nz, fx3_1 + jp bit_close_ei ; FX4 effect fx4: - call bit_open_di - ld hl, 1124 - ld de, 1 + call bit_open_di + ld hl, 1124 + ld de, 1 fx4_1: - push hl - push de - call noise - pop de - pop hl + push hl + push de + call noise + pop de + pop hl - push hl - push de - ld bc, 900 - sbc hl, bc - call beeper - pop de - pop hl + push hl + push de + ld bc, 900 + sbc hl, bc + call beeper + pop de + pop hl - inc hl - ld a, l - and a - jr nz, fx4_1 - jp bit_close_ei + inc hl + ld a, l + and a + jr nz, fx4_1 + jp bit_close_ei ; Crashing and falling ; FX5 effect fx5: - call bit_open_di - ld hl, 200 - ld de, 1 + call bit_open_di + ld hl, 200 + ld de, 1 fx5_1: - push hl - push de - call beeper - pop de - pop hl + push hl + push de + call beeper + pop de + pop hl - push hl - push de - ld bc, 180 - sbc hl, bc - call noise - pop de - pop hl + push hl + push de + ld bc, 180 + sbc hl, bc + call noise + pop de + pop hl - inc hl - inc de - ld a, l - cp 250 - jr nz, fx5_1 - jp bit_close_ei + inc hl + inc de + ld a, l + cp 250 + jr nz, fx5_1 + jp bit_close_ei ; FX6 effect fx6: - call bit_open_di - ld hl, 300 - ld de, 1 + call bit_open_di + ld hl, 300 + ld de, 1 fx6_1: - push hl - push de - call noise - pop de - pop hl - - push hl - push de - ld bc, 200 - sbc hl, bc - call beeper - pop de - pop hl - - inc hl - inc de - ld a, l - and 50 - jr nz, fx6_1 - jp bit_close_ei - - ENDIF + push hl + push de + call noise + pop de + pop hl + + push hl + push de + ld bc, 200 + sbc hl, bc + call beeper + pop de + pop hl + + inc hl + inc de + ld a, l + and 50 + jr nz, fx6_1 + jp bit_close_ei + +ENDIF diff --git a/libsrc/games/bit_fx6.asm b/libsrc/games/bit_fx6.asm index 744ec249f77..54037ba0fff 100644 --- a/libsrc/games/bit_fx6.asm +++ b/libsrc/games/bit_fx6.asm @@ -8,31 +8,31 @@ ; Library #6 by Stefano Bodrato ; - IF !__CPU_GBZ80__ - SECTION code_clib - PUBLIC bit_fx6 - PUBLIC _bit_fx6 - INCLUDE "games/games.inc" +IF !__CPU_GBZ80__ + SECTION code_clib + PUBLIC bit_fx6 + PUBLIC _bit_fx6 + INCLUDE "games/games.inc" - EXTERN bit_open - EXTERN bit_open_di - EXTERN bit_close - EXTERN bit_close_ei + EXTERN bit_open + EXTERN bit_open_di + EXTERN bit_close + EXTERN bit_close_ei ; ASM driven bending for special effects ;) - EXTERN bit_synth_sub ; entry - EXTERN bit_synth_len ; sound duration + EXTERN bit_synth_sub ; entry + EXTERN bit_synth_len ; sound duration ; FR*_tick should hold the XOR instruction. ; FR*_tick+1 should be set to 0 or to SOUND_ONEBIT_mask - EXTERN FR1_tick - EXTERN FR2_tick - EXTERN FR3_tick - EXTERN FR4_tick + EXTERN FR1_tick + EXTERN FR2_tick + EXTERN FR3_tick + EXTERN FR4_tick ; FR_*+1 needs to be loaded with the 4 sound periods - EXTERN FR_1 - EXTERN FR_2 - EXTERN FR_3 - EXTERN FR_4 + EXTERN FR_1 + EXTERN FR_2 + EXTERN FR_3 + EXTERN FR_4 ;Sound routine..enter in with e holding the desired effect! @@ -41,266 +41,267 @@ bit_fx6: _bit_fx6: ; Initialize the synthetizer - ld a, SOUND_ONEBIT_mask - ld (FR_1+1), a - ld (FR_2+1), a - ld (FR_3+1), a - ld (FR_4+1), a - - ld a, l - cp 8 - ret nc - add a, a - ld e, a - ld d, 0 - ld hl, table - add hl, de - ld a, (hl) - inc hl - ld h, (hl) - ld l, a - jp (hl) - -table: defw fx1 ; effect #0 - defw fx2 - defw fx3 - defw fx4 - defw fx5 - defw fx6 - defw fx7 - defw fx8 + ld a, SOUND_ONEBIT_mask + ld (FR_1+1), a + ld (FR_2+1), a + ld (FR_3+1), a + ld (FR_4+1), a + + ld a, l + cp 8 + ret nc + add a, a + ld e, a + ld d, 0 + ld hl, table + add hl, de + ld a, (hl) + inc hl + ld h, (hl) + ld l, a + jp (hl) + +table: + defw fx1 ; effect #0 + defw fx2 + defw fx3 + defw fx4 + defw fx5 + defw fx6 + defw fx7 + defw fx8 ; Level up fx1: - call bit_open_di - ld b, 40 + call bit_open_di + ld b, 40 bloop: - ld e, a - ld a, b - ld (FR_1+1), a - inc a - ld (bit_synth_len+1), a - ld (FR_2+1), a - inc a - ld (FR_3+1), a - inc a - ld (FR_4+1), a - - ld a, e - push bc - call bit_synth_sub - pop bc - djnz bloop - - jp bit_close_ei + ld e, a + ld a, b + ld (FR_1+1), a + inc a + ld (bit_synth_len+1), a + ld (FR_2+1), a + inc a + ld (FR_3+1), a + inc a + ld (FR_4+1), a + + ld a, e + push bc + call bit_synth_sub + pop bc + djnz bloop + + jp bit_close_ei fx2: - call bit_open_di - ld b, 40 + call bit_open_di + ld b, 40 bloop2: - ld e, a - ld a, 50 - sub b - ld (FR_1+1), a - inc a - ld (FR_2+1), a - inc a - ld (FR_3+1), a - inc a - ld (FR_4+1), a - - ld a, b - IF __CPU_INTEL__ - rrca - rrca - and @00111111 - ELSE - srl a - srl a - ENDIF - inc a - ld (bit_synth_len+1), a - - ld a, e - push bc - call bit_synth_sub - pop bc - djnz bloop2 - - jp bit_close_ei + ld e, a + ld a, 50 + sub b + ld (FR_1+1), a + inc a + ld (FR_2+1), a + inc a + ld (FR_3+1), a + inc a + ld (FR_4+1), a + + ld a, b + IF __CPU_INTEL__ + rrca + rrca + and @00111111 + ELSE + srl a + srl a + ENDIF + inc a + ld (bit_synth_len+1), a + + ld a, e + push bc + call bit_synth_sub + pop bc + djnz bloop2 + + jp bit_close_ei ; Level up II fx3: - call bit_open_di - ld b, 40 + call bit_open_di + ld b, 40 bloop3: - ld e, a - ld a, b - ld (FR_1+1), a - inc a - ld (bit_synth_len+1), a - inc a - ld (FR_2+1), a - ld a, 42 - sub b - ld (FR_3+1), a - inc a - ld (FR_4+1), a - - ld a, e - push bc - call bit_synth_sub - pop bc - djnz bloop3 - - jp bit_close_ei + ld e, a + ld a, b + ld (FR_1+1), a + inc a + ld (bit_synth_len+1), a + inc a + ld (FR_2+1), a + ld a, 42 + sub b + ld (FR_3+1), a + inc a + ld (FR_4+1), a + + ld a, e + push bc + call bit_synth_sub + pop bc + djnz bloop3 + + jp bit_close_ei fx4: - ld a, 5 - ld (bit_synth_len+1), a + ld a, 5 + ld (bit_synth_len+1), a - call bit_open_di - ld b, 3 + call bit_open_di + ld b, 3 bloop4: - ld e, a - ld a, 50 - sub b - ld (FR_1+1), a - add 20 - ld (FR_2+1), a - add 30 - ld (FR_3+1), a - ld a, 60 - sub a - ld (FR_4+1), a + ld e, a + ld a, 50 + sub b + ld (FR_1+1), a + add 20 + ld (FR_2+1), a + add 30 + ld (FR_3+1), a + ld a, 60 + sub a + ld (FR_4+1), a - ld a, e - push bc - call bit_synth_sub - pop bc - djnz bloop4 + ld a, e + push bc + call bit_synth_sub + pop bc + djnz bloop4 - jp bit_close_ei + jp bit_close_ei fx5: - ld a, 5 - ld (bit_synth_len+1), a + ld a, 5 + ld (bit_synth_len+1), a - call bit_open_di - ld b, 10 + call bit_open_di + ld b, 10 bloop5: - ld e, a - ld a, b - ld (FR_1+1), a - add 20 - ld (FR_2+1), a - add 30 - ld (FR_3+1), a - ld a, 60 - sub a - ld (FR_4+1), a - - ld a, e - push bc - call bit_synth_sub - pop bc - djnz bloop5 - - jp bit_close_ei + ld e, a + ld a, b + ld (FR_1+1), a + add 20 + ld (FR_2+1), a + add 30 + ld (FR_3+1), a + ld a, 60 + sub a + ld (FR_4+1), a + + ld a, e + push bc + call bit_synth_sub + pop bc + djnz bloop5 + + jp bit_close_ei fx6: - ld a, 8 - ld (bit_synth_len+1), a + ld a, 8 + ld (bit_synth_len+1), a - call bit_open_di + call bit_open_di - ld b, 250 + ld b, 250 bloop6: - ld e, a - ld a, b - ld (FR_1+1), a - sub 4 - ld (FR_2+1), a - sub 15 - ld (FR_3+1), a - sub 35 - ld (FR_4+1), a - ld a, e + ld e, a + ld a, b + ld (FR_1+1), a + sub 4 + ld (FR_2+1), a + sub 15 + ld (FR_3+1), a + sub 35 + ld (FR_4+1), a + ld a, e - push bc - call bit_synth_sub - pop bc + push bc + call bit_synth_sub + pop bc - jr nz, bloop6 + jr nz, bloop6 - jp bit_close_ei + jp bit_close_ei fx7: - ld a, 8 - ld (bit_synth_len+1), a + ld a, 8 + ld (bit_synth_len+1), a - call bit_open_di + call bit_open_di - ld e, a - ld a, 255 - ld (FR_1+1), a - sub 1 - ld (FR_2+1), a - sub 10 - ld (FR_3+1), a - sub 1 - ld (FR_4+1), a - ld a, e + ld e, a + ld a, 255 + ld (FR_1+1), a + sub 1 + ld (FR_2+1), a + sub 10 + ld (FR_3+1), a + sub 1 + ld (FR_4+1), a + ld a, e - push bc - call bit_synth_sub - pop bc + push bc + call bit_synth_sub + pop bc - jp bit_close_ei + jp bit_close_ei fx8: - ld a, 8 - ld (bit_synth_len+1), a + ld a, 8 + ld (bit_synth_len+1), a - call bit_open_di + call bit_open_di - ld e, a - ld a, 255 - ld (FR_1+1), a - sub 100 - ld (FR_2+1), a - sub 10 - ld (FR_3+1), a - sub 40 - ld (FR_4+1), a - ld a, e + ld e, a + ld a, 255 + ld (FR_1+1), a + sub 100 + ld (FR_2+1), a + sub 10 + ld (FR_3+1), a + sub 40 + ld (FR_4+1), a + ld a, e - push bc - call bit_synth_sub - pop bc + push bc + call bit_synth_sub + pop bc - jp bit_close_ei + jp bit_close_ei - ENDIF +ENDIF diff --git a/libsrc/games/bit_fx7.asm b/libsrc/games/bit_fx7.asm index ac288ca1129..a2dd096475d 100644 --- a/libsrc/games/bit_fx7.asm +++ b/libsrc/games/bit_fx7.asm @@ -8,240 +8,243 @@ ; Library #4 by Stefano Bodrato ; - IF !__CPU_GBZ80__ - SECTION code_clib - PUBLIC bit_fx7 - PUBLIC _bit_fx7 - INCLUDE "games/games.inc" - - EXTERN noise - EXTERN bit_open - EXTERN bit_open_di - EXTERN bit_close - EXTERN bit_close_ei - EXTERN bit_click +IF !__CPU_GBZ80__ + SECTION code_clib + PUBLIC bit_fx7 + PUBLIC _bit_fx7 + INCLUDE "games/games.inc" + + EXTERN noise + EXTERN bit_open + EXTERN bit_open_di + EXTERN bit_close + EXTERN bit_close_ei + EXTERN bit_click ;Sound routine..enter in with e holding the desired effect! bit_fx7: _bit_fx7: - ld a, l - cp 8 - ret nc - add a, a - ld e, a - ld d, 0 - ld hl, table - add hl, de - ld a, (hl) - inc hl - ld h, (hl) - ld l, a - jp (hl) - -table: defw fx1 ; effect #0 - defw fx2 - defw fx3 - defw fx4 - defw fx5 - defw fx6 - defw fx7 - defw fx8 + ld a, l + cp 8 + ret nc + add a, a + ld e, a + ld d, 0 + ld hl, table + add hl, de + ld a, (hl) + inc hl + ld h, (hl) + ld l, a + jp (hl) + +table: + defw fx1 ; effect #0 + defw fx2 + defw fx3 + defw fx4 + defw fx5 + defw fx6 + defw fx7 + defw fx8 ; short noise fx1: - call bit_open_di - ld b, 1 -fx1_1: push bc - ld hl, 600 - ld de, 2 -fx1_2: push hl - push de - call noise - pop de - pop hl - push hl - push de - ld bc, 400 - sbc hl, bc - ld l, c - ld h, b - call noise - pop de - pop hl - ld bc, 40 - and a - sbc hl, bc - jr nc, fx1_2 - pop bc - djnz fx1_1 - jp bit_close_ei + call bit_open_di + ld b, 1 +fx1_1: + push bc + ld hl, 600 + ld de, 2 +fx1_2: + push hl + push de + call noise + pop de + pop hl + push hl + push de + ld bc, 400 + sbc hl, bc + ld l, c + ld h, b + call noise + pop de + pop hl + ld bc, 40 + and a + sbc hl, bc + jr nc, fx1_2 + pop bc + djnz fx1_1 + jp bit_close_ei ; Crash/Explosion fx2: - call bit_open_di - ld hl, 220 + call bit_open_di + ld hl, 220 fx2_1: - ld de, 1 - push hl - push de - ld a, 55 - xor l - ld l, a - call noise - pop de - pop hl - dec hl - ld a, h - or l - jr nz, fx2_1 - jp bit_close_ei + ld de, 1 + push hl + push de + ld a, 55 + xor l + ld l, a + call noise + pop de + pop hl + dec hl + ld a, h + or l + jr nz, fx2_1 + jp bit_close_ei ; Explosion fx3: - call bit_open_di - ld hl, 1024 + call bit_open_di + ld hl, 1024 fx3_1: - ld de, 1 - push hl - push de - ld a, 55 - xor l - ld l, a - call noise - pop de - pop hl - dec hl - ld a, l - cp 80 - jr nz, fx3_1 - jp bit_close_ei + ld de, 1 + push hl + push de + ld a, 55 + xor l + ld l, a + call noise + pop de + pop hl + dec hl + ld a, l + cp 80 + jr nz, fx3_1 + jp bit_close_ei ; FX4 effect fx4: - call bit_open_di - ld hl, 1124 - ld de, 1 + call bit_open_di + ld hl, 1124 + ld de, 1 fx4_1: - push hl - push de - ld bc, 900 - sbc hl, bc - call noise - pop de - pop hl + push hl + push de + ld bc, 900 + sbc hl, bc + call noise + pop de + pop hl - inc hl - ld a, l - cp 80 - jr nz, fx4_1 - jp bit_close_ei + inc hl + ld a, l + cp 80 + jr nz, fx4_1 + jp bit_close_ei ; FX5 effect fx5: - call bit_open_di - ld hl, 1124 - ld de, 1 + call bit_open_di + ld hl, 1124 + ld de, 1 fx5_1: - push hl - push de - ld bc, 1000 - sbc hl, bc - call noise - pop de - pop hl + push hl + push de + ld bc, 1000 + sbc hl, bc + call noise + pop de + pop hl - inc hl - ld a, l - and a - jr nz, fx5_1 - jp bit_close_ei + inc hl + ld a, l + and a + jr nz, fx5_1 + jp bit_close_ei ; FX6 effect fx6: - call bit_open_di - ld hl, 220 - ld de, 1 + call bit_open_di + ld hl, 220 + ld de, 1 fx6_1: - push hl - push de - call noise - pop de - pop hl + push hl + push de + call noise + pop de + pop hl - push hl - push de - ld bc, 180 - sbc hl, bc - call noise - pop de - pop hl + push hl + push de + ld bc, 180 + sbc hl, bc + call noise + pop de + pop hl - inc hl - inc de - ld a, l - cp 240 - jr nz, fx6_1 - jp bit_close_ei + inc hl + inc de + ld a, l + cp 240 + jr nz, fx6_1 + jp bit_close_ei ; FX7 effect fx7: - call bit_open_di - ld hl, 300 - ld de, 1 + call bit_open_di + ld hl, 300 + ld de, 1 fx7_1: - push hl - push de - call noise - pop de - pop hl - - push hl - push de - ld bc, 200 - sbc hl, bc - call noise - pop de - pop hl - - inc hl - inc de - ld a, l - and 60 - jr nz, fx7_1 - jp bit_close_ei + push hl + push de + call noise + pop de + pop hl + + push hl + push de + ld bc, 200 + sbc hl, bc + call noise + pop de + pop hl + + inc hl + inc de + ld a, l + and 60 + jr nz, fx7_1 + jp bit_close_ei ; FX8 effect fx8: - call bit_open_di - ld hl, 320 + call bit_open_di + ld hl, 320 fx8_1: - ld de, 1 - push hl - push de - ld a, 88 - xor l - ld l, a - call noise - pop de - pop hl - dec hl - ld a, h - or l - jr nz, fx8_1 - jp bit_close_ei - - ENDIF + ld de, 1 + push hl + push de + ld a, 88 + xor l + ld l, a + call noise + pop de + pop hl + dec hl + ld a, h + or l + jr nz, fx8_1 + jp bit_close_ei + +ENDIF diff --git a/libsrc/games/bit_load_block_zx.asm b/libsrc/games/bit_load_block_zx.asm index 81b959475ac..61abdf09e6d 100644 --- a/libsrc/games/bit_load_block_zx.asm +++ b/libsrc/games/bit_load_block_zx.asm @@ -1,22 +1,22 @@ ; int bit_load_block_zx(void *addr, size_t len, unsigned char type) ; CALLER linkage for function pointers - PUBLIC bit_load_block_zx - PUBLIC _bit_load_block_zx + PUBLIC bit_load_block_zx + PUBLIC _bit_load_block_zx - EXTERN asm_bit_load_block_zx + EXTERN asm_bit_load_block_zx bit_load_block_zx: _bit_load_block_zx: - pop hl - pop bc - ld a, c - pop de - pop bc - push bc - push de - push bc - push hl + pop hl + pop bc + ld a, c + pop de + pop bc + push bc + push de + push bc + push hl - jp asm_bit_load_block_zx + jp asm_bit_load_block_zx diff --git a/libsrc/games/bit_load_block_zx_callee.asm b/libsrc/games/bit_load_block_zx_callee.asm index 5f2cb6c0187..a74732f6a51 100644 --- a/libsrc/games/bit_load_block_zx_callee.asm +++ b/libsrc/games/bit_load_block_zx_callee.asm @@ -5,27 +5,27 @@ ; - PUBLIC bit_load_block_zx_callee - PUBLIC _bit_load_block_zx_callee - PUBLIC asm_bit_load_block_zx + PUBLIC bit_load_block_zx_callee + PUBLIC _bit_load_block_zx_callee + PUBLIC asm_bit_load_block_zx - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" bit_load_block_zx_callee: _bit_load_block_zx_callee: - IF __CPU_GBZ80__||__CPU_INTEL__ +IF __CPU_GBZ80__||__CPU_INTEL__ asm_bit_load_block_zx: - ret - ELSE + ret +ELSE - pop hl - pop bc - ld a, c - pop de - pop bc - push hl + pop hl + pop bc + ld a, c + pop de + pop bc + push hl asm_bit_load_block_zx: @@ -34,38 +34,38 @@ asm_bit_load_block_zx: ; a = type - push ix + push ix - push bc - pop ix + push bc + pop ix - SCF + SCF - INC D - EX AF, AF' + INC D + EX AF, AF' - IF FORmsx - LD A, $08 - OUT ($AB), A ; MOTOR ON - ENDIF + IF FORmsx + LD A, $08 + OUT ($AB), A ; MOTOR ON + ENDIF - IF FORsvi - LD A, $08 - OUT ($97), A ; MOTOR ON - ENDIF + IF FORsvi + LD A, $08 + OUT ($97), A ; MOTOR ON + ENDIF - IF FORmc1000 - LD A, $0F - OUT ($20), A ; Set PSG register for data input port - ENDIF + IF FORmc1000 + LD A, $0F + OUT ($20), A ; Set PSG register for data input port + ENDIF - DEC D - DI ; Disable Interrupts + DEC D + DI ; Disable Interrupts ; LD A,$0F ; OUT ($FC),A - CALL LD_BYTES + CALL LD_BYTES ; LD A,(__SYSVAR_BORDCR) ; AND $38 @@ -76,139 +76,139 @@ asm_bit_load_block_zx: ; LD A,$7F ; IN A,($FC) ; RRA - EI + EI - IF FORmsx - LD A, $09 - OUT ($AB), A ; MOTOR OFF - ENDIF + IF FORmsx + LD A, $09 + OUT ($AB), A ; MOTOR OFF + ENDIF - IF FORsvi - LD A, $09 - OUT ($97), A ; MOTOR OFF - ENDIF + IF FORsvi + LD A, $09 + OUT ($97), A ; MOTOR OFF + ENDIF - pop ix + pop ix ; LD HL,0 ; RET NC ; DEC HL ; Error: -1 - RET + RET LD_BYTES: - IN A, (TAPEIN_ONEBIT_port) + IN A, (TAPEIN_ONEBIT_port) ;RRA - AND TAPEIN_ONEBIT_mask + AND TAPEIN_ONEBIT_mask ;AND $20 ;OR $02 - LD C, A - CP A + LD C, A + CP A LD_BREAK: - RET NZ + RET NZ LD_START: - CALL LD_EDGE_1 - JR NC, LD_BREAK + CALL LD_EDGE_1 + JR NC, LD_BREAK - LD HL, $0415 + LD HL, $0415 LD_WAIT: - DJNZ LD_WAIT + DJNZ LD_WAIT - DEC HL - LD A, H - OR L - JR NZ, LD_WAIT + DEC HL + LD A, H + OR L + JR NZ, LD_WAIT - CALL LD_EDGE_2 - JR NC, LD_BREAK + CALL LD_EDGE_2 + JR NC, LD_BREAK LD_LEADER: - LD B, $9C - CALL LD_EDGE_2 - JR NC, LD_BREAK + LD B, $9C + CALL LD_EDGE_2 + JR NC, LD_BREAK - LD A, $C6 - CP B - JR NC, LD_START + LD A, $C6 + CP B + JR NC, LD_START - INC H - JR NZ, LD_LEADER + INC H + JR NZ, LD_LEADER LD_SYNC: - LD B, $C9 - CALL LD_EDGE_1 - JR NC, LD_BREAK + LD B, $C9 + CALL LD_EDGE_1 + JR NC, LD_BREAK - LD A, B - CP $D4 - JR NC, LD_SYNC + LD A, B + CP $D4 + JR NC, LD_SYNC - CALL LD_EDGE_1 - RET NC + CALL LD_EDGE_1 + RET NC - LD A, C - XOR $03 - LD C, A - LD H, $00 - LD B, $B0 - JR LD_MARKER + LD A, C + XOR $03 + LD C, A + LD H, $00 + LD B, $B0 + JR LD_MARKER LD_LOOP: - EX AF, AF' - JR NZ, LD_FLAG + EX AF, AF' + JR NZ, LD_FLAG - LD (IX+$00), L ; - JR LD_NEXT + LD (IX+$00), L ; + JR LD_NEXT LD_FLAG: - RL C - XOR L - RET NZ + RL C + XOR L + RET NZ - LD A, C - RRA - LD C, A - INC DE - JR LD_DEC + LD A, C + RRA + LD C, A + INC DE + JR LD_DEC LD_NEXT: - INC IX + INC IX LD_DEC: - DEC DE - EX AF, AF' - LD B, $B2 + DEC DE + EX AF, AF' + LD B, $B2 LD_MARKER: - LD L, $01 + LD L, $01 LD_BYTE: - CALL LD_EDGE_2 - RET NC - - LD A, $CB - CP B - RL L - LD B, $B0 - JP NC, LD_BYTE - - LD A, H - XOR L - LD H, A - LD A, D - OR E - JR NZ, LD_LOOP - - LD A, H - CP $01 - RET + CALL LD_EDGE_2 + RET NC + + LD A, $CB + CP B + RL L + LD B, $B0 + JP NC, LD_BYTE + + LD A, H + XOR L + LD H, A + LD A, D + OR E + JR NZ, LD_LOOP + + LD A, H + CP $01 + RET ;-------------------------- ; Check signal being loaded @@ -217,39 +217,41 @@ LD_BYTE: ; LD_EDGE_2: - CALL LD_EDGE_1 - RET NC + CALL LD_EDGE_1 + RET NC LD_EDGE_1: - LD A, LDR_DATA_TIMING + LD A, LDR_DATA_TIMING ;; LD-DELAY -L05E9: DEC A - JR NZ, L05E9 ; to LD-DELAY +L05E9: + DEC A + JR NZ, L05E9 ; to LD-DELAY - AND A + AND A ;; LD-SAMPLE -L05ED: INC B - RET Z +L05ED: + INC B + RET Z ;LD A,$7F ;RRA - IN A, (TAPEIN_ONEBIT_port) + IN A, (TAPEIN_ONEBIT_port) ; RET NC - XOR C - AND TAPEIN_ONEBIT_mask - JR Z, L05ED ; to LD-SAMPLE + XOR C + AND TAPEIN_ONEBIT_mask + JR Z, L05ED ; to LD-SAMPLE - LD A, C - CPL - LD C, A - AND $07 + LD A, C + CPL + LD C, A + AND $07 ;OR $09 ;OUT (BORDER),A - SCF ; Set Carry Flag - RET + SCF ; Set Carry Flag + RET - ENDIF +ENDIF diff --git a/libsrc/games/bit_noise.asm b/libsrc/games/bit_noise.asm index 0f9ce73690c..22259956331 100644 --- a/libsrc/games/bit_noise.asm +++ b/libsrc/games/bit_noise.asm @@ -4,13 +4,13 @@ ; ; void bit_noise(int duration, int period); ; - SECTION code_clib - PUBLIC bit_noise - PUBLIC _bit_noise - EXTERN noise + SECTION code_clib + PUBLIC bit_noise + PUBLIC _bit_noise + EXTERN noise - EXTERN bit_open_di - EXTERN bit_close_ei + EXTERN bit_open_di + EXTERN bit_close_ei ; ; Stub by Stefano Bodrato - 8/10/2001 @@ -19,13 +19,13 @@ bit_noise: _bit_noise: - call bit_open_di - pop bc - pop hl - pop de - push de - push hl - push bc + call bit_open_di + pop bc + pop hl + pop de + push de + push hl + push bc - call noise - jp bit_close_ei + call noise + jp bit_close_ei diff --git a/libsrc/games/bit_noise_callee.asm b/libsrc/games/bit_noise_callee.asm index 56d322f17d6..45f4fa73c10 100644 --- a/libsrc/games/bit_noise_callee.asm +++ b/libsrc/games/bit_noise_callee.asm @@ -4,13 +4,13 @@ ; ; void bit_noise(int duration, int period); ; - SECTION code_clib - PUBLIC bit_noise_callee - PUBLIC _bit_noise_callee - EXTERN noise + SECTION code_clib + PUBLIC bit_noise_callee + PUBLIC _bit_noise_callee + EXTERN noise - EXTERN bit_open_di - EXTERN bit_close_ei + EXTERN bit_open_di + EXTERN bit_close_ei ; ; Stub by Stefano Bodrato - 13/01/2021 @@ -19,12 +19,12 @@ bit_noise_callee: _bit_noise_callee: - call bit_open_di - pop bc - pop hl - pop de - push bc + call bit_open_di + pop bc + pop hl + pop de + push bc - call noise - jp bit_close_ei + call noise + jp bit_close_ei diff --git a/libsrc/games/bit_open.asm b/libsrc/games/bit_open.asm index 3f911801804..242e19474a4 100644 --- a/libsrc/games/bit_open.asm +++ b/libsrc/games/bit_open.asm @@ -7,13 +7,13 @@ ; Stefano Bodrato - 2001..2013 ; - INCLUDE "games/games.inc" - SECTION code_clib - PUBLIC bit_open - PUBLIC _bit_open - EXTERN __snd_tick + INCLUDE "games/games.inc" + SECTION code_clib + PUBLIC bit_open + PUBLIC _bit_open + EXTERN __snd_tick bit_open: _bit_open: - ld a, (__snd_tick) - ret + ld a, (__snd_tick) + ret diff --git a/libsrc/games/bit_open_di.asm b/libsrc/games/bit_open_di.asm index 1331dd64b5a..1c65e5aebc8 100644 --- a/libsrc/games/bit_open_di.asm +++ b/libsrc/games/bit_open_di.asm @@ -8,23 +8,23 @@ ; Stefano Bodrato - 2001..2013 ; - IF !__CPU_GBZ80__&&!__CPU_INTEL__ - SECTION code_clib - PUBLIC bit_open_di - PUBLIC _bit_open_di - EXTERN __snd_tick - EXTERN __bit_irqstatus +IF !__CPU_GBZ80__&&!__CPU_INTEL__ + SECTION code_clib + PUBLIC bit_open_di + PUBLIC _bit_open_di + EXTERN __snd_tick + EXTERN __bit_irqstatus - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" bit_open_di: _bit_open_di: - ld a, i ; get the current status of the irq line - di - push af - ex (sp), hl - ld (__bit_irqstatus), hl - pop hl - ld a, (__snd_tick) - ret - ENDIF + ld a, i ; get the current status of the irq line + di + push af + ex (sp), hl + ld (__bit_irqstatus), hl + pop hl + ld a, (__snd_tick) + ret +ENDIF diff --git a/libsrc/games/bit_save_block_zx.asm b/libsrc/games/bit_save_block_zx.asm index e9fcaad30eb..82b51f56b81 100644 --- a/libsrc/games/bit_save_block_zx.asm +++ b/libsrc/games/bit_save_block_zx.asm @@ -1,22 +1,22 @@ ; int bit_save_block_zx(void *addr, size_t len, unsigned char type) ; CALLER linkage for function pointers - PUBLIC bit_save_block_zx - PUBLIC _bit_save_block_zx + PUBLIC bit_save_block_zx + PUBLIC _bit_save_block_zx - EXTERN asm_bit_save_block_zx + EXTERN asm_bit_save_block_zx bit_save_block_zx: _bit_save_block_zx: - pop hl - pop bc - ld a, c - pop de - pop bc - push bc - push de - push bc - push hl + pop hl + pop bc + ld a, c + pop de + pop bc + push bc + push de + push bc + push hl - jp asm_bit_save_block_zx + jp asm_bit_save_block_zx diff --git a/libsrc/games/bit_save_block_zx_callee.asm b/libsrc/games/bit_save_block_zx_callee.asm index 60d76d1cc7e..9e61c784bc2 100644 --- a/libsrc/games/bit_save_block_zx_callee.asm +++ b/libsrc/games/bit_save_block_zx_callee.asm @@ -5,34 +5,34 @@ ; - SECTION code_clib + SECTION code_clib - PUBLIC bit_save_block_zx_callee - PUBLIC _bit_save_block_zx_callee - PUBLIC asm_bit_save_block_zx + PUBLIC bit_save_block_zx_callee + PUBLIC _bit_save_block_zx_callee + PUBLIC asm_bit_save_block_zx - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" - EXTERN bit_open_di - EXTERN bit_close_ei - EXTERN __snd_tick + EXTERN bit_open_di + EXTERN bit_close_ei + EXTERN __snd_tick - IF __CPU_GBZ80__||__CPU_INTEL__ +IF __CPU_GBZ80__||__CPU_INTEL__ bit_save_block_zx_callee: _bit_save_block_zx_callee: asm_bit_save_block_zx: - ret - ELSE + ret +ELSE bit_save_block_zx_callee: _bit_save_block_zx_callee: - pop hl - pop bc - ld a, c - pop de - pop bc - push hl + pop hl + pop bc + ld a, c + pop de + pop bc + push hl ; enter : ix = addr ; de = len @@ -40,158 +40,158 @@ _bit_save_block_zx_callee: asm_bit_save_block_zx: - push af - call bit_open_di - pop af + push af + call bit_open_di + pop af - push ix - push bc - pop ix + push ix + push bc + pop ix - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx + ENDIF - CALL SA_BYTES + CALL SA_BYTES - pop ix - JP bit_close_ei + pop ix + JP bit_close_ei SA_BYTES: - LD HL, $1F80 ; This constant will give a leader of about 5 seconds for a 'header'. - BIT 7, A ; Jump forward if saving a header. - JR Z, SA_FLAG + LD HL, $1F80 ; This constant will give a leader of about 5 seconds for a 'header'. + BIT 7, A ; Jump forward if saving a header. + JR Z, SA_FLAG - LD HL, $0C98 ; This constant will give a leader of about 2 seconds for a program/data block. + LD HL, $0C98 ; This constant will give a leader of about 2 seconds for a program/data block. SA_FLAG: - EX AF, AF' ; The flag is saved. - INC DE ; The 'length' is incremented and the 'base address' reduced to allow for the flag. - DEC IX + EX AF, AF' ; The flag is saved. + INC DE ; The 'length' is incremented and the 'base address' reduced to allow for the flag. + DEC IX - ld b, 2 ; Give a short value to B to avoid jams in SA_LEADER - ld a, (__snd_tick) ; MIC on + ld b, 2 ; Give a short value to B to avoid jams in SA_LEADER + ld a, (__snd_tick) ; MIC on SA_LEADER: - DJNZ SA_LEADER ; The main timing period. + DJNZ SA_LEADER ; The main timing period. - ONEBITOUT - xor SOUND_ONEBIT_mask ; MIC on<>off + ONEBITOUT + xor SOUND_ONEBIT_mask ; MIC on<>off - LD B, PLAY_DATA_LEAD ; The main timing constant. - DEC L ; Decrease the low counter. - JR NZ, SA_LEADER ; Jump back for another pulse. + LD B, PLAY_DATA_LEAD ; The main timing constant. + DEC L ; Decrease the low counter. + JR NZ, SA_LEADER ; Jump back for another pulse. - DEC B - DEC H - JP P, SA_LEADER + DEC B + DEC H + JP P, SA_LEADER ; A sync pulse is now sent. ;----------------------------- - LD B, PLAY_DATA_SYNC1 ; MIC off for 667 T states from 'OUT to OUT'. + LD B, PLAY_DATA_SYNC1 ; MIC off for 667 T states from 'OUT to OUT'. SA_SYNC_1: - DJNZ SA_SYNC_1 + DJNZ SA_SYNC_1 - ONEBITOUT ; MIC on + ONEBITOUT ; MIC on - ld a, (__snd_tick) - xor SOUND_ONEBIT_mask ; MIC off + ld a, (__snd_tick) + xor SOUND_ONEBIT_mask ; MIC off - LD B, PLAY_DATA_SYNC2 ; MIC on for 735 T States from 'OUT to OUT'. + LD B, PLAY_DATA_SYNC2 ; MIC on for 735 T States from 'OUT to OUT'. SA_SYNC_2: - DJNZ SA_SYNC_2 + DJNZ SA_SYNC_2 - ONEBITOUT ; MIC off + ONEBITOUT ; MIC off - LD B, PLAY_DATA_SYNC2+PLAY_DATA_BIAS - ld c, a ; 'MIC off' - xor SOUND_ONEBIT_mask + LD B, PLAY_DATA_SYNC2+PLAY_DATA_BIAS + ld c, a ; 'MIC off' + xor SOUND_ONEBIT_mask - EX AF, AF' ; Fetch the flag and pass it to the L register for 'sending'. - LD L, A - JP SA_START ; Jump forward into the saving loop. + EX AF, AF' ; Fetch the flag and pass it to the L register for 'sending'. + LD L, A + JP SA_START ; Jump forward into the saving loop. ;----------------------------- SA_LOOP: - LD A, D ; The 'length' counter is tested and the jump taken when it has reached zero. - OR E - JR Z, SA_PARITY + LD A, D ; The 'length' counter is tested and the jump taken when it has reached zero. + OR E + JR Z, SA_PARITY - LD L, (IX+$00) ; Fetch the next byte that is to be saved. + LD L, (IX+$00) ; Fetch the next byte that is to be saved. SA_LOOP_PARITY: - LD A, H ; Fetch the current 'parity'. - XOR L ; Include the present byte. + LD A, H ; Fetch the current 'parity'. + XOR L ; Include the present byte. SA_START: - LD H, A ; Restore the 'parity'. Note that on entry here the 'flag' value initialises 'parity'. - ld a, (__snd_tick) ; MIC on + LD H, A ; Restore the 'parity'. Note that on entry here the 'flag' value initialises 'parity'. + ld a, (__snd_tick) ; MIC on - SCF ; Set the carry flag. This will act as a 'marker' for the 8 bits of a byte. - JP SA_BYTE + SCF ; Set the carry flag. This will act as a 'marker' for the 8 bits of a byte. + JP SA_BYTE ;------------------------ SA_PARITY: - LD L, H - JR SA_LOOP_PARITY + LD L, H + JR SA_LOOP_PARITY ;------------------------ SA_BIT_2: - LD A, C ; Come here on the second pass and fetch 'MIC off and yellow'. - BIT 7, B ; Set the zero flag to show 'second pass'. + LD A, C ; Come here on the second pass and fetch 'MIC off and yellow'. + BIT 7, B ; Set the zero flag to show 'second pass'. SA_BIT_1: - DJNZ SA_BIT_1 ; The main timing loop; always 801 T states on a second pass. + DJNZ SA_BIT_1 ; The main timing loop; always 801 T states on a second pass. - JR NC, SA_OUT ; Jump, taking the shorter path, if saving a '0'. + JR NC, SA_OUT ; Jump, taking the shorter path, if saving a '0'. - LD B, PLAY_DATA_BIT0+PLAY_DATA_BIAS + LD B, PLAY_DATA_BIT0+PLAY_DATA_BIAS ; However if saving a '1' then add 855 T states. SA_SET: - DJNZ SA_SET + DJNZ SA_SET ;------------------------ SA_OUT: - ONEBITOUT + ONEBITOUT - LD B, PLAY_DATA_BIT0 - JR NZ, SA_BIT_2 + LD B, PLAY_DATA_BIT0 + JR NZ, SA_BIT_2 - DEC B + DEC B - XOR A ; Clear the carry flag and set A to hold.. - ld a, (__snd_tick) ; ..MIC on + XOR A ; Clear the carry flag and set A to hold.. + ld a, (__snd_tick) ; ..MIC on SA_BYTE: - RL L ; Move bit 7 to the carry and the 'marker' leftwards. - JP NZ, SA_BIT_1 ; Save the bit unless finished with the byte. + RL L ; Move bit 7 to the carry and the 'marker' leftwards. + JP NZ, SA_BIT_1 ; Save the bit unless finished with the byte. - DEC DE - INC IX - LD B, PLAY_DATA_SYNC1 ; Set the timing constant for the first bit of the next byte. + DEC DE + INC IX + LD B, PLAY_DATA_SYNC1 ; Set the timing constant for the first bit of the next byte. ; LD A,$7F ; Return (to SA_LD_RET) if the BREAK key is being pressed. ; IN A,($FE) ; RRA ; RET NC - LD A, D ; test the 'counter' and jump back.. - INC A ; ..even if it has reached zero (so as to send the 'parity' byte). - JP NZ, SA_LOOP + LD A, D ; test the 'counter' and jump back.. + INC A ; ..even if it has reached zero (so as to send the 'parity' byte). + JP NZ, SA_LOOP - LD B, PLAY_DATA_SYNC2+PLAY_DATA_BIAS + LD B, PLAY_DATA_SYNC2+PLAY_DATA_BIAS ; Exit when the 'counter' reaches +FFFF. But first give a short delay. SA_DELAY: - DJNZ SA_DELAY - RET + DJNZ SA_DELAY + RET - ENDIF +ENDIF diff --git a/libsrc/games/bit_save_msx.asm b/libsrc/games/bit_save_msx.asm index 661fa3ed604..e8ee75c54ea 100644 --- a/libsrc/games/bit_save_msx.asm +++ b/libsrc/games/bit_save_msx.asm @@ -6,38 +6,38 @@ ; int bit_save_msx(char *name, size_t loadstart, void *start, void *exec, size_t len); ; - SECTION code_clib + SECTION code_clib - PUBLIC bit_save_msx - PUBLIC _bit_save_msx + PUBLIC bit_save_msx + PUBLIC _bit_save_msx - EXTERN asm_bit_save_msx + EXTERN asm_bit_save_msx bit_save_msx: _bit_save_msx: - IF __CPU_GBZ80__||__CPU_INTEL__ - ret - ELSE - - POP AF ; ret_addr - POP DE ; len - POP BC ; exec - POP HL ; start - EXX - POP DE ; loadstart - POP HL ; name - - PUSH HL - PUSH DE - EXX - PUSH HL - PUSH BC - PUSH DE - PUSH AF - - EXX - jp asm_bit_save_msx - - ENDIF +IF __CPU_GBZ80__||__CPU_INTEL__ + ret +ELSE + + POP AF ; ret_addr + POP DE ; len + POP BC ; exec + POP HL ; start + EXX + POP DE ; loadstart + POP HL ; name + + PUSH HL + PUSH DE + EXX + PUSH HL + PUSH BC + PUSH DE + PUSH AF + + EXX + jp asm_bit_save_msx + +ENDIF diff --git a/libsrc/games/bit_save_msx_callee.asm b/libsrc/games/bit_save_msx_callee.asm index c72cde4533d..de6d67b9988 100644 --- a/libsrc/games/bit_save_msx_callee.asm +++ b/libsrc/games/bit_save_msx_callee.asm @@ -6,241 +6,241 @@ ; int bit_save_msx(char *name, size_t loadstart, void *start, void *exec, size_t len); ; - SECTION code_clib + SECTION code_clib - PUBLIC bit_save_msx_callee - PUBLIC _bit_save_msx_callee - PUBLIC asm_bit_save_msx + PUBLIC bit_save_msx_callee + PUBLIC _bit_save_msx_callee + PUBLIC asm_bit_save_msx - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" - EXTERN bit_open_di - EXTERN bit_close_ei - EXTERN __snd_tick + EXTERN bit_open_di + EXTERN bit_close_ei + EXTERN __snd_tick - IF __CPU_GBZ80__||__CPU_INTEL__ +IF __CPU_GBZ80__||__CPU_INTEL__ bit_save_msx_callee: _bit_save_msx_callee: asm_bit_save_msx: - ret - ELSE + ret +ELSE bit_save_msx_callee: _bit_save_msx_callee: - POP AF ; ret_addr - POP DE ; len - POP BC ; exec - POP HL ; start - EXX - POP DE ; loadstart - POP HL ; name + POP AF ; ret_addr + POP DE ; len + POP BC ; exec + POP HL ; start + EXX + POP DE ; loadstart + POP HL ; name - PUSH AF + PUSH AF asm_bit_save_msx: - PUSH IX - call bit_open_di + PUSH IX + call bit_open_di - PUSH DE - LD A, $D0 ; BYTE block type header (long leading tone) - CALL SEND_CAS_FNAME - POP DE + PUSH DE + LD A, $D0 ; BYTE block type header (long leading tone) + CALL SEND_CAS_FNAME + POP DE - XOR A ; short leading tone - CALL CWRTON ; start tape for writing + XOR A ; short leading tone + CALL CWRTON ; start tape for writing - EX DE, HL - PUSH HL - CALL CASOUT_HL ; declared M/C starting address + EX DE, HL + PUSH HL + CALL CASOUT_HL ; declared M/C starting address - EXX + EXX - EX (SP), HL - ADD HL, DE - CALL CASOUT_HL ; declared M/C ending address + EX (SP), HL + ADD HL, DE + CALL CASOUT_HL ; declared M/C ending address - LD H, B - LD L, C - CALL CASOUT_HL ; declared M/C exec entry + LD H, B + LD L, C + CALL CASOUT_HL ; declared M/C exec entry - POP HL ; real starting address - PUSH HL - ADD HL, DE ; real ending address - POP DE - EX DE, HL + POP HL ; real starting address + PUSH HL + ADD HL, DE ; real ending address + POP DE + EX DE, HL BSAVE_LOOP: - LD A, (HL) - CALL CASOUT ; send byte to tape - CALL DCOMPR ; Compare HL with DE. - JR NC, BSAVE_END - INC HL - JR BSAVE_LOOP + LD A, (HL) + CALL CASOUT ; send byte to tape + CALL DCOMPR ; Compare HL with DE. + JR NC, BSAVE_END + INC HL + JR BSAVE_LOOP BSAVE_END: - call bit_close_ei - POP IX - RET + call bit_close_ei + POP IX + RET DCOMPR: - LD A, H - SUB D - RET NZ - LD A, L - SUB E - RET + LD A, H + SUB D + RET NZ + LD A, L + SUB E + RET SEND_CAS_FNAME: - CALL CWRTON ; start tape for writing - LD B, 10 + CALL CWRTON ; start tape for writing + LD B, 10 SEND_CAS_TYPE: - CALL CASOUT ; send 10 type bytes to tape - DJNZ SEND_CAS_TYPE - LD B, 6 + CALL CASOUT ; send 10 type bytes to tape + DJNZ SEND_CAS_TYPE + LD B, 6 SEND_CAS_NAME: - LD A, (HL) - AND A ; check for string termination - JP NZ, NM_CONT - LD A, ' ' - JP NM_END + LD A, (HL) + AND A ; check for string termination + JP NZ, NM_CONT + LD A, ' ' + JP NM_END NM_CONT: - INC HL + INC HL NM_END: - CALL CASOUT - DJNZ SEND_CAS_NAME + CALL CASOUT + DJNZ SEND_CAS_NAME ;IF FORsvi ; XOR A ; SCRMOD 0 ; CALL CASOUT ;ENDIF - RET + RET CWRTON: - PUSH HL - PUSH DE - PUSH BC - PUSH AF + PUSH HL + PUSH DE + PUSH BC + PUSH AF ; CALL TAPOON - OR A - PUSH AF + OR A + PUSH AF - LD HL, $0000 + LD HL, $0000 CWRTON_0: - DEC HL - LD A, H - OR L - JR NZ, CWRTON_0 - - POP AF - LD A, PLAY_MSXDATA_HDR - JR Z, CWRTON_1 - ADD A, A - ADD A, A + DEC HL + LD A, H + OR L + JR NZ, CWRTON_0 + + POP AF + LD A, PLAY_MSXDATA_HDR + JR Z, CWRTON_1 + ADD A, A + ADD A, A CWRTON_1: - LD B, A - LD C, $00 + LD B, A + LD C, $00 ;DI CWRTON_2: - CALL TAPSEND_HIGH - CALL TAPSEND_RET - DEC BC - LD A, B - OR C - JR NZ, CWRTON_2 + CALL TAPSEND_HIGH + CALL TAPSEND_RET + DEC BC + LD A, B + OR C + JR NZ, CWRTON_2 CWRTON_RET_0: - POP AF - POP BC - POP DE - POP HL + POP AF + POP BC + POP DE + POP HL TAPSEND_RET: - RET + RET CASOUT_HL: - LD A, L - CALL CASOUT - LD A, H - JP CASOUT + LD A, L + CALL CASOUT + LD A, H + JP CASOUT CASOUT: - PUSH HL - PUSH DE - PUSH BC - PUSH AF - - LD HL, PLAY_MSXDATA_LO - PUSH AF - LD A, L - SUB $0E - LD L, A + PUSH HL + PUSH DE + PUSH BC + PUSH AF + + LD HL, PLAY_MSXDATA_LO + PUSH AF + LD A, L + SUB $0E + LD L, A ; start bit (HL=LOW) - CALL TAPSEND_0 - POP AF - LD B, $08 ; 8 bits + CALL TAPSEND_0 + POP AF + LD B, $08 ; 8 bits _TAPOUT_0: - RRCA - CALL C, TAPSEND_HIGH_X2 ; '1' - CALL NC, TAPSEND_LOW ; '0' - DJNZ _TAPOUT_0 + RRCA + CALL C, TAPSEND_HIGH_X2 ; '1' + CALL NC, TAPSEND_LOW ; '0' + DJNZ _TAPOUT_0 ; stop bits - CALL TAPSEND_HIGH_X2 - CALL TAPSEND_HIGH_X2 + CALL TAPSEND_HIGH_X2 + CALL TAPSEND_HIGH_X2 - JR CWRTON_RET_0 + JR CWRTON_RET_0 TAPSEND_HIGH_X2: - CALL TAPSEND_HIGH - EX (SP), HL - EX (SP), HL - NOP - NOP - NOP - NOP - CALL TAPSEND_HIGH - RET + CALL TAPSEND_HIGH + EX (SP), HL + EX (SP), HL + NOP + NOP + NOP + NOP + CALL TAPSEND_HIGH + RET TAPSEND_LOW: - LD HL, PLAY_MSXDATA_LO - CALL TAPSEND_0 - RET + LD HL, PLAY_MSXDATA_LO + CALL TAPSEND_0 + RET TAPSEND_HIGH: - LD HL, PLAY_MSXDATA_HI + LD HL, PLAY_MSXDATA_HI TAPSEND_0: - PUSH AF + PUSH AF TAPSEND_1: - DEC L - JP NZ, TAPSEND_1 - ld a, (__snd_tick) ; MIC on - IF (TAPEIN_ONEBIT_port=$FE) - xor $1E ; On the ZX Spectrum we extend the output to MIC, EAR, and BORDER - ELSE - xor SOUND_ONEBIT_mask ; MIC on<>off - ENDIF - ONEBITOUT + DEC L + JP NZ, TAPSEND_1 + ld a, (__snd_tick) ; MIC on + IF (TAPEIN_ONEBIT_port=$FE) + xor $1E ; On the ZX Spectrum we extend the output to MIC, EAR, and BORDER + ELSE + xor SOUND_ONEBIT_mask ; MIC on<>off + ENDIF + ONEBITOUT TAPSEND_2: - DEC H - JP NZ, TAPSEND_2 - ld a, (__snd_tick) ; MIC on - ONEBITOUT - POP AF - RET + DEC H + JP NZ, TAPSEND_2 + ld a, (__snd_tick) ; MIC on + ONEBITOUT + POP AF + RET - ENDIF +ENDIF diff --git a/libsrc/games/bit_synth.asm b/libsrc/games/bit_synth.asm index b6262aaf6b7..0c969549966 100644 --- a/libsrc/games/bit_synth.asm +++ b/libsrc/games/bit_synth.asm @@ -13,270 +13,270 @@ ; This routine shouldn't stay in contended memory locations !! ; - IF !__CPU_GBZ80__&&!__CPU_INTEL__ - SECTION smc_clib - PUBLIC bit_synth - PUBLIC _bit_synth - PUBLIC bit_synth_callee - PUBLIC _bit_synth_callee +IF !__CPU_GBZ80__&&!__CPU_INTEL__ + SECTION smc_clib + PUBLIC bit_synth + PUBLIC _bit_synth + PUBLIC bit_synth_callee + PUBLIC _bit_synth_callee ; ASM driven bending for special effects ;) - PUBLIC bit_synth_sub ; entry - PUBLIC bit_synth_len ; duration + PUBLIC bit_synth_sub ; entry + PUBLIC bit_synth_len ; duration ; FR*_tick should hold the XOR instruction. ; FR*_tick+1 should be set to 0 or to SOUND_ONEBIT_mask - PUBLIC FR1_tick - PUBLIC FR2_tick - PUBLIC FR3_tick - PUBLIC FR4_tick + PUBLIC FR1_tick + PUBLIC FR2_tick + PUBLIC FR3_tick + PUBLIC FR4_tick ; FR_*+1 needs to be loaded with the 4 sound periods - PUBLIC FR_1 - PUBLIC FR_2 - PUBLIC FR_3 - PUBLIC FR_4 + PUBLIC FR_1 + PUBLIC FR_2 + PUBLIC FR_3 + PUBLIC FR_4 - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" - EXTERN bit_open_di - EXTERN bit_close_ei + EXTERN bit_open_di + EXTERN bit_close_ei bit_synth_callee: _bit_synth_callee: - pop hl - ld (ret_addr1+1), hl - call bit_synth - pop de - pop de - pop de - pop de - pop de + pop hl + ld (ret_addr1+1), hl + call bit_synth + pop de + pop de + pop de + pop de + pop de ret_addr1: - jp 0 + jp 0 bit_synth: _bit_synth: - pop hl - ld (ret_addr+1), hl - push ix - ld ix, 2 - add ix, sp - ld a, (ix+8) - ld (bit_synth_len+1), a - ld a, (ix+6) - and a - jr z, FR1_blank - ld (FR_1+1), a - ld a, SOUND_ONEBIT_mask + pop hl + ld (ret_addr+1), hl + push ix + ld ix, 2 + add ix, sp + ld a, (ix+8) + ld (bit_synth_len+1), a + ld a, (ix+6) + and a + jr z, FR1_blank + ld (FR_1+1), a + ld a, SOUND_ONEBIT_mask FR1_blank: - ld (FR1_tick+1), a - ld a, (ix+4) - and a - jr z, FR2_blank - ld (FR_2+1), a - ld a, SOUND_ONEBIT_mask + ld (FR1_tick+1), a + ld a, (ix+4) + and a + jr z, FR2_blank + ld (FR_2+1), a + ld a, SOUND_ONEBIT_mask FR2_blank: - ld (FR2_tick+1), a - ld a, (ix+2) - and a - jr z, FR3_blank - ld (FR_3+1), a - ld a, SOUND_ONEBIT_mask + ld (FR2_tick+1), a + ld a, (ix+2) + and a + jr z, FR3_blank + ld (FR_3+1), a + ld a, SOUND_ONEBIT_mask FR3_blank: - ld (FR1_tick+1), a - ld a, (ix+0) - and a - jr z, FR4_blank - ld (FR_4+1), a - ld a, SOUND_ONEBIT_mask + ld (FR1_tick+1), a + ld a, (ix+0) + and a + jr z, FR4_blank + ld (FR_4+1), a + ld a, SOUND_ONEBIT_mask FR4_blank: - ld (FR1_tick+1), a + ld (FR1_tick+1), a - call bit_open_di - call bit_synth_sub - pop ix - call bit_close_ei + call bit_open_di + call bit_synth_sub + pop ix + call bit_close_ei ret_addr: - jp 0 + jp 0 bit_synth_sub: - push hl - push de - push bc + push hl + push de + push bc - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx + ENDIF - ld h, 1 - ld l, h - ld d, h - ld e, h + ld h, 1 + ld l, h + ld d, h + ld e, h bit_synth_len: - ld b, 50 + ld b, 50 loop: - ld c, 4 + ld c, 4 loop2: - dec h - jr nz, jump + dec h + jr nz, jump FR1_tick: - xor SOUND_ONEBIT_mask + xor SOUND_ONEBIT_mask - IF SOUND_INOUT=1 - exx - ld c, a - jr nz, ASMPC+6 - in a, (SOUND_ONEBIT_port) - jr ASMPC+4 - out (SOUND_ONEBIT_port), a - ld a, c - exx - ELIF SOUND_OUTOUT=1 - exx - ld c, a - jr nz, ASMPC+6 - out (SOUND_ONEBIT_port), a - jr ASMPC+4 - out (SOUND_ONEBIT_port2), a - ld a, c - exx - ELIF SOUND_IFF=1 - jp nz, ASMPC+4 - di - jp ASMPC+4 - ei - ELIF SOUND_ONEBIT_port>=256 - exx - out (c), a ;9 T slower - exx - ELIF SOUND_ONEBIT_port<0 - ld (-SOUND_ONEBIT_port), a - ELSE - out (SOUND_ONEBIT_port), a - ENDIF + IF SOUND_INOUT=1 + exx + ld c, a + jr nz, ASMPC+6 + in a, (SOUND_ONEBIT_port) + jr ASMPC+4 + out (SOUND_ONEBIT_port), a + ld a, c + exx + ELIF SOUND_OUTOUT=1 + exx + ld c, a + jr nz, ASMPC+6 + out (SOUND_ONEBIT_port), a + jr ASMPC+4 + out (SOUND_ONEBIT_port2), a + ld a, c + exx + ELIF SOUND_IFF=1 + jp nz, ASMPC+4 + di + jp ASMPC+4 + ei + ELIF SOUND_ONEBIT_port>=256 + exx + out (c), a ;9 T slower + exx + ELIF SOUND_ONEBIT_port<0 + ld (-SOUND_ONEBIT_port), a + ELSE + out (SOUND_ONEBIT_port), a + ENDIF FR_1: - ld h, 80 + ld h, 80 jump: - dec l - jr nz, jump2 + dec l + jr nz, jump2 FR2_tick: - xor SOUND_ONEBIT_mask + xor SOUND_ONEBIT_mask - IF SOUND_INOUT=1 - exx - ld c, a - jr nz, ASMPC+6 - in a, (SOUND_ONEBIT_port) - jr ASMPC+4 - out (SOUND_ONEBIT_port), a - ld a, c - exx - ELIF SOUND_OUTOUT=1 - exx - ld c, a - jr nz, ASMPC+6 - out (SOUND_ONEBIT_port), a - jr ASMPC+4 - out (SOUND_ONEBIT_port2), a - ld a, c - exx - ELIF SOUND_IFF=1 - jp nz, ASMPC+4 - di - jp ASMPC+4 - ei - ELIF SOUND_ONEBIT_port>=256 - exx - out (c), a ;9 T slower - exx - ELIF SOUND_ONEBIT_port<0 - ld (-SOUND_ONEBIT_port), a - ELSE - out (SOUND_ONEBIT_port), a - ENDIF + IF SOUND_INOUT=1 + exx + ld c, a + jr nz, ASMPC+6 + in a, (SOUND_ONEBIT_port) + jr ASMPC+4 + out (SOUND_ONEBIT_port), a + ld a, c + exx + ELIF SOUND_OUTOUT=1 + exx + ld c, a + jr nz, ASMPC+6 + out (SOUND_ONEBIT_port), a + jr ASMPC+4 + out (SOUND_ONEBIT_port2), a + ld a, c + exx + ELIF SOUND_IFF=1 + jp nz, ASMPC+4 + di + jp ASMPC+4 + ei + ELIF SOUND_ONEBIT_port>=256 + exx + out (c), a ;9 T slower + exx + ELIF SOUND_ONEBIT_port<0 + ld (-SOUND_ONEBIT_port), a + ELSE + out (SOUND_ONEBIT_port), a + ENDIF FR_2: - ld l, 81 + ld l, 81 jump2: - dec d - jr nz, jump3 + dec d + jr nz, jump3 FR3_tick: - xor SOUND_ONEBIT_mask + xor SOUND_ONEBIT_mask - IF SOUND_INOUT=1 - exx - ld c, a - jr nz, ASMPC+6 - in a, (SOUND_ONEBIT_port) - jr ASMPC+4 - out (SOUND_ONEBIT_port), a - ld a, c - exx - ELIF SOUND_IFF=1 - jp nz, ASMPC+4 - di - jp ASMPC+4 - ei - ELIF SOUND_ONEBIT_port>=256 - exx - out (c), a ;9 T slower - exx - ELIF SOUND_ONEBIT_port<0 - ld (-SOUND_ONEBIT_port), a - ELSE - out (SOUND_ONEBIT_port), a - ENDIF + IF SOUND_INOUT=1 + exx + ld c, a + jr nz, ASMPC+6 + in a, (SOUND_ONEBIT_port) + jr ASMPC+4 + out (SOUND_ONEBIT_port), a + ld a, c + exx + ELIF SOUND_IFF=1 + jp nz, ASMPC+4 + di + jp ASMPC+4 + ei + ELIF SOUND_ONEBIT_port>=256 + exx + out (c), a ;9 T slower + exx + ELIF SOUND_ONEBIT_port<0 + ld (-SOUND_ONEBIT_port), a + ELSE + out (SOUND_ONEBIT_port), a + ENDIF FR_3: - ld d, 162 + ld d, 162 jump3: - dec e - jr nz, loop2 + dec e + jr nz, loop2 FR4_tick: - xor SOUND_ONEBIT_mask + xor SOUND_ONEBIT_mask - IF SOUND_INOUT=1 - exx - ld c, a - jr nz, ASMPC+6 - in a, (SOUND_ONEBIT_port) - jr ASMPC+4 - out (SOUND_ONEBIT_port), a - ld a, c - exx - ELIF SOUND_IFF=1 - jp nz, ASMPC+4 - di - jp ASMPC+4 - ei - ELIF SOUND_ONEBIT_port>=256 - exx - out (c), a ;9 T slower - exx - ELIF SOUND_ONEBIT_port<0 - ld (-SOUND_ONEBIT_port), a - ELSE - out (SOUND_ONEBIT_port), a - ENDIF + IF SOUND_INOUT=1 + exx + ld c, a + jr nz, ASMPC+6 + in a, (SOUND_ONEBIT_port) + jr ASMPC+4 + out (SOUND_ONEBIT_port), a + ld a, c + exx + ELIF SOUND_IFF=1 + jp nz, ASMPC+4 + di + jp ASMPC+4 + ei + ELIF SOUND_ONEBIT_port>=256 + exx + out (c), a ;9 T slower + exx + ELIF SOUND_ONEBIT_port<0 + ld (-SOUND_ONEBIT_port), a + ELSE + out (SOUND_ONEBIT_port), a + ENDIF FR_4: - ld e, 163 + ld e, 163 - dec c - jr nz, loop2 - djnz loop + dec c + jr nz, loop2 + djnz loop - pop bc - pop de - pop hl + pop bc + pop de + pop hl - ret + ret - ENDIF +ENDIF diff --git a/libsrc/games/bit_tapin.asm b/libsrc/games/bit_tapin.asm index 718d8a51b85..5b85cecbe52 100644 --- a/libsrc/games/bit_tapin.asm +++ b/libsrc/games/bit_tapin.asm @@ -9,113 +9,113 @@ ; On exit: HL = read byte or -1 on error - SECTION code_clib + SECTION code_clib - PUBLIC bit_tapin - PUBLIC _bit_tapin + PUBLIC bit_tapin + PUBLIC _bit_tapin - PUBLIC bit_tapin_bit - PUBLIC _bit_tapin_bit + PUBLIC bit_tapin_bit + PUBLIC _bit_tapin_bit - EXTERN bit_tapiof + EXTERN bit_tapiof - EXTERN __LOWLIM - EXTERN __WINWID + EXTERN __LOWLIM + EXTERN __WINWID - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" - IF __CPU_GBZ80__||__CPU_INTEL__ +IF __CPU_GBZ80__||__CPU_INTEL__ bit_tapin: _bit_tapin: bit_tapin_bit: _bit_tapin_bit: - ret - ELSE + ret +ELSE bit_tapin: _bit_tapin: - LD A, (__LOWLIM) ; Minimal length of startbit - LD D, A + LD A, (__LOWLIM) ; Minimal length of startbit + LD D, A TAPIN_0: ; CALL BREAKX ; Set CY if STOP is pressed ; RET C ; IN A,(TAPEIN_ONEBIT_port) - CALL BREAKX ; Set CY if STOP is pressed - JP C, TAPIN_ERROR + CALL BREAKX ; Set CY if STOP is pressed + JP C, TAPIN_ERROR ; IN A,(PSG_DATAIN) ; RLCA ; JR NC,TAPIN_0 - AND TAPEIN_ONEBIT_mask - JR NZ, TAPIN_0 + AND TAPEIN_ONEBIT_mask + JR NZ, TAPIN_0 TAPIN_1: ; CALL BREAKX ; Set CY if STOP is pressed ; RET C ; IN A,(TAPEIN_ONEBIT_port) - CALL BREAKX ; Set CY if STOP is pressed - JP C, TAPIN_ERROR + CALL BREAKX ; Set CY if STOP is pressed + JP C, TAPIN_ERROR ; IN A,(PSG_DATAIN) ; RLCA ; JR C,TAPIN_1 - AND TAPEIN_ONEBIT_mask - JR Z, TAPIN_1 + AND TAPEIN_ONEBIT_mask + JR Z, TAPIN_1 - LD E, $00 - CALL TAPIN_PERIOD + LD E, $00 + CALL TAPIN_PERIOD TAPIN_2: - LD B, C + LD B, C - CALL TAPIN_PERIOD - JP C, TAPIN_ERROR + CALL TAPIN_PERIOD + JP C, TAPIN_ERROR ;RET C - LD A, B - ADD A, C - JP C, TAPIN_2 - CP D - JP C, TAPIN_2 + LD A, B + ADD A, C + JP C, TAPIN_2 + CP D + JP C, TAPIN_2 ; LD L,8 - LD L, 8 ; <-- on the ZX Spectrum something goes wrong during the first bit 'sync', so we trash one extra bit + LD L, 8 ; <-- on the ZX Spectrum something goes wrong during the first bit 'sync', so we trash one extra bit TAPIN_BYTE: - CALL TAPIN_STARTBIT - CP $04 - CCF - JR C, TAPIN_ERROR + CALL TAPIN_STARTBIT + CP $04 + CCF + JR C, TAPIN_ERROR ;RET C - CP $02 - CCF - RR D - LD A, C - RRCA ; A word, usually one byte (8 bits) long, is recorded in little endian order - CALL NC, TAPIN_PERIOD_0 - CALL TAPIN_PERIOD - DEC L - JP NZ, TAPIN_BYTE + CP $02 + CCF + RR D + LD A, C + RRCA ; A word, usually one byte (8 bits) long, is recorded in little endian order + CALL NC, TAPIN_PERIOD_0 + CALL TAPIN_PERIOD + DEC L + JP NZ, TAPIN_BYTE ; CALL BREAKX ; Set CY if BREAK is pressed ; IN A,(TAPEIN_ONEBIT_port) ; LD A,D - LD H, 0 - LD L, D - RET + LD H, 0 + LD L, D + RET TAPIN_ERROR: - call bit_tapiof - LD HL, -1 ; error code - RET + call bit_tapiof + LD HL, -1 ; error code + RET TAPIN_STARTBIT: - LD A, (__WINWID) ; Get the difference between a low-and high-cycle - LD B, A - LD C, $00 + LD A, (__WINWID) ; Get the difference between a low-and high-cycle + LD B, A + LD C, $00 TAPIN_STARTBIT_0: @@ -132,80 +132,80 @@ TAPIN_STARTBIT_0: ; IN A,(PSG_DATAIN) - IF FORsam - ex (sp), hl - ex (sp), hl - ex (sp), hl - ex (sp), hl - ENDIF - - IN A, (TAPEIN_ONEBIT_port) - XOR E - AND TAPEIN_ONEBIT_mask - JP Z, TAPIN_STARTBIT_1 - LD A, E - CPL - LD E, A - - IF FORsam - ex (sp), hl - ex (sp), hl - ex (sp), hl - ex (sp), hl - ENDIF + IF FORsam + ex (sp), hl + ex (sp), hl + ex (sp), hl + ex (sp), hl + ENDIF + + IN A, (TAPEIN_ONEBIT_port) + XOR E + AND TAPEIN_ONEBIT_mask + JP Z, TAPIN_STARTBIT_1 + LD A, E + CPL + LD E, A + + IF FORsam + ex (sp), hl + ex (sp), hl + ex (sp), hl + ex (sp), hl + ENDIF ;------------------ Target specific section -------------------- ; ZX Spectrum, SAM, TS2068, etc.. - IF (TAPEIN_ONEBIT_port=$FE) - AND $07 + IF (TAPEIN_ONEBIT_port=$FE) + AND $07 ;OR $09 - OR $0A ; Changing the output mask we may alter the color of the data being loaded - OUT ($FE), A - ENDIF - - IF FORaquarius - AND $07 - OR $01 - ld (13312), a - ENDIF + OR $0A ; Changing the output mask we may alter the color of the data being loaded + OUT ($FE), A + ENDIF + + IF FORaquarius + AND $07 + OR $01 + ld (13312), a + ENDIF ;------------------ Target specific section -------------------- - INC C - DJNZ TAPIN_STARTBIT_0 - LD A, C - RET + INC C + DJNZ TAPIN_STARTBIT_0 + LD A, C + RET TAPIN_STARTBIT_1: - DJNZ TAPIN_STARTBIT_0 - LD A, C - RET + DJNZ TAPIN_STARTBIT_0 + LD A, C + RET bit_tapin_bit: _bit_tapin_bit: - CALL BREAKX ; Set CY if STOP is pressed - RET C + CALL BREAKX ; Set CY if STOP is pressed + RET C ;IN A,(TAPEIN_ONEBIT_port) ; IN A,(PSG_DATAIN) ; RLCA - AND TAPEIN_ONEBIT_mask - JR NZ, bit_tapin_bit ; .. should it be JR Z, ? - LD E, $00 - CALL TAPIN_PERIOD_0 - JP TAPIN_PERIOD_1 + AND TAPEIN_ONEBIT_mask + JR NZ, bit_tapin_bit ; .. should it be JR Z, ? + LD E, $00 + CALL TAPIN_PERIOD_0 + JP TAPIN_PERIOD_1 ; Used by the routine at TAPIN. TAPIN_PERIOD: - CALL BREAKX ; Set CY if STOP is pressed - RET C + CALL BREAKX ; Set CY if STOP is pressed + RET C ;IN A,(TAPEIN_ONEBIT_port) TAPIN_PERIOD_0: - LD C, $00 + LD C, $00 ;TAPIN_PERIOD_1: ; INC C @@ -215,71 +215,71 @@ TAPIN_PERIOD_0: ; JP P,TAPIN_PERIOD_1 TAPIN_PERIOD_1: - INC C - JR Z, TAPIN_PERIOD_OVERFLOW - - IF FORsam - ex (sp), hl - ex (sp), hl - ex (sp), hl - ex (sp), hl - ENDIF + INC C + JR Z, TAPIN_PERIOD_OVERFLOW + + IF FORsam + ex (sp), hl + ex (sp), hl + ex (sp), hl + ex (sp), hl + ENDIF - IN A, (TAPEIN_ONEBIT_port) + IN A, (TAPEIN_ONEBIT_port) ; IN A,(PSG_DATAIN) - XOR E - AND TAPEIN_ONEBIT_mask - JP Z, TAPIN_PERIOD_1 - LD A, E - CPL - LD E, A - - IF FORsam - ex (sp), hl - ex (sp), hl - ex (sp), hl - ex (sp), hl - ENDIF + XOR E + AND TAPEIN_ONEBIT_mask + JP Z, TAPIN_PERIOD_1 + LD A, E + CPL + LD E, A + + IF FORsam + ex (sp), hl + ex (sp), hl + ex (sp), hl + ex (sp), hl + ENDIF ;------------------ Target specific section -------------------- ; ZX Spectrum, SAM, TS2068, etc.. - IF (TAPEIN_ONEBIT_port=$FE) - AND $07 - OR $09 - OUT ($FE), A - ENDIF - - IF FORaquarius - AND $07 - OR $02 - ld (13312), a - ENDIF + IF (TAPEIN_ONEBIT_port=$FE) + AND $07 + OR $09 + OUT ($FE), A + ENDIF + + IF FORaquarius + AND $07 + OR $02 + ld (13312), a + ENDIF ;--------------------------------------------------------------- - RET + RET TAPIN_PERIOD_OVERFLOW: - DEC C - RET + DEC C + RET ; Here we need to do 2 things together, ; get the current status from the TAPE port and set CY if BREAK was pressed BREAKX: - IF (TAPEIN_ONEBIT_port=$FE) - LD A, $7F ; scan only the right keyboard portion - IN A, ($FE) - BIT 0, A - SCF - RET Z - CCF - RET - - ELSE - IN A, (TAPEIN_ONEBIT_port) - and a ; Reset CY, in case break detection is not supported - RET - ENDIF - + IF (TAPEIN_ONEBIT_port=$FE) + LD A, $7F ; scan only the right keyboard portion + IN A, ($FE) + BIT 0, A + SCF + RET Z + CCF + RET + ELSE + IN A, (TAPEIN_ONEBIT_port) + and a ; Reset CY, in case break detection is not supported + RET ENDIF + + +ENDIF diff --git a/libsrc/games/bit_tapiof.asm b/libsrc/games/bit_tapiof.asm index be569c9f5c5..2df557226bb 100644 --- a/libsrc/games/bit_tapiof.asm +++ b/libsrc/games/bit_tapiof.asm @@ -5,56 +5,56 @@ ; TAPIOF (to complete a READ operation) and TAPOOF (for WRITE). - SECTION code_clib + SECTION code_clib - PUBLIC bit_tapiof - PUBLIC _bit_tapiof + PUBLIC bit_tapiof + PUBLIC _bit_tapiof - EXTERN bit_close_ei + EXTERN bit_close_ei - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" bit_tapiof: _bit_tapiof: - IF __CPU_GBZ80__||__CPU_INTEL__ - ret - ELSE +IF __CPU_GBZ80__||__CPU_INTEL__ + ret +ELSE ;------------------ Target specific section -------------------- - IF FORmsx - LD A, $09 - OUT ($AB), A ; MOTOR OFF - ENDIF + IF FORmsx + LD A, $09 + OUT ($AB), A ; MOTOR OFF + ENDIF - IF FORsvi - LD A, $09 - OUT ($97), A ; MOTOR OFF - ENDIF + IF FORsvi + LD A, $09 + OUT ($97), A ; MOTOR OFF + ENDIF - IF FORvg5k - XOR A - OUT ($AF), A ; MOTOR OFF - ENDIF + IF FORvg5k + XOR A + OUT ($AF), A ; MOTOR OFF + ENDIF ; ZX Spectrum, SAM, TS2068, etc.. - IF (TAPEIN_ONEBIT_port=$FE) - EXTERN __snd_tick - LD A, (__snd_tick) - out ($FE), a - ENDIF - - IF FORaquarius - ex af, af - ld (13312), a ; restore border - ENDIF + IF (TAPEIN_ONEBIT_port=$FE) + EXTERN __snd_tick + LD A, (__snd_tick) + out ($FE), a + ENDIF + + IF FORaquarius + ex af, af + ld (13312), a ; restore border + ENDIF ;--------------------------------------------------------------- - jp bit_close_ei + jp bit_close_ei ; pop hl ; on exit, keep __LOADLEN ; RET - ENDIF +ENDIF diff --git a/libsrc/games/bit_tapion.asm b/libsrc/games/bit_tapion.asm index 06fc72d114f..aa0e2ac67a0 100644 --- a/libsrc/games/bit_tapion.asm +++ b/libsrc/games/bit_tapion.asm @@ -11,30 +11,30 @@ ; Exit status: 0 if the leading tone has been hooked correctly, -1 on error - SECTION code_clib + SECTION code_clib - PUBLIC bit_tapion - PUBLIC _bit_tapion + PUBLIC bit_tapion + PUBLIC _bit_tapion - EXTERN bit_open_di - EXTERN bit_tapiof - EXTERN bit_tapin_bit + EXTERN bit_open_di + EXTERN bit_tapiof + EXTERN bit_tapin_bit - PUBLIC __LOWLIM - PUBLIC __WINWID + PUBLIC __LOWLIM + PUBLIC __WINWID - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" bit_tapion: _bit_tapion: - IF __CPU_GBZ80__||__CPU_INTEL__ - ret - ELSE +IF __CPU_GBZ80__||__CPU_INTEL__ + ret +ELSE ; PUSH HL ; PUSH DE @@ -48,48 +48,48 @@ _bit_tapion: ; ;TAPION: ;------------------ Target specific section -------------------- - call bit_open_di - - IF FORlynx - LD A, $02 ; MOTOR ON - OUT ($80), A - LD A, $0C - OUT ($86), A - ENDIF - - IF FORmsx - LD A, $08 - OUT ($AB), A ; MOTOR ON - LD A, 14 - OUT ($A0), A ; Set PSG register for data input port - ENDIF - - IF FORsvi - LD A, $08 - OUT ($97), A ; MOTOR ON - LD A, 14 - OUT ($88), A ; Set PSG register for data input port - ENDIF - - IF FORvg5k - LD A, 2 - OUT ($AF), A ; MOTOR ON - ENDIF - - IF FORmc1000 - LD A, $0F - OUT ($20), A ; Set PSG register for data input port - ENDIF + call bit_open_di + + IF FORlynx + LD A, $02 ; MOTOR ON + OUT ($80), A + LD A, $0C + OUT ($86), A + ENDIF + + IF FORmsx + LD A, $08 + OUT ($AB), A ; MOTOR ON + LD A, 14 + OUT ($A0), A ; Set PSG register for data input port + ENDIF + + IF FORsvi + LD A, $08 + OUT ($97), A ; MOTOR ON + LD A, 14 + OUT ($88), A ; Set PSG register for data input port + ENDIF + + IF FORvg5k + LD A, 2 + OUT ($AF), A ; MOTOR ON + ENDIF + + IF FORmc1000 + LD A, $0F + OUT ($20), A ; Set PSG register for data input port + ENDIF ; ZX Spectrum, SAM, TS2068, etc.. - IF (TAPEIN_ONEBIT_port=$FE) - out ($FE), a - ENDIF + IF (TAPEIN_ONEBIT_port=$FE) + out ($FE), a + ENDIF - IF FORaquarius - ld a, (13312) ; save border - ex af, af - ENDIF + IF FORaquarius + ld a, (13312) ; save border + ex af, af + ENDIF ;--------------------------------------------------------------- @@ -97,75 +97,75 @@ _bit_tapion: TAPION_0: ;LD HL,1111 - LD HL, 400 + LD HL, 400 TAPION_1: - LD D, C ; Get tape block mode - CALL bit_tapin_bit + LD D, C ; Get tape block mode + CALL bit_tapin_bit ;RET C ; Exit if timeout (or BREAK) - JP C, TAPION_ERROR - LD A, C ; get measured tape sync speed - CP 250 ; Timeout ? + JP C, TAPION_ERROR + LD A, C ; get measured tape sync speed + CP 250 ; Timeout ? ;CP 150 - JR NC, TAPION_0 ; Try again - CP 5 ; Too short ? - JR C, TAPION_0 ; Try again - SUB D - JR NC, TAPION_2 - CPL - INC A + JR NC, TAPION_0 ; Try again + CP 5 ; Too short ? + JR C, TAPION_0 ; Try again + SUB D + JR NC, TAPION_2 + CPL + INC A TAPION_2: - CP $04 - JR NC, TAPION_0 ; Try again - DEC HL - LD A, H - OR L - JR NZ, TAPION_1 ; Correct leading tone. It must stay like this 1111 times. - - LD HL, $0000 - LD B, L - LD D, L + CP $04 + JR NC, TAPION_0 ; Try again + DEC HL + LD A, H + OR L + JR NZ, TAPION_1 ; Correct leading tone. It must stay like this 1111 times. + + LD HL, $0000 + LD B, L + LD D, L TAPION_3: - CALL bit_tapin_bit + CALL bit_tapin_bit ;RET C ; Exit if timeout (or BREAK) - JP C, TAPION_ERROR - ADD HL, BC - DEC D - JP NZ, TAPION_3 - LD BC, 1710 - ADD HL, BC - LD A, H - RRA - AND $7F - LD D, A - ADD HL, HL - LD A, H - SUB D - LD D, A - SUB 6 - LD (__LOWLIM), A ; Keep the minimal length of startbit - LD L, A ; set the exit value to LOWLIM - LD A, D - ADD A, A - LD B, $00 - LD H, B ; set the exit value to LOWLIM + JP C, TAPION_ERROR + ADD HL, BC + DEC D + JP NZ, TAPION_3 + LD BC, 1710 + ADD HL, BC + LD A, H + RRA + AND $7F + LD D, A + ADD HL, HL + LD A, H + SUB D + LD D, A + SUB 6 + LD (__LOWLIM), A ; Keep the minimal length of startbit + LD L, A ; set the exit value to LOWLIM + LD A, D + ADD A, A + LD B, $00 + LD H, B ; set the exit value to LOWLIM TAPION_4: - SUB 3 - INC B - JR NC, TAPION_4 - LD A, B - SUB 3 - LD (__WINWID), A ; Store the difference between a low-and high-cycle + SUB 3 + INC B + JR NC, TAPION_4 + LD A, B + SUB 3 + LD (__WINWID), A ; Store the difference between a low-and high-cycle ;OR A - RET + RET TAPION_ERROR: - call bit_tapiof - LD HL, -1 - RET + call bit_tapiof + LD HL, -1 + RET - ENDIF +ENDIF ; Those two parameters are intitialized by bit_tapion() ; in the leading tone sync phase @@ -175,11 +175,11 @@ TAPION_ERROR: ; Mind the "contended memory" when running this on a ZX Spectrum ! ;SECTION smc_clib - SECTION bss_clib + SECTION bss_clib __LOWLIM: - DEFB 0 + DEFB 0 __WINWID: - DEFB 0 + DEFB 0 diff --git a/libsrc/games/joystick.asm b/libsrc/games/joystick.asm index 426f3d66f21..706cbe47595 100644 --- a/libsrc/games/joystick.asm +++ b/libsrc/games/joystick.asm @@ -5,31 +5,31 @@ ; $Id: joystick.asm,v 1.5 2016-04-23 21:06:32 dom Exp $ ; - SECTION code_clib - PUBLIC joystick - PUBLIC _joystick - EXTERN joystick_inkey - EXTERN getk + SECTION code_clib + PUBLIC joystick + PUBLIC _joystick + EXTERN joystick_inkey + EXTERN getk - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" joystick: _joystick: ;__FASTALL__ : joystick no. in HL - ld a, l + ld a, l - IF INPUT_JOY_useinkey=0 - cp 1 ; Stick emulation 1 (qaop-mn) - jr nz, j_no1 - INCLUDE "games/joystick_qaop.as1" +IF INPUT_JOY_useinkey=0 + cp 1 ; Stick emulation 1 (qaop-mn) + jr nz, j_no1 + INCLUDE "games/joystick_qaop.as1" j_no1: - cp 2 ; Stick emulation 2 (8246-05) - jr nz, j_no2 - INCLUDE "games/joystick_8246.as1" + cp 2 ; Stick emulation 2 (8246-05) + jr nz, j_no2 + INCLUDE "games/joystick_8246.as1" j_no2: - ld hl, 0 - ret - ELSE - jp joystick_inkey - ENDIF + ld hl, 0 + ret +ELSE + jp joystick_inkey +ENDIF diff --git a/libsrc/games/joystick_inkey.asm b/libsrc/games/joystick_inkey.asm index 577752e8293..8a7af205064 100644 --- a/libsrc/games/joystick_inkey.asm +++ b/libsrc/games/joystick_inkey.asm @@ -1,29 +1,29 @@ ; Keyboard joysticks based on inkey - MODULE joystick_inkey - SECTION code_clib + MODULE joystick_inkey + SECTION code_clib - PUBLIC joystick_inkey + PUBLIC joystick_inkey - EXTERN joystick_sc - EXTERN keys_qaop - EXTERN keys_8246 - EXTERN keys_vi - EXTERN keys_cursor + EXTERN joystick_sc + EXTERN keys_qaop + EXTERN keys_8246 + EXTERN keys_vi + EXTERN keys_cursor joystick_inkey: - ld hl, keys_qaop - cp 1 - jp z, joystick_sc - ld hl, keys_8246 - cp 2 - jp z, joystick_sc - ld hl, keys_vi - cp 3 - jp z, joystick_sc - ld hl, keys_cursor - cp 4 - jp z, joystick_sc - ld hl, 0 - ret + ld hl, keys_qaop + cp 1 + jp z, joystick_sc + ld hl, keys_8246 + cp 2 + jp z, joystick_sc + ld hl, keys_vi + cp 3 + jp z, joystick_sc + ld hl, keys_cursor + cp 4 + jp z, joystick_sc + ld hl, 0 + ret diff --git a/libsrc/games/joystick_sc.asm b/libsrc/games/joystick_sc.asm index 265d7e9702a..47503440420 100644 --- a/libsrc/games/joystick_sc.asm +++ b/libsrc/games/joystick_sc.asm @@ -7,56 +7,56 @@ ; ; Uses scancodes - MODULE joystick_sc + MODULE joystick_sc - SECTION code_clib - PUBLIC joystick_sc - PUBLIC _joystick_sc + SECTION code_clib + PUBLIC joystick_sc + PUBLIC _joystick_sc - EXTERN in_LookupKey - EXTERN in_KeyPressed + EXTERN in_LookupKey + EXTERN in_KeyPressed joystick_sc: _joystick_sc: - ld b, 8 - ld de, $0001 + ld b, 8 + ld de, $0001 loop: - push bc - ld c, (hl) - inc hl - ld b, (hl) - inc hl - ld a, c - or b - jr z, finished - push hl - ld l, c - ld h, b - push de - call in_KeyPressed - pop de - jr nc, continue - ld a, d - or e - ld d, a + push bc + ld c, (hl) + inc hl + ld b, (hl) + inc hl + ld a, c + or b + jr z, finished + push hl + ld l, c + ld h, b + push de + call in_KeyPressed + pop de + jr nc, continue + ld a, d + or e + ld d, a continue: - IF __CPU_INTEL__ - ld a, e - and a - rla - ld e, a - ELSE - sla e ;Shift mask across - ENDIF - pop hl - pop bc - djnz loop - ld l, d - ld h, 0 - ret +IF __CPU_INTEL__ + ld a, e + and a + rla + ld e, a +ELSE + sla e ;Shift mask across +ENDIF + pop hl + pop bc + djnz loop + ld l, d + ld h, 0 + ret finished: - pop bc - ld l, d - ld h, 0 - ret + pop bc + ld l, d + ld h, 0 + ret diff --git a/libsrc/games/kjoystick.asm b/libsrc/games/kjoystick.asm index 0d7335ffd50..43c5c0d0330 100644 --- a/libsrc/games/kjoystick.asm +++ b/libsrc/games/kjoystick.asm @@ -5,54 +5,54 @@ ; Keys are ordered: RIGHT, LEFT, DOWN, UP, FIRE1, FIRE2, FIRE3, FIRE4 ; Terminated by \0 - MODULE kjoystick + MODULE kjoystick - SECTION code_clib - PUBLIC kjoystick - PUBLIC _kjoystick + SECTION code_clib + PUBLIC kjoystick + PUBLIC _kjoystick - EXTERN in_LookupKey - EXTERN in_KeyPressed + EXTERN in_LookupKey + EXTERN in_KeyPressed kjoystick: _kjoystick: - ld b, 8 - ld de, $0001 + ld b, 8 + ld de, $0001 loop: - ld a, (hl) - and a - jr z, finished - push bc - inc hl - push hl + ld a, (hl) + and a + jr z, finished + push bc + inc hl + push hl ; Map to a keycode - ld l, a - push de ;Save result + masks - call in_LookupKey ;This is inefficient, we should do better - jr c, nokeys - call in_KeyPressed - pop de - jr nc, continue - ld a, d - or e - ld d, a + ld l, a + push de ;Save result + masks + call in_LookupKey ;This is inefficient, we should do better + jr c, nokeys + call in_KeyPressed + pop de + jr nc, continue + ld a, d + or e + ld d, a continue: - IF __CPU_INTEL__ - ld a, e - and a - rla - ld e, a - ELSE - sla e ;Shift mask across - ENDIF - pop hl - pop bc - djnz loop +IF __CPU_INTEL__ + ld a, e + and a + rla + ld e, a +ELSE + sla e ;Shift mask across +ENDIF + pop hl + pop bc + djnz loop finished: - ld l, d - ld h, 0 - ret + ld l, d + ld h, 0 + ret nokeys: - pop de - jr continue + pop de + jr continue diff --git a/libsrc/games/noise.asm b/libsrc/games/noise.asm index dbaf8daa8d3..fcde057e260 100644 --- a/libsrc/games/noise.asm +++ b/libsrc/games/noise.asm @@ -3,17 +3,17 @@ ; Generic 1 bit sound functions ; - IF !__CPU_GBZ80__&&!__CPU_INTEL__ - SECTION code_clib - PUBLIC noise - PUBLIC _noise - INCLUDE "games/games.inc" +IF !__CPU_GBZ80__&&!__CPU_INTEL__ + SECTION code_clib + PUBLIC noise + PUBLIC _noise + INCLUDE "games/games.inc" ;EXTERN bit_open_di ;EXTERN bit_close_ei - EXTERN asm_rand - EXTERN __snd_tick + EXTERN asm_rand + EXTERN __snd_tick ; ; Ported by Dominic Morris @@ -30,36 +30,37 @@ noise: _noise: ;push ix - ld bc, noise ; point to myself to garble the bit patterns - push bc - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF + ld bc, noise ; point to myself to garble the bit patterns + push bc + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx + ENDIF ; ld a,l ; srl l ; srl l ; cpl ; and 3 ; ld c,a - ld b, 0 + ld b, 0 ;ld ix,beixp3 ;add ix,bc - ld a, (__snd_tick) + ld a, (__snd_tick) beixp3: ;nop ;nop ;nop - inc b - inc c -behllp: dec c - jr nz, behllp - ld c, $1F - dec b - jp nz, behllp + inc b + inc c +behllp: + dec c + jr nz, behllp + ld c, $1F + dec b + jp nz, behllp ;ex (sp),hl ;inc l @@ -71,49 +72,49 @@ behllp: dec c ;xor b ;ex (sp),hl - push hl - push de + push hl + push de - push af - call asm_rand + push af + call asm_rand ;ld a,h ;xor l - ld a, l - and SOUND_ONEBIT_mask - ld l, a - pop af + ld a, l + and SOUND_ONEBIT_mask + ld l, a + pop af - xor l + xor l - ONEBITOUT + ONEBITOUT - pop de - pop hl + pop de + pop hl - ld b, h - ld c, a - bit SOUND_ONEBIT_bit, a ;if o/p go again! - jr nz, noise_again + ld b, h + ld c, a + bit SOUND_ONEBIT_bit, a ;if o/p go again! + jr nz, noise_again - ld a, d - or e - jr z, noise_end - ld a, c - ld c, l - dec de + ld a, d + or e + jr z, noise_end + ld a, c + ld c, l + dec de ;jp (ix) - jr beixp3 + jr beixp3 noise_again: - ld c, l - inc c + ld c, l + inc c ;jp (ix) - jr beixp3 + jr beixp3 noise_end: - pop bc + pop bc ;pop ix - ret + ret - ENDIF +ENDIF diff --git a/libsrc/games/patch_beep.asm b/libsrc/games/patch_beep.asm index afd9e4bf769..a0bf115780a 100644 --- a/libsrc/games/patch_beep.asm +++ b/libsrc/games/patch_beep.asm @@ -6,14 +6,14 @@ ; - IF !__CPU_GBZ80__&&!__CPU_INTEL__ - SECTION code_clib - PUBLIC patch_beep - PUBLIC _patch_beep - EXTERN patch_beeper +IF !__CPU_GBZ80__&&!__CPU_INTEL__ + SECTION code_clib + PUBLIC patch_beep + PUBLIC _patch_beep + EXTERN patch_beeper - EXTERN bit_open_di - EXTERN bit_close_ei + EXTERN bit_open_di + EXTERN bit_close_ei ; ; Stub by Stefano Bodrato - Jan/2021 @@ -22,15 +22,15 @@ patch_beep: _patch_beep: - call bit_open_di - pop af - pop bc - pop hl - pop de - push de - push hl - push bc - push af - call patch_beeper - jp bit_close_ei - ENDIF + call bit_open_di + pop af + pop bc + pop hl + pop de + push de + push hl + push bc + push af + call patch_beeper + jp bit_close_ei +ENDIF diff --git a/libsrc/games/patch_beep_callee.asm b/libsrc/games/patch_beep_callee.asm index 10a1cd64c04..ad17b7b9b2c 100644 --- a/libsrc/games/patch_beep_callee.asm +++ b/libsrc/games/patch_beep_callee.asm @@ -5,14 +5,14 @@ ; void patch_beep(int duration, int period, void *pattern); ; - IF !__CPU_GBZ80__&&!__CPU_INTEL__ - SECTION code_clib - PUBLIC patch_beep_callee - PUBLIC _patch_beep_callee - EXTERN patch_beeper +IF !__CPU_GBZ80__&&!__CPU_INTEL__ + SECTION code_clib + PUBLIC patch_beep_callee + PUBLIC _patch_beep_callee + EXTERN patch_beeper - EXTERN bit_open_di - EXTERN bit_close_ei + EXTERN bit_open_di + EXTERN bit_close_ei ; ; Stub by Stefano Bodrato - Jan/2021 @@ -21,13 +21,13 @@ patch_beep_callee: _patch_beep_callee: - call bit_open_di - pop af - pop bc - pop hl - pop de - push af - call patch_beeper - jp bit_close_ei + call bit_open_di + pop af + pop bc + pop hl + pop de + push af + call patch_beeper + jp bit_close_ei - ENDIF +ENDIF diff --git a/libsrc/games/patch_beeper.asm b/libsrc/games/patch_beeper.asm index 808630abc9c..099cf35e8b9 100644 --- a/libsrc/games/patch_beeper.asm +++ b/libsrc/games/patch_beeper.asm @@ -3,18 +3,18 @@ ; Generic 1 bit sound functions ; - IF !__CPU_GBZ80__&&!__CPU_INTEL__ +IF !__CPU_GBZ80__&&!__CPU_INTEL__ ;SECTION code_clib - SECTION smc_clib + SECTION smc_clib - PUBLIC patch_beeper - PUBLIC _patch_beeper - INCLUDE "games/games.inc" + PUBLIC patch_beeper + PUBLIC _patch_beeper + INCLUDE "games/games.inc" ;EXTERN bit_open_di ;EXTERN bit_close_ei - EXTERN __snd_tick + EXTERN __snd_tick ; ; Pattern controlled buzzer, approx. timing @@ -24,23 +24,23 @@ patch_beeper: _patch_beeper: - push ix - push bc ; bit pattern - pop ix - push ix - - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF - ld a, l - srl l - srl l - cpl - and 3 - ld c, a - ld b, 0 + push ix + push bc ; bit pattern + pop ix + push ix + + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx + ENDIF + ld a, l + srl l + srl l + cpl + and 3 + ld c, a + ld b, 0 ;ld ix,beixp3 ;add ix,bc ;call bit_open_di @@ -51,61 +51,62 @@ beixp3: ;nop ;nop - inc b - inc c -behllp: dec c - jr nz, behllp - ld c, $3F - dec b - jp nz, behllp - - ld a, e - and 7 - jr nz, no_pattern_loop - - inc ix - ld a, (ix+0) - and a - jr nz, no_pattern_loop - pop ix ; back to the beginning of bit pattern - push ix ; 14T + inc b + inc c +behllp: + dec c + jr nz, behllp + ld c, $3F + dec b + jp nz, behllp + + ld a, e + and 7 + jr nz, no_pattern_loop + + inc ix + ld a, (ix+0) + and a + jr nz, no_pattern_loop + pop ix ; back to the beginning of bit pattern + push ix ; 14T ; jr compensate no_pattern_loop: ; push ix ; 14T ; pop ix ; back to the beginning of bit pattern ;.compensate - rlc (ix+0) - sbc a, a ; 0 or FF - and SOUND_ONEBIT_mask - ld c, a - ld a, (__snd_tick) - xor c + rlc (ix+0) + sbc a, a ; 0 or FF + and SOUND_ONEBIT_mask + ld c, a + ld a, (__snd_tick) + xor c - ONEBITOUT + ONEBITOUT - ld b, h - ld c, a + ld b, h + ld c, a ;bit SOUND_ONEBIT_bit,a ;if o/p go again! ;jr nz,be_again - ld a, d - or e - jr z, be_end - ld a, c - ld c, l - dec de + ld a, d + or e + jr z, be_end + ld a, c + ld c, l + dec de ;jp (ix) - jp beixp3 + jp beixp3 ;.be_again ; ld c,l ; inc c ; jp (ix) be_end: - pop ix - pop ix + pop ix + pop ix ;call bit_close_ei - ret + ret - ENDIF +ENDIF diff --git a/libsrc/games/playzb4.asm b/libsrc/games/playzb4.asm index dae337e42bb..f5f77e88090 100644 --- a/libsrc/games/playzb4.asm +++ b/libsrc/games/playzb4.asm @@ -13,135 +13,135 @@ ; play 4 bit pulse wave encoded data using sid master volume - IF !__CPU_GBZ80__ +IF !__CPU_GBZ80__ - SECTION code_clib + SECTION code_clib - PUBLIC playzb4 - PUBLIC _playzb4 + PUBLIC playzb4 + PUBLIC _playzb4 - EXTERN bit_open_di - EXTERN bit_close_ei - EXTERN __snd_tick + EXTERN bit_open_di + EXTERN bit_close_ei + EXTERN __snd_tick - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" playzb4: _playzb4: - call bit_open_di + call bit_open_di - pop bc - pop de ;sample length - pop hl ;sample start addr - push hl - push de - push bc + pop bc + pop de ;sample length + pop hl ;sample start addr + push hl + push de + push bc - IF SOUND_ONEBIT_port>=256 - exx - ld bc, SOUND_ONEBIT_port - exx - ENDIF + IF SOUND_ONEBIT_port>=256 + exx + ld bc, SOUND_ONEBIT_port + exx + ENDIF rep1: - ld a, (hl) ; a = sample byte - rrca ; a = a div 16 - rrca ; - rrca ; - rrca ; - and $0f ; 4 bit nibble - call do_sound + ld a, (hl) ; a = sample byte + rrca ; a = a div 16 + rrca ; + rrca ; + rrca ; + and $0f ; 4 bit nibble + call do_sound - ld a, (hl) ; a = sample byte - and $0f ; 4 bit nibble - call do_sound + ld a, (hl) ; a = sample byte + and $0f ; 4 bit nibble + call do_sound - inc hl ; hl = hl+1 - dec e ; - jr nz, rep1 ; - dec d ; de = de-1 - jr nz, rep1 ;until de = 0 + inc hl ; hl = hl+1 + dec e ; + jr nz, rep1 ; + dec d ; de = de-1 + jr nz, rep1 ;until de = 0 - jp bit_close_ei + jp bit_close_ei do_sound: - push hl + push hl ;push de - ld hl, _dithpat - add l - ld l, a - ld a, h - adc 0 - ld h, a + ld hl, _dithpat + add l + ld l, a + ld a, h + adc 0 + ld h, a - ld a, (hl) + ld a, (hl) ; LOOP UNROLLING !! - IF PLAY_DATA_LEAD>120 - ld b, 4 - ELSE - ld b, 3 - ENDIF + IF PLAY_DATA_LEAD>120 + ld b, 4 + ELSE + ld b, 3 + ENDIF byte1: - rlca - ld l, a - sbc a, a ; 0 or FF - and SOUND_ONEBIT_mask - ld c, a - ld a, (__snd_tick) - xor c + rlca + ld l, a + sbc a, a ; 0 or FF + and SOUND_ONEBIT_mask + ld c, a + ld a, (__snd_tick) + xor c - ONEBITOUT + ONEBITOUT - ld a, l - djnz byte1 + ld a, l + djnz byte1 ;pop de - pop hl - ret + pop hl + ret - SECTION rodata_clib + SECTION rodata_clib _dithpat: - defb @00000000 ; 0 + defb @00000000 ; 0 - defb @00000000 ; 1 + defb @00000000 ; 1 - defb @00000000 ; 2 + defb @00000000 ; 2 - defb @00000000 ; 3 + defb @00000000 ; 3 - defb @00010000 ; 4 + defb @00010000 ; 4 - defb @01000000 ; 5 + defb @01000000 ; 5 - defb @00110000 ; 6 + defb @00110000 ; 6 - defb @11000000 ; 7 + defb @11000000 ; 7 - defb @10100000 ; 8 + defb @10100000 ; 8 - defb @10100000 ; 9 + defb @10100000 ; 9 - defb @11100000 ; 10 + defb @11100000 ; 10 - defb @01110000 ; 11 + defb @01110000 ; 11 - defb @11010000 ; 12 + defb @11010000 ; 12 - defb @10110000 ; 13 + defb @10110000 ; 13 - defb @11110000 ; 14 + defb @11110000 ; 14 - defb @11110000 ; 15 + defb @11110000 ; 15 - ENDIF +ENDIF diff --git a/libsrc/games/playzb4_big.asm b/libsrc/games/playzb4_big.asm index faf4a9f7c4b..028f15d1a7c 100644 --- a/libsrc/games/playzb4_big.asm +++ b/libsrc/games/playzb4_big.asm @@ -13,31 +13,31 @@ ; play 4 bit pulse wave encoded data using sid master volume - IF !__CPU_GBZ80__&&!__CPU_INTEL__ +IF !__CPU_GBZ80__&&!__CPU_INTEL__ - SECTION smc_clib + SECTION smc_clib - PUBLIC playzb4 - PUBLIC _playzb4 + PUBLIC playzb4 + PUBLIC _playzb4 - EXTERN bit_open_di - EXTERN bit_close_ei - EXTERN __snd_tick + EXTERN bit_open_di + EXTERN bit_close_ei + EXTERN __snd_tick - INCLUDE "games/games.inc" + INCLUDE "games/games.inc" playzb4: _playzb4: - call bit_open_di + call bit_open_di - pop bc - pop de ;sample length - pop hl ;sample start addr - push hl - push de - push bc + pop bc + pop de ;sample length + pop hl ;sample start addr + push hl + push de + push bc ; ld a,(probe_dithpat) ; cpl @@ -46,247 +46,247 @@ _playzb4: ; sub b ; jr z,rep1 - push hl - push de - ld hl, dithpat - ld b, dithpat_end-dithpat + push hl + push de + ld hl, dithpat + ld b, dithpat_end-dithpat rep: - ld a, (hl) - and SOUND_ONEBIT_mask ; check the bit status - ld d, a + ld a, (hl) + and SOUND_ONEBIT_mask ; check the bit status + ld d, a ; ld a,0 ; jr z,noz ; dec a ;noz: - ld a, (__snd_tick) - res SOUND_ONEBIT_bit, a - or d ; set the sound bit to be sure it 'plays' - ld (hl), a - inc hl - djnz rep - pop de - pop hl + ld a, (__snd_tick) + res SOUND_ONEBIT_bit, a + or d ; set the sound bit to be sure it 'plays' + ld (hl), a + inc hl + djnz rep + pop de + pop hl rep1: - ld a, (hl) ; a = sample byte - rrca ; a = a div 16 - rrca ; - rrca ; - rrca ; - and $0f ; 4 bit nibble - call do_sound + ld a, (hl) ; a = sample byte + rrca ; a = a div 16 + rrca ; + rrca ; + rrca ; + and $0f ; 4 bit nibble + call do_sound - ld a, (hl) ; a = sample byte - and $0f ; 4 bit nibble - call do_sound + ld a, (hl) ; a = sample byte + and $0f ; 4 bit nibble + call do_sound - inc hl ; hl = hl+1 - dec e ; - jr nz, rep1 ; - dec d ; de = de-1 - jr nz, rep1 ;until de = 0 + inc hl ; hl = hl+1 + dec e ; + jr nz, rep1 ; + dec d ; de = de-1 + jr nz, rep1 ;until de = 0 - jp bit_close_ei + jp bit_close_ei do_sound: - push hl + push hl ;push de - add a - ld l, a - add a ; x4 - add l ; x6 - ld hl, dithpat - add l - ld l, a - ld a, h - adc 0 - ld h, a + add a + ld l, a + add a ; x4 + add l ; x6 + ld hl, dithpat + add l + ld l, a + ld a, h + adc 0 + ld h, a - ld bc, SOUND_ONEBIT_port + ld bc, SOUND_ONEBIT_port - push hl + push hl ; 15 times - outi - outi - outi - outi + outi + outi + outi + outi - outi - outi - outi - outi + outi + outi + outi + outi - outi - outi - outi - outi + outi + outi + outi + outi - outi - outi - outi + outi + outi + outi - pop hl + pop hl - IF PLAY_DATA_LEAD>200 - push hl + IF PLAY_DATA_LEAD>200 + push hl ; 15 times - outi - outi - outi - outi - - outi - outi - outi - outi - - outi - outi - outi - outi - - outi - outi - outi - pop hl - ENDIF + outi + outi + outi + outi + + outi + outi + outi + outi + + outi + outi + outi + outi + + outi + outi + outi + pop hl + ENDIF - IF PLAY_DATA_LEAD>150 - outi - outi - outi - outi + IF PLAY_DATA_LEAD>150 + outi + outi + outi + outi - outi - outi - outi - outi + outi + outi + outi + outi - outi - ENDIF + outi + ENDIF - pop hl - ret + pop hl + ret - SECTION data_clib + SECTION data_clib ; 15 samples, starting at marked position dithpat: - defb @00000000 ; 0 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 ; 1 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 ; 2 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 + defb @00000000 ; 0 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 ; 1 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 ; 2 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 probe_dithpat: - defb @00000000 ; 3 - defb @11111111 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 ; 4 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @11111111 - defb @11111111 ; 5 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 - defb @11111111 ; 6 - defb @00000000 - defb @11111111 - defb @00000000 - defb @00000000 - defb @00000000 - defb @00000000 ; 7 - defb @00000000 - defb @11111111 - defb @00000000 - defb @11111111 - defb @11111111 - defb @00000000 ; 8 - defb @00000000 - defb @00000000 - defb @11111111 - defb @00000000 - defb @11111111 - defb @11111111 ; 9 - defb @11111111 - defb @00000000 - defb @00000000 - defb @00000000 - defb @11111111 - defb @00000000 ; 10 - defb @11111111 - defb @00000000 - defb @11111111 - defb @00000000 - defb @11111111 - defb @11111111 ; 11 - defb @00000000 - defb @00000000 - defb @11111111 - defb @11111111 - defb @00000000 - defb @00000000 ; 12 - defb @11111111 - defb @11111111 - defb @00000000 - defb @00000000 - defb @11111111 - defb @11111111 ; 13 - defb @00000000 - defb @11111111 - defb @11111111 - defb @11111111 - defb @00000000 - defb @11111111 ; 14 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 ; 15 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 - defb @11111111 + defb @00000000 ; 3 + defb @11111111 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 ; 4 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @11111111 + defb @11111111 ; 5 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 + defb @11111111 ; 6 + defb @00000000 + defb @11111111 + defb @00000000 + defb @00000000 + defb @00000000 + defb @00000000 ; 7 + defb @00000000 + defb @11111111 + defb @00000000 + defb @11111111 + defb @11111111 + defb @00000000 ; 8 + defb @00000000 + defb @00000000 + defb @11111111 + defb @00000000 + defb @11111111 + defb @11111111 ; 9 + defb @11111111 + defb @00000000 + defb @00000000 + defb @00000000 + defb @11111111 + defb @00000000 ; 10 + defb @11111111 + defb @00000000 + defb @11111111 + defb @00000000 + defb @11111111 + defb @11111111 ; 11 + defb @00000000 + defb @00000000 + defb @11111111 + defb @11111111 + defb @00000000 + defb @00000000 ; 12 + defb @11111111 + defb @11111111 + defb @00000000 + defb @00000000 + defb @11111111 + defb @11111111 ; 13 + defb @00000000 + defb @11111111 + defb @11111111 + defb @11111111 + defb @00000000 + defb @11111111 ; 14 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 ; 15 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 + defb @11111111 dithpat_end: - ENDIF +ENDIF diff --git a/libsrc/games/synth_phase.asm b/libsrc/games/synth_phase.asm index a2eb8b8f340..f041c99cc4d 100644 --- a/libsrc/games/synth_phase.asm +++ b/libsrc/games/synth_phase.asm @@ -6,80 +6,80 @@ ; set up the frequency shifting parameters for synth_play ; - IF !__CPU_GBZ80__ - SECTION code_clib +IF !__CPU_GBZ80__ + SECTION code_clib - PUBLIC synth_phase - PUBLIC _synth_phase + PUBLIC synth_phase + PUBLIC _synth_phase - PUBLIC synth_phase_1 - PUBLIC _synth_phase_1 - PUBLIC synth_phase_2 - PUBLIC _synth_phase_2 - PUBLIC synth_phase_3 - PUBLIC _synth_phase_3 - PUBLIC synth_phase_4 - PUBLIC _synth_phase_4 + PUBLIC synth_phase_1 + PUBLIC _synth_phase_1 + PUBLIC synth_phase_2 + PUBLIC _synth_phase_2 + PUBLIC synth_phase_3 + PUBLIC _synth_phase_3 + PUBLIC synth_phase_4 + PUBLIC _synth_phase_4 synth_phase: _synth_phase: - ld a, h - IF __CPU_INTEL__ - rrca - rrca - rrca - rrca - and 15 - ELSE - srl a - srl a - srl a - srl a - ENDIF - ld (synth_phase_1), a - ld a, h - and $0f - ld (synth_phase_2), a - ld a, l - IF __CPU_INTEL__ - rrca - rrca - rrca - rrca - and 15 - ELSE - srl a - srl a - srl a - srl a - ENDIF - ld (synth_phase_3), a - ld a, l - and $0f - ld (synth_phase_4), a - ret + ld a, h + IF __CPU_INTEL__ + rrca + rrca + rrca + rrca + and 15 + ELSE + srl a + srl a + srl a + srl a + ENDIF + ld (synth_phase_1), a + ld a, h + and $0f + ld (synth_phase_2), a + ld a, l + IF __CPU_INTEL__ + rrca + rrca + rrca + rrca + and 15 + ELSE + srl a + srl a + srl a + srl a + ENDIF + ld (synth_phase_3), a + ld a, l + and $0f + ld (synth_phase_4), a + ret - SECTION data_clib + SECTION data_clib _synth_phase_1: synth_phase_1: - defw 1 + defw 1 _synth_phase_2: synth_phase_2: - defw 2 + defw 2 _synth_phase_3: synth_phase_3: - defw 3 + defw 3 _synth_phase_4: synth_phase_4: - defw 4 + defw 4 - ENDIF +ENDIF