Login

Subversion Repositories NedoOS

Rev

Rev 126 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

    OUTPUT "op_40_7F.bin"

    ;;; generate all 40..7F instructions (all common `ld xx,yy` variants + halt)
    LUA ALLPASS
        registers = { 'b', 'c', 'd', 'e', 'h', 'l', '(hl)', 'a' }
        for r1 = 1, #registers do
            for r2 = 1, #registers do
                instruction = 'ld '..registers[r1]..','..registers[r2]
                if (r1 == r2 and registers[r1] == '(hl)') then
                    instruction = 'halt'    -- `ld (hl),(hl)` is `halt`
                end
                _pc(instruction)
            end
        end
    ENDLUA

;;; abandoned work in progress
; while the issue with DEFARRAY was resolved, the next blocker is IF inside DUP...

;     DEFARRAY registers b, c, d, e, h, l, (hl), a
;
; R1 DEFL 0
;     DUP 8
;         IF R1==6
;             halt
;         ELSE
;             ld  registers[R1],registers[R1]
;         ENDIF
; R1 DEFL R1+1
;     EDUP