duskos

dusk os fork
git clone git://git.alexwennerberg.com/duskos
Log | Files | Refs | README | LICENSE

commit aa955b3e311a50f3f962181ce668c15d99bb9cad
parent 96df13b9c7a89d003496762fdb56ad996db96ef0
Author: Virgil Dupras <hsoft@hardcoded.net>
Date:   Mon, 13 Mar 2023 22:02:36 -0400

hal: simplify

Diffstat:
Mfs/xcomp/bootlo.fs | 49++++++++++++++++++++++++++++---------------------
1 file changed, 28 insertions(+), 21 deletions(-)

diff --git a/fs/xcomp/bootlo.fs b/fs/xcomp/bootlo.fs @@ -21,19 +21,18 @@ code over over, exit, code tuck W>A, PSP) @, dup, W<>A, PSP) 4 +) !, exit, code 2dup W>A, PSP) @, -8 ps+, PSP) !, W<>A, PSP) 4 +) !, exit, -code immediate dup, sysdict m) @, 4 W+n, W>A, A) @, $80 orn, A) !, drop, exit, -: EMETA_16B $11 ; : EMETA_8B $10 ; -code 16b dup, MOD LIT>A, EMETA_16B LIT>W, A) !, drop, exit, immediate -code 8b dup, MOD LIT>A, EMETA_8B LIT>W, A) !, drop, exit, immediate +code @ W) @, exit, +code16b HERE @ W) 16b) @, exit, +code8b HERE @ W) 8b) @, exit, +code c@ branch, drop +code w@ branch, drop code ! W>A, PSP) @, A) !, 2drop, exit, -code16b W>A, PSP) @, A) 16b) !, 2drop, exit, -code8b W>A, PSP) @, A) 8b) !, 2drop, exit, -: c! 8b ! ; : w! 16b ! ; -code @ W) @, exit, -code16b W) 16b) @, exit, -code8b W) 8b) @, exit, -: c@ 8b @ ; : w@ 16b @ ; +code16b HERE @ W>A, PSP) @, A) 16b) !, 2drop, exit, +code8b HERE @ W>A, PSP) @, A) 8b) !, 2drop, exit, +code c! branch, drop +code w! branch, drop + code +! W>A, drop, A) +, A) !, drop, exit, code16b W>A, drop, A) 16b) +, A) 16b) !, drop, exit, code8b W>A, drop, A) 8b) +, A) 8b) !, drop, exit, @@ -42,23 +41,35 @@ code16b W>A, drop, A) 16b) @!, exit, code8b W>A, drop, A) 8b) @!, exit, code @+ W>A, A) @, W<>A, 4 W+n, dup, W<>A, exit, code16b W>A, A) 16b) @, W<>A, 2 W+n, dup, W<>A, exit, -code8b W>A, A) 8b) @, W<>A, 1 W+n, dup, W<>A, exit, -: c@+ 8b @+ ; +code8b HERE @ W>A, A) 8b) @, W<>A, 1 W+n, dup, W<>A, exit, +code c@+ branch, drop + code !+ W>A, drop, A) !, W<>A, 4 W+n, exit, code16b W>A, drop, A) 16b) !, W<>A, 2 W+n, exit, -code8b W>A, drop, A) 8b) !, W<>A, 1 W+n, exit, -: c!+ 8b !+ ; +code8b HERE @ W>A, drop, A) 8b) !, W<>A, 1 W+n, exit, +code c!+ branch, drop + code @@+ W>A, A) [@], 4 A) [+n], exit, code16b W>A, A) 16b) [@], 2 A) [+n], exit, code8b W>A, A) 8b) [@], 1 A) [+n], exit, code @!+ W>A, drop, A) [!], 4 A) [+n], drop, exit, code16b W>A, drop, A) 16b) [!], 2 A) [+n], drop, exit, code8b W>A, drop, A) 8b) [!], 1 A) [+n], drop, exit, -: , HERE @!+ ; :16b HERE 16b @!+ ; :8b HERE 8b @!+ ; : c, 8b , ; -code execute W>A, drop, branchA, +code + PSP) +, nip, exit, +: e>w 5 + ; +: w>e 5 - ; +: current sysdict @ e>w ; code 1+ 1 W+n, exit, code 1- -1 W+n, exit, +: immediate current 1- dup c@ $80 or swap c! ; +: EMETA_16B $11 ; : EMETA_8B $10 ; +: 16b EMETA_16B MOD ! ; immediate +: 8b EMETA_8B MOD ! ; immediate + +: , HERE @!+ ; :16b HERE 16b @!+ ; :8b HERE 8b @!+ ; : c, 8b , ; + +code execute W>A, drop, branchA, code not =0>Z, Z>W, exit, code bool =0>Z, Z>W, 1 xorn, exit, : litn -4 ps+, PSP) !, LIT>W, ; @@ -86,7 +97,6 @@ code ?dup =0>Z, 0 Z) branchC, dup, then exit, ( hello, another comment! ) \ Arithmetic -code + PSP) +, nip, exit, : > swap < ; : 0>= $80000000 < ; : 0< 0>= not ; @@ -233,9 +243,6 @@ alias execute | immediate dup 8b to@+ V2 = if j to@! i to V1 then next ( c ) drop rdrop r> ( i ) ; -: e>w 5 + ; -: w>e 5 - ; -: current sysdict @ e>w ; \ Emitting $20 const SPC $0d const CR $0a const LF $08 const BS $1b const ESC alias drop emit