1 SECTION code_driver 2 3 PUBLIC asm_switch_data 4 5 GLOBAL copy_vram 6 GLOBAL y_table 7 8 9asm_switch_data: 10 PUSH DE ; Save src 11 PUSH HL ; Save dst 12 LD L,B 13 SLA L 14 SLA L 15 SLA L 16 LD H,0x00 17 ADD HL,HL 18 LD D,H 19 LD E,L 20 21 LD HL,y_table 22 SLA C 23 SLA C 24 SLA C 25 LD B,0x00 26 ADD HL,BC 27 ADD HL,BC 28 LD B,(HL) 29 INC HL 30 LD H,(HL) 31 LD L,B 32 ADD HL,DE 33 34 LD B,H ; BC = src 35 LD C,L 36 POP HL ; HL = dst 37 PUSH BC ; Save dst 38 LD A,H 39 OR L 40 JR Z,switch_1 41 LD DE,0x10 42 CALL copy_vram 43switch_1: 44 POP HL ; HL = dst 45 POP BC ; BC = src 46 LD DE,0x10 47 CALL copy_vram 48 RET 49