diff options
| author | kitty <nepeta@canaglie.net> | 2026-02-20 00:08:59 +1100 |
|---|---|---|
| committer | kitty <nepeta@canaglie.net> | 2026-02-20 00:08:59 +1100 |
| commit | f55879a88b5badd2d13cbcfd6a76aaecd96e95e3 (patch) | |
| tree | 5bdc1317ceb1f2f90fddde297f8342e8be6fc654 | |
| parent | 9a86ab4600d98040a406d7c2b704ab2d3642eeb6 (diff) | |
forth-created pad
for some reason a separate PAD section wasn't working.
this also fixes the 18 digit Issue. there are still issues i need to
sort out though.
| -rw-r--r-- | jefs.fs | 13 | ||||
| -rw-r--r-- | jefs.s | 8 |
2 files changed, 5 insertions, 16 deletions
@@ -40,21 +40,18 @@ decimal \ PNO \ mostly from pforth -\ currently broken if unsigned number has more than 18 digits -\ unfortunately this also seems to include any negative number -\ it continues reading words but a number literal causes a crash +255 allot variable pad variable hld -: <# dap hld ! ; +: <# pad hld ! ; : hold 1 hld -! ( chr ) hld @ c! ; : sign 0< if [ char - ] literal hold then ; : # base @ /mod swap 9 over > if 7 + then [ char 0 ] literal + hold ; \ issue is in here i think? : #s begin # dup 0= until ; -: #> drop hld @ dap over - ; +: #> drop hld @ pad over - ; -: ud. <# #s #> say ; +: ud. <# #s #> say space ; : t ." testtesttesttest" cr ; -bye -\ 100000000000000000 ud. bye +10000000000000000000 ud. 5 bye \ t testing bye @@ -64,9 +64,6 @@ section .bss exec wstack_b: resq 2047 wstack: resq 1 -padmem: resb 256 -padmem_e: - umem: resb 0x9c400 umem_e: @@ -1046,11 +1043,6 @@ 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: |
