diff options
Diffstat (limited to 'jefs.s')
| -rw-r--r-- | jefs.s | 86 |
1 files changed, 86 insertions, 0 deletions
@@ -64,6 +64,9 @@ section .bss exec wstack_b: resq 2047 wstack: resq 1 +padmem: resb 256 +padmem_e: + umem: resb 0x9c400 umem_e: @@ -683,6 +686,24 @@ defword "over", over, 0 pspush r11 ret +defword "rot", rot, 0 + pspop r11 + pspop r12 + pspop r13 + pspush r12 + pspush r11 + pspush r13 + ret + +defword "-rot", dash_rot, 0 + pspop r11 + pspop r12 + pspop r13 + pspush r11 + pspush r13 + pspush r12 + ret + defword "r>", from_r, 0 pop r11 pspush r11 @@ -768,6 +789,7 @@ defword "=", equals, 0 sete r13b movzx r11, r13b neg r11 + pspush r11 ret defword "<>", less_greater, 0 @@ -777,6 +799,7 @@ defword "<>", less_greater, 0 setne r13b movzx r11, r13b neg r11 + pspush r11 ret defword "<", less, 0 @@ -786,6 +809,7 @@ defword "<", less, 0 setl r13b movzx r11, r13b neg r11 + pspush r11 ret defword ">", greater, 0 @@ -795,6 +819,7 @@ defword ">", greater, 0 setg r13b movzx r11, r13b neg r11 + pspush r11 ret defword "<=", lesseq, 0 @@ -804,6 +829,7 @@ defword "<=", lesseq, 0 setle r13b movzx r11, r13b neg r11 + pspush r11 ret defword ">=", greatereq, 0 @@ -813,6 +839,61 @@ defword ">=", greatereq, 0 setge r13b movzx r11, r13b neg r11 + pspush r11 + ret + +defword "0=", zero_equals, 0 + pspop r11 + test r11, r11 + sete r13b + movzx r11, r13b + neg r11 + pspush r11 + ret + +defword "0<>", zero_less_greater, 0 + pspop r11 + test r11, r11 + setne r13b + movzx r11, r13b + neg r11 + pspush r11 + ret + +defword "0<", zero_less, 0 + pspop r11 + test r11, r11 + setl r13b + movzx r11, r13b + neg r11 + pspush r11 + ret + +defword "0>", zero_greater, 0 + pspop r11 + test r11, r11 + setg r13b + movzx r11, r13b + neg r11 + pspush r11 + ret + +defword "0<=", zero_lesseq, 0 + pspop r11 + test r11, r11 + setle r13b + movzx r11, r13b + neg r11 + pspush r11 + ret + +defword "0>=", zero_greatereq, 0 + pspop r11 + test r11, r11 + setge r13b + movzx r11, r13b + neg r11 + pspush r11 ret ; }}} @@ -983,6 +1064,11 @@ defvar "here", here, 0, umem defvar "h0", h0, 0, umem ; beginning of user memory area defvar "hend", hend, 0, umem_e ; ending of user memory area defvar "base", base, 0, 10 +; PNO uses pad going from high to low memory, but if anything else ever needs +; to use pad it might want to go the opposite way. so we support both. +; 'dap' is 'pad' backwards in case u couldn't figure it out. +defvar "pad", pad, 0, padmem +defvar "dap", dap, 0, padmem_e defvar "latest", latest, 0, lfa_latest initfile: |
