From afc2327770704a6fa79ec3d894952d74cb0770f0 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Fri, 8 May 2020 21:47:03 -0400 Subject: [PATCH] Split icore in 2 parts The goal is to insert device drivers in between. --- blk/392 | 10 +++++++++- blk/393 | 2 +- blk/415 | 1 + blk/{413 => 416} | 0 blk/{414 => 417} | 0 emul/forth.bin | Bin 5907 -> 5907 bytes emul/xcomp.fs | 6 ++++-- recipes/rc2014/xcomp.fs | 3 ++- recipes/ti84/xcomp.fs | 3 ++- recipes/trs80/xcomp.fs | 3 ++- 10 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 blk/415 rename blk/{413 => 416} (100%) rename blk/{414 => 417} (100%) diff --git a/blk/392 b/blk/392 index 5fe8205..5afcd1f 100644 --- a/blk/392 +++ b/blk/392 @@ -4,4 +4,12 @@ and other defining words. So, in other words, when compiling icore, ":" doesn't means what you think it means, go look in B260. -To load, run "393 LOAD". +This is loaded in two "low" and "high" parts. The low part is +the biggest chunk and has the most definitions. The high part +is the "sensitive" chunk and contains "LITN", ":" and ";" +definitions which, once defined, kind of make any more defs +impossible. + +The gap between these 2 parts is the ideal place to put device +driver code. Load the low part with "393 LOAD", the high part +with "415 LOAD" diff --git a/blk/393 b/blk/393 index 98d16d9..f3183fc 100644 --- a/blk/393 +++ b/blk/393 @@ -12,4 +12,4 @@ 0 0x08 RAM+ ! ( 08 == C<* override ) LIT< INTERPRET (find) DROP EXECUTE ; -1 21 LOADR+ +1 19 LOADR+ diff --git a/blk/415 b/blk/415 new file mode 100644 index 0000000..8ed1836 --- /dev/null +++ b/blk/415 @@ -0,0 +1 @@ +1 2 LOADR+ diff --git a/blk/413 b/blk/416 similarity index 100% rename from blk/413 rename to blk/416 diff --git a/blk/414 b/blk/417 similarity index 100% rename from blk/414 rename to blk/417 diff --git a/emul/forth.bin b/emul/forth.bin index 67d10665ca50e1beb704965a0fcecad69e43bffc..92c9af8b0f32d48aee07ab6af8346b28bb17d11c 100644 GIT binary patch delta 77 zcmbQNH(76k1UI`zYHntUChz2aZi&ef+yP2K-02J)3{{N53@i+fID#427z#M-xPuw) h{dZ!BH(+3lX574zdo44g;^uJv2xdlu%^QT0SpfbD6OjM_ delta 77 zcmV-T0J8s+E|V^>7z>j(3s5IB3ugcb0D1va00aQy2vYzC0B{H&3sV5z|3Uy?FaQB4 jWo>D6DF%}t3m5`h2(zgRtpfp(vsVvT0|B73uo7bg+tw4} diff --git a/emul/xcomp.fs b/emul/xcomp.fs index 0deddca..e7b63f4 100644 --- a/emul/xcomp.fs +++ b/emul/xcomp.fs @@ -10,12 +10,14 @@ CURRENT @ XCURRENT ! 282 LOAD ( boot.z80 ) -393 LOAD ( icore ) +393 LOAD ( icore low ) +: (emit) 0 PC! ; +: (key) 0 PC@ ; +415 LOAD ( icore high ) (entry) _ ( Update LATEST ) PC ORG @ 8 + ! ," CURRENT @ HERE ! " -," : (emit) 0 PC! ; : (key) 0 PC@ ; " 422 459 XPACKR ," ' (key) 12 RAM+ ! " ORG @ 256 /MOD 2 PC! 2 PC! diff --git a/recipes/rc2014/xcomp.fs b/recipes/rc2014/xcomp.fs index dc34efb..6f08080 100644 --- a/recipes/rc2014/xcomp.fs +++ b/recipes/rc2014/xcomp.fs @@ -18,7 +18,8 @@ CURRENT @ XCURRENT ! 282 LOAD ( boot.z80 ) 352 LOAD ( acia.z80 ) 372 LOAD ( sdc.z80 ) -393 LOAD ( icore ) +393 LOAD ( icore low ) +415 LOAD ( icore high ) (entry) _ ( Update LATEST ) PC ORG @ 8 + ! diff --git a/recipes/ti84/xcomp.fs b/recipes/ti84/xcomp.fs index cc73a17..6025228 100644 --- a/recipes/ti84/xcomp.fs +++ b/recipes/ti84/xcomp.fs @@ -13,7 +13,8 @@ CURRENT @ XCURRENT ! 282 LOAD ( boot.z80 ) 555 LOAD ( ti.z80 ) -393 LOAD ( icore ) +393 LOAD ( icore low ) +415 LOAD ( icore high ) (entry) ~FNT CPFNT3x5 (entry) _ ( Update LATEST ) diff --git a/recipes/trs80/xcomp.fs b/recipes/trs80/xcomp.fs index 42001cb..2db7e2b 100644 --- a/recipes/trs80/xcomp.fs +++ b/recipes/trs80/xcomp.fs @@ -12,7 +12,8 @@ CURRENT @ XCURRENT ! 0x3000 BIN( ! 282 LOAD ( boot.z80 ) 492 LOAD ( trs80.z80 ) -393 LOAD ( icore ) +393 LOAD ( icore low ) +415 LOAD ( icore high ) (entry) _ ( Update LATEST ) PC ORG @ 8 + !