re-named int to word

master
bx 2021-08-30 19:38:26 +01:00
parent 229a7b73fa
commit 97b12551e5
1 changed files with 21 additions and 22 deletions

View File

@ -7,8 +7,7 @@ def zero_fill(pos)
end end
end end
# TODO: RENAME TO WORD def word(i)
def int(i)
$bytes.push((i & 0x000000ff), $bytes.push((i & 0x000000ff),
(i & 0x0000ff00) >> 8, (i & 0x0000ff00) >> 8,
(i & 0x00ff0000) >> 16, (i & 0x00ff0000) >> 16,
@ -28,7 +27,7 @@ def jmp(addr)
raise "jmp addr must be 4 byte aligned" if addr % 4 != 0 raise "jmp addr must be 4 byte aligned" if addr % 4 != 0
op = 0b0000_1000_0000_0000_0000_0000_0000_0000 op = 0b0000_1000_0000_0000_0000_0000_0000_0000
op = op | ((addr >> 2) & 0b11_11111111_11111111_11111111) op = op | ((addr >> 2) & 0b11_11111111_11111111_11111111)
int op word op
end end
def jal(addr) def jal(addr)
@ -36,11 +35,11 @@ def jal(addr)
raise "jmp addr must be 4 byte aligned" if addr % 4 != 0 raise "jmp addr must be 4 byte aligned" if addr % 4 != 0
op = 0b0000_1100_0000_0000_0000_0000_0000_0000 op = 0b0000_1100_0000_0000_0000_0000_0000_0000
op = op | ((addr >> 2) & 0b11_11111111_11111111_11111111) op = op | ((addr >> 2) & 0b11_11111111_11111111_11111111)
int op word op
end end
def nop def nop
int 0x00000000 word 0x00000000
end end
# load upper immediate # load upper immediate
@ -49,7 +48,7 @@ def lui(reg, val)
op = 0b001111_00000_00000_0000000000000000 op = 0b001111_00000_00000_0000000000000000
op |= (0b11111 & reg) << 16 op |= (0b11111 & reg) << 16
op |= 0xffff & val op |= 0xffff & val
int op word op
end end
@ -66,16 +65,16 @@ $base_addr = 0x80010000 # 0x10000 # 0x80010000
# # # EXE HEADER # # # # # # EXE HEADER # # #
string "PS-X EXE" string "PS-X EXE"
zero_fill 0x00f zero_fill 0x00f
int $base_addr # initial pc word $base_addr # initial pc
int 0x00000000 # initial GP/R28 word 0x00000000 # initial GP/R28
int $base_addr # destintation address in RAM word $base_addr # destintation address in RAM
int 0x800 # file size excluding header (must be N * 0x800) word 0x800 # file size excluding header (must be N * 0x800)
int 0x00000000 # Unknown/Unused word 0x00000000 # Unknown/Unused
int 0x00000000 # Unknown/Unused word 0x00000000 # Unknown/Unused
int 0x00000000 # Memfill start address word 0x00000000 # Memfill start address
int 0x00000000 # Memfill size in bytes word 0x00000000 # Memfill size in bytes
int 0x801ffff0 # Initial SP/R29 & FP/R30 Base word 0x801ffff0 # Initial SP/R29 & FP/R30 Base
int 0x00000000 # Initial SP/R29 & FP/R30 Offs word 0x00000000 # Initial SP/R29 & FP/R30 Offs
zero_fill 0x4b # Reserved for A(43h) Function zero_fill 0x4b # Reserved for A(43h) Function
# Ascii marker would go here # Ascii marker would go here
zero_fill 0x7ff zero_fill 0x7ff
@ -100,13 +99,13 @@ lui 2, 1
# int 0b101011_00010_00001_01111111_11111111 # int 0b101011_00010_00001_01111111_11111111
string "this is a test lol" string "this is a test lol"
int 0xFFAAFFAA word 0xFFAAFFAA
int 0b001001_11101_11101_11111111_11111111 word 0b001001_11101_11101_11111111_11111111
int 0b001000_11101_11101_11111111_11111111 word 0b001000_11101_11101_11111111_11111111
int 0xAAFFAAFF word 0xAAFFAAFF
int 0b001001_00101_00101_11111111_11111111 word 0b001001_00101_00101_11111111_11111111
int 0b001000_00101_00101_11111111_11111111 word 0b001000_00101_00101_11111111_11111111