diff --git a/apps/zasm/instr.asm b/apps/zasm/instr.asm index 356ab40..0382ea1 100644 --- a/apps/zasm/instr.asm +++ b/apps/zasm/instr.asm @@ -2,7 +2,7 @@ ; Number of rows in the argspec table ARGSPEC_TBL_CNT .equ 31 ; Number of rows in the primary instructions table -INSTR_TBL_CNT .equ 146 +INSTR_TBL_CNT .equ 148 ; size in bytes of each row in the primary instructions table INSTR_TBL_ROWSIZE .equ 6 ; Instruction IDs They correspond to the index of the table in instrNames @@ -51,14 +51,16 @@ I_PUSH .equ 0x29 I_RET .equ 0x2a I_RETI .equ 0x2b I_RETN .equ 0x2c -I_RLA .equ 0x2d -I_RLCA .equ 0x2e -I_RRA .equ 0x2f -I_RRCA .equ 0x30 -I_SBC .equ 0x31 -I_SCF .equ 0x32 -I_SUB .equ 0x33 -I_XOR .equ 0x34 +I_RL .equ 0x2d +I_RLA .equ 0x2e +I_RLCA .equ 0x2f +I_RR .equ 0x30 +I_RRA .equ 0x31 +I_RRCA .equ 0x32 +I_SBC .equ 0x33 +I_SCF .equ 0x34 +I_SUB .equ 0x35 +I_XOR .equ 0x36 ; Checks whether A is 'N' or 'M' checkNOrM: @@ -941,8 +943,10 @@ instrNames: .db "RET", 0 .db "RETI" .db "RETN" + .db "RL", 0, 0 .db "RLA", 0 .db "RLCA" + .db "RR", 0, 0 .db "RRA", 0 .db "RRCA" .db "SBC", 0 @@ -1108,8 +1112,10 @@ instrTBl: .db I_RET, 0xa, 0, 3, 0b11000000 , 0 ; RET cc .db I_RETI,0, 0, 0, 0xed, 0x4d ; RETI .db I_RETN,0, 0, 0, 0xed, 0x45 ; RETN + .db I_RL, 0xb, 0,0x40, 0xcb, 0b00010000 ; RL r .db I_RLA, 0, 0, 0, 0x17 , 0 ; RLA .db I_RLCA,0, 0, 0, 0x07 , 0 ; RLCA + .db I_RR, 0xb, 0,0x40, 0xcb, 0b00011000 ; RR r .db I_RRA, 0, 0, 0, 0x1f , 0 ; RRA .db I_RRCA,0, 0, 0, 0x0f , 0 ; RRCA .db I_SBC, 'A', 'l', 0, 0x9e , 0 ; SBC A, (HL) diff --git a/apps/zasm/util.asm b/apps/zasm/util.asm index 07601b1..d61fe25 100644 --- a/apps/zasm/util.asm +++ b/apps/zasm/util.asm @@ -223,8 +223,8 @@ multDEBC: jr nc, .noinc add hl, bc jr nc, .noinc - inc de + inc de .noinc: dec a - jr nz, .loop + jr nz, .loop ret diff --git a/tools/tests/zasm/test1.asm b/tools/tests/zasm/test1.asm index 7636934..dbe41bf 100644 --- a/tools/tests/zasm/test1.asm +++ b/tools/tests/zasm/test1.asm @@ -21,3 +21,5 @@ label2: .dw 0x42 ld hl, 0x100 .equ baz 0x20 ld b, baz-3 + rl d + rr e diff --git a/tools/tests/zasm/test7.asm b/tools/tests/zasm/test7.asm index ee94d4d..a23981b 100644 --- a/tools/tests/zasm/test7.asm +++ b/tools/tests/zasm/test7.asm @@ -14,7 +14,7 @@ .equ FS_HANDLE_COUNT 0 #include "fs.asm" -;#include "zasm/util.asm" +#include "zasm/util.asm" ;.equ IO_RAMSTART ZASM_RAMEND ;#include "zasm/io.asm"