Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _script_flags_set:
- push af
- pop bc
- ld a, c
- ld [_script_flags], a
- ret
- _scr_cmd_lib: dw _scr_cmd00_stop
- dw _scr_cmd01_flush_pc
- dw _scr_cmd02_delay
- dw _scr_cmd03
- dw _scr_cmd04_set_main_sub
- dw _scr_cmd05
- dw _scr_cmd06
- dw _scr_cmd07_jmp
- dw _scr_cmd08_jsr
- dw _scr_cmd09_ret
- dw _scr_cmd0A
- dw _scr_cmd0B
- dw _scr_cmd0C
- dw _scr_cmd0D
- dw _scr_cmd0E
- dw _scr_cmd0F
- dw _scr_cmd10
- dw _scr_cmd11_pad_test
- dw _scr_cmd12_switch
- dw _set_def_hndl
- dw _scr_cmd14_memfill
- dw _scr_cmd15
- dw _scr_cmd16
- dw _scr_cmd17
- dw _scr_cmd18
- dw _scr_cmd19
- dw _scr_cmd1A
- dw _scr_cmd1B
- dw _scr_cmd1C
- dw _scr_cmd1D
- dw _scr_cmd1E
- dw _scr_cmd1F
- dw _scr_cmd20
- dw _scr_cmd21
- dw _scr_cmd22
- dw _scr_cmd23
- dw _scr_cmd24
- dw _scr_cmd25
- dw _scr_cmd26
- dw _scr_cmd27
- dw _scr_cmd28
- dw _scr_cmd29
- dw _scr_cmd2A
- dw _scr_cmd2B
- dw _scr_cmd2C
- dw _scr_cmd2D
- dw _scr_cmd2E
- dw _scr_cmd2F
- dw _scr_cmd30
- dw _scr_cmd31
- dw _scr_cmd32
- dw _scr_cmd33
- dw _scr_cmd34
- dw _scr_cmd35
- dw _scr_cmd36
- dw _scr_cmd37
- dw _scr_cmd38
- dw _scr_cmd39
- dw _scr_cmd3A
- dw _scr_cmd3B
- dw _scr_cmd3C
- dw _scr_cmd3D
- dw _scr_cmd3E
- dw _scr_cmd3F
- dw _scr_cmd40
- dw _scr_cmd41
- dw _scr_cmd42
- dw _scr_cmd43
- dw _scr_cmd44
- dw _scr_cmd45
- dw _scr_cmd46
- dw _scr_cmd47
- dw _scr_cmd48
- dw _scr_cmd49
- _run_script:
- ld a, [byte_10D4A1]
- and a
- ret nz
- dec a
- ld hl, _script_delay
- and [hl]
- jr z, _scr_cmd_exec
- dec [hl]
- ret
- _scr_cmd_exec:
- ld a, [_script_pc]
- ld l, a
- ld a, [_script_pc+1]
- ld h, a
- _scr_cmd_fetch:
- ldi a, [hl]
- sla a
- ld de, _scr_cmd_lib
- add a, e
- ld e, a
- jr nc, loc_E25
- inc d
- loc_E25:
- ld a, [de]
- ld c, a
- inc de
- ld a, [de]
- ld b, a
- push bc
- ret
- _script_flush_pc:
- ld a, l
- ld [_script_pc], a
- ld a, h
- ld [_script_pc+1], a
- ret
- _script_get_sp:
- ld de, _script_sp_buf
- ld a, [_script_sp_pos]
- _de_add_a_0:
- add a, e
- ld e, a
- ret nc
- inc d
- ret
- _script_push:
- ld [de], a
- inc de
- ld a, [_script_sp_pos]
- inc a
- ld [_script_sp_pos], a
- ret
- _script_pop:
- ld a, [_script_sp_pos]
- dec a
- ld [_script_sp_pos], a
- dec de
- ld a, [de]
- ret
- _scr_cmd00_stop:
- ld a, $80
- ld [byte_18A0CA], a
- xor a
- ld [_script_pc], a
- ld [_script_pc+1], a
- ret
- _scr_cmd01_flush_pc:
- jp _script_flush_pc
- _scr_cmd02_delay:
- ldi a, [hl]
- ld [_script_delay], a
- jp _script_flush_pc
- _scr_cmd05:
- ldi a, [hl]
- ld b, a
- ldi a, [hl]
- ld e, a
- ldi a, [hl]
- ld d, a
- push hl
- ld hl, word_18A0CB
- ldi a, [hl]
- ld [byte_18A0A7], a
- ldi a, [hl]
- ld [byte_18A0A8], a
- ldi a, [hl]
- ld [byte_18A0A9], a
- ldi a, [hl]
- ld [byte_18A0AA], a
- ld hl, byte_18A0DF
- ldi a, [hl]
- ld [byte_18A0AB], a
- ldi a, [hl]
- ld [byte_18A0AC], a
- ldi a, [hl]
- ld [byte_12AB84], a
- ldi a, [hl]
- ld [byte_12AB85], a
- call _thread_start_ex
- call _script_flags_set
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd03:
- ldi a, [hl]
- ld e, a
- ldi a, [hl]
- ld d, a
- call _script_flush_pc
- push de
- ret
- _scr_cmd06:
- ldi a, [hl]
- ld e, a
- ldi a, [hl]
- push hl
- ld h, a
- ld l, e
- ld bc, sub_EA5
- push bc
- jp [hl]
- sub_EA5:
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd04_set_main_sub:
- ldi a, [hl]
- ld [_main_sub_idx], a
- jp sub_2FB
- _scr_cmd07_jmp:
- ldi a, [hl]
- ld [_script_pc], a
- ldi a, [hl]
- ld [_script_pc+1], a
- jp _scr_cmd_exec
- _scr_cmd08_jsr:
- ldi a, [hl]
- ld [_script_pc], a
- ldi a, [hl]
- ld [_script_pc+1], a
- call _script_get_sp
- ld a, h
- call _script_push
- ld a, l
- call _script_push
- jp _scr_cmd_exec
- _scr_cmd09_ret:
- call _script_get_sp
- call _script_pop
- ld l, a
- call _script_pop
- ld h, a
- jp _scr_cmd_fetch
- _scr_cmd0A:
- call _script_get_sp
- ld a, [_script_sp_pos]
- dec a
- dec a
- ld [_script_sp_pos], a
- jr _scr_cmd07_jmp
- _scr_cmd0B:
- xor a
- ld [byte_18A0C0], a
- jp _scr_cmd_fetch
- _scr_cmd0C:
- xor a
- ld [byte_18A0C1], a
- jp _scr_cmd_fetch
- _scr_cmd0D:
- ld bc, byte_18A0C0
- jr sub_EFA
- _scr_cmd0E:
- ld bc, byte_18A0C1
- sub_EFA:
- ld a, [bc]
- inc a
- ld [bc], a
- cp [hl]
- inc hl
- jp c, _scr_cmd07_jmp
- xor a
- ld [bc], a
- jr _script_ofs_skip
- _scr_cmd0F:
- ld a, [_script_flags]
- ld c, a
- push bc
- pop af
- jr z, _script_ofs_skip
- jp _scr_cmd07_jmp
- _scr_cmd10:
- ld a, [_script_flags]
- ld c, a
- push bc
- pop af
- jr c, _script_ofs_skip
- jp _scr_cmd07_jmp
- _script_ofs_skip:
- inc hl
- inc hl
- jp _scr_cmd_fetch
- _scr_cmd11_pad_test:
- ld c, _pad_held & $FF
- ldi a, [hl]
- add a, c
- ld c, a
- ldi a, [hl]
- ld b, a
- ld a, [c]
- and b
- jr nz, _script_ofs_skip
- jp _scr_cmd07_jmp
- _scr_cmd12_switch:
- ldi a, [hl]
- ld e, a
- ldi a, [hl]
- ld d, a
- ld a, [de]
- sla a
- add a, l
- ld e, a
- ld a, h
- adc a, 0
- ld d, a
- ld a, [de]
- ld l, a
- inc de
- ld a, [de]
- ld h, a
- jp _scr_cmd_fetch
- _set_def_hndl:
- ldi a, [hl]
- ld [_script_default_handler], a
- ldi a, [hl]
- ld [_script_default_handler+1], a
- jp _scr_cmd_fetch
- _scr_cmd14_memfill:
- ldi a, [hl]
- ld c, a
- ldi a, [hl]
- ld b, a
- ldi a, [hl]
- ld e, a
- ldi a, [hl]
- ld d, a
- ld a, c
- loc_F54:
- ld [de], a
- inc de
- dec b
- jr nz, loc_F54
- jp _scr_cmd_fetch
- sub_F5C:
- jp _scr_cmd_fetch
- _scr_cmd15:
- ldi a, [hl]
- ld [_mmc_prg_bank], a
- ld [loc_1FFF+1], a
- jp _scr_cmd_fetch
- _scr_cmd16:
- ldi a, [hl]
- call sub_2B0
- jp _scr_cmd_fetch
- _scr_cmd17:
- ld a, [byte_12A87D]
- and $80
- jp nz, _script_flush_pc
- push hl
- call sub_F9F
- call sub_F95
- pop hl
- jp _script_flush_pc
- _scr_cmd18:
- ld a, [byte_12A87D]
- and $80
- jp nz, _scr_cmd_fetch
- push hl
- call sub_F9F
- call sub_F95
- pop hl
- jp _scr_cmd_fetch
- sub_F95:
- ld de, byte_18A0D4
- ld hl, word_18A0CB
- ld a, [byte_18A0D2]
- jr loc_FA7
- sub_F9F:
- ld de, byte_18A0D5
- ld hl, word_18A0CD
- ld a, [byte_18A0D3]
- loc_FA7:
- and a
- ret z
- bit 7, a
- jr nz, loc_FB7
- call sub_FC4
- add a, [hl]
- ldi [hl], a
- ld a, [hl]
- adc a, 0
- ld [hl], a
- ret
- loc_FB7:
- cpl
- inc a
- call sub_FC4
- ld a, [hl]
- sub b
- ldi [hl], a
- ld a, [hl]
- sbc a, 0
- ld [hl], a
- ret
- sub_FC4:
- swap a
- ld c, a
- and 7
- ld b, a
- ld a, c
- and $F0
- ld c, a
- ld a, [de]
- add a, c
- ld [de], a
- ld a, b
- adc a, 0
- ld b, a
- ret
- word_FD6: dw 0
- dw $FF19
- dw $FB32
- dw $F54A
- dw $ED62
- dw $E279
- dw $D58E
- dw $C6A2
- dw $B5B5
- dw $A2C6
- dw $8ED5
- dw $79E2
- dw $62ED
- dw $4AF5
- dw $32FB
- dw $19FF
- sub_FF6:
- push hl
- ld a, [byte_18A0D9]
- and a
- jr z, loc_1006
- ld a, [byte_18A0D6]
- call sub_10A0
- jr z, loc_1006
- call sub_102D
- loc_1006:
- ld a, [byte_18A0D9]
- and a
- pop hl
- ret
- _scr_cmd19:
- push hl
- ld a, [byte_12A87D]
- and $80
- jp nz, loc_1023
- ld a, [byte_18A0D9]
- and a
- jr z, loc_1023
- ld a, [byte_18A0D6]
- call sub_10A0
- jr z, loc_1023
- call sub_102D
- loc_1023:
- ld a, [byte_18A0D9]
- and a
- call _script_flags_set
- pop hl
- jp _scr_cmd_fetch
- sub_102D:
- ld [byte_18A0A5], a
- ld bc, _switch
- loc_1032:
- ld hl, word_FD6
- ld a, [byte_18A0D8]
- and $F
- rst _hl_add_a_mul2_get_word_de
- ld a, e
- ld hl, byte_18A0D4
- add a, [hl]
- ldi [hl], a
- jr nc, loc_1045
- call sub_106F
- loc_1045:
- ld a, d
- and a
- jr z, loc_104D
- add a, [hl]
- ld [hl], a
- jr nc, loc_1050
- loc_104D:
- call sub_1085
- loc_1050:
- ld hl, byte_18A0D9
- dec [hl]
- jr z, loc_105D
- ld a, [byte_18A0A5]
- dec a
- ld [byte_18A0A5], a
- jr nz, loc_1032
- loc_105D:
- ld d, 0
- ld a, b
- ld hl, word_18A0CB
- call sub_1095
- ld d, 0
- ld a, c
- ld hl, word_18A0CD
- jp sub_1095
- sub_106F:
- ld a, [byte_18A0D8]
- and $30
- jr z, loc_107F
- cp $10
- jr z, loc_1081
- cp $30
- jr z, loc_1083
- loc_107D:
- dec b
- ret
- loc_107F:
- inc b
- ret
- loc_1081:
- dec c
- ret
- loc_1083:
- inc c
- ret
- sub_1085:
- ld a, [byte_18A0D8]
- and $30
- jr z, loc_1083
- cp $10
- jr z, loc_107F
- cp $20
- jr z, loc_1081
- jr loc_107D
- sub_1095:
- bit 7, a
- jr z, loc_109A
- dec d
- loc_109A:
- add a, [hl]
- ldi [hl], a
- ld a, [hl]
- adc a, d
- ld [hl], a
- ret
- sub_10A0:
- ld c, a
- and $F
- ld b, a
- ld a, c
- ld hl, byte_18A0D7
- and $F0
- add a, [hl]
- ld [hl], a
- ld a, b
- adc a, 0
- ret
- _scr_cmd1A:
- ld c, byte_18A0CA & $FF
- ld a, [c]
- res 7, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd1B:
- ld c, byte_18A0CA & $FF
- ld a, [c]
- set 7, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd1C:
- ld c, byte_18A0CA & $FF
- ld a, [c]
- set 6, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd1D:
- ld c, byte_18A0CA & $FF
- ld a, [c]
- res 6, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd1E:
- ldi a, [hl]
- ld [byte_18A0CF], a
- jp _scr_cmd_fetch
- _scr_cmd1F:
- ldi a, [hl]
- ld [byte_18A0D0], a
- jp _scr_cmd_fetch
- _scr_cmd20:
- ld c, byte_18A0D1 & $FF
- ld a, [c]
- res 4, a
- or [hl]
- ld [c], a
- inc hl
- jp _scr_cmd_fetch
- _scr_cmd21:
- ld c, byte_18A0D1 & $FF
- ld a, [c]
- res 5, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd22:
- ld c, byte_18A0D1 & $FF
- ld a, [c]
- set 5, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd23:
- ld c, byte_18A0D1 & $FF
- ld a, [c]
- res 6, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd24:
- ld c, byte_18A0D1 & $FF
- ld a, [c]
- set 6, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd25:
- ld c, byte_18A0D1 & $FF
- ld a, [c]
- res 7, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd26:
- ld c, byte_18A0D1 & $FF
- ld a, [c]
- set 7, a
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd27:
- ldi a, [hl]
- ld [word_18A0CD], a
- ldi a, [hl]
- ld [word_18A0CD+1], a
- jp _scr_cmd_fetch
- _scr_cmd28:
- ldi a, [hl]
- ld [word_18A0CB], a
- ldi a, [hl]
- ld [word_18A0CB+1], a
- jp _scr_cmd_fetch
- _scr_cmd29:
- ld c, word_18A0CD & $FF
- jr sub_1139
- _scr_cmd2A:
- ld c, word_18A0CB & $FF
- sub_1139:
- ld b, 0
- ld a, [hl]
- bit 7, a
- jr z, loc_1141
- dec b
- loc_1141:
- ld a, [c]
- add a, [hl]
- ld [c], a
- inc c
- ld a, [c]
- adc a, b
- ld [c], a
- inc hl
- jp _scr_cmd_fetch
- _scr_cmd2B:
- ldi a, [hl]
- ld [byte_18A0D3], a
- jp _scr_cmd_fetch
- _scr_cmd2C:
- ldi a, [hl]
- ld [byte_18A0D2], a
- jp _scr_cmd_fetch
- _scr_cmd2D:
- ld a, [byte_18A0D3]
- inc a
- ld [byte_18A0D3], a
- jp _scr_cmd_fetch
- _scr_cmd2E:
- ld a, [byte_18A0D2]
- inc a
- ld [byte_18A0D2], a
- jp _scr_cmd_fetch
- _scr_cmd2F:
- ld a, [byte_18A0D3]
- dec a
- ld [byte_18A0D3], a
- jp _scr_cmd_fetch
- _scr_cmd30:
- ld a, [byte_18A0D2]
- dec a
- ld [byte_18A0D2], a
- jp _scr_cmd_fetch
- _scr_cmd31:
- ldi a, [hl]
- swap a
- ld [byte_18A0D6], a
- xor a
- ld [byte_18A0D7], a
- ld [byte_18A0D3], a
- ld [byte_18A0D2], a
- ld [byte_18A0D5], a
- ld [byte_18A0D4], a
- jp _scr_cmd_fetch
- _scr_cmd32:
- ldi a, [hl]
- ld [byte_18A0D8], a
- jp _scr_cmd_fetch
- _scr_cmd33:
- ldi a, [hl]
- ld [byte_18A0D9], a
- jp _scr_cmd_fetch
- _scr_cmd34:
- ldi a, [hl]
- ld [byte_18A0DB], a
- ldi a, [hl]
- ld [byte_18A0DC], a
- jp _scr_cmd_fetch
- _scr_cmd35:
- ldi a, [hl]
- ld [byte_18A0DD], a
- jp _scr_cmd_fetch
- _scr_cmd36:
- ldi a, [hl]
- ld [byte_18A0DE], a
- jp _scr_cmd_fetch
- _script_vdp_ofs_get:
- ldi a, [hl]
- ld [byte_18A097], a
- ldi a, [hl]
- or $98
- ld [byte_18A096], a
- ret
- _script_word_arg_get:
- ldi a, [hl]
- ld e, a
- ldi a, [hl]
- ld d, a
- ret
- _scr_cmd37:
- ldi a, [hl]
- ld b, a
- call _script_vdp_ofs_get
- call _script_word_arg_get
- push hl
- ld l, e
- ld h, d
- call sub_8C1
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd38:
- call _script_word_arg_get
- push hl
- ld l, e
- ld h, d
- call sub_8B2
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd39:
- call _script_vdp_ofs_get
- call _script_word_arg_get
- push hl
- ld h, d
- ld l, e
- call _printf_res
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd3A:
- ldi a, [hl]
- ld b, a
- ldi a, [hl]
- ld c, a
- call _script_vdp_ofs_get
- call _script_word_arg_get
- push hl
- ld l, e
- ld h, d
- call sub_99C
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd3B:
- call _script_word_arg_get
- push hl
- ld h, d
- ld l, e
- loc_1203:
- call sub_C20
- loc_1206:
- pop hl
- loc_1207:
- jp _scr_cmd_fetch
- _scr_cmd3C:
- call _script_word_arg_get
- push hl
- call sub_BED
- pop hl
- sub_1212:
- call _script_flags_set
- jp _scr_cmd_fetch
- _scr_cmd3D:
- ldi a, [hl]
- ld b, a
- push hl
- call sub_C09
- pop hl
- jr sub_1212
- _scr_cmd3E:
- ldi a, [hl]
- ld b, a
- push hl
- call sub_C0B
- pop hl
- jr sub_1212
- _scr_cmd3F:
- call sub_BCE
- jr sub_1212
- _scr_cmd40:
- call _script_word_arg_get
- ldi a, [hl]
- ld c, a
- ldi a, [hl]
- push hl
- ld h, a
- ld l, c
- call sub_B0C
- pop hl
- jr sub_1212
- _scr_cmd41:
- call _script_word_arg_get
- ldi a, [hl]
- ld c, a
- ldi a, [hl]
- push hl
- ld h, a
- ld l, c
- call sub_B26
- pop hl
- jr sub_1212
- _scr_cmd42:
- ldi a, [hl]
- ld b, a
- call _script_vdp_ofs_get
- push hl
- call loc_B9C
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd43:
- ldi a, [hl]
- ld b, a
- call _script_vdp_ofs_get
- push hl
- call loc_BB1
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd44:
- ldi a, [hl]
- ld b, a
- call _script_vdp_ofs_get
- call _script_word_arg_get
- push hl
- call sub_B3F
- pop hl
- jp _scr_cmd_fetch
- _scr_cmd45:
- ldi a, [hl]
- add a, $47
- ld c, a
- ldi a, [hl]
- ld [c], a
- jp _scr_cmd_fetch
- _scr_cmd46:
- ldi a, [hl]
- ld [byte_12AB8E], a
- ldi a, [hl]
- ld [byte_12AB8F], a
- jp _scr_cmd_fetch
- _scr_cmd47:
- ldi a, [hl]
- ld c, a
- call _script_vdp_ofs_get
- call _script_word_arg_get
- push hl
- call sub_C76
- pop hl
- jp _script_flush_pc
- _scr_cmd48:
- ld a, [byte_12AB96]
- cp $FF
- jr z, sub_12AF
- ret
- _scr_cmd49:
- ld a, [byte_12AB96]
- cp $FF
- jr z, sub_12AD
- jp _scr_cmd07_jmp
- sub_12AD:
- inc hl
- inc hl
- sub_12AF:
- jp _script_flush_pc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement