From 76e698157c6fb87a9691793533550bca27586195 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Thu, 18 Jun 2020 07:24:47 -0400 Subject: [PATCH] z80: remove layer of indirection in most "next" calls The only calls still using the stable ABI indirection are those made before the next routine is created. --- blk/243 | 3 ++- blk/300 | 2 +- emul/forth.bin | Bin 6188 -> 6188 bytes 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/blk/243 b/blk/243 index 9306a8d..9ecf09a 100644 --- a/blk/243 +++ b/blk/243 @@ -5,7 +5,8 @@ VARIABLE lblchkPS : chkPS, lblchkPS @ CALLnn, ; ( chkPS, B305 ) -: JPNEXT, 26 BJP, ; ( 26 == next ) +CREATE lblnext 0x1a , ( stable ABI until set in B300 ) +: JPNEXT, lblnext @ JPnn, ; : CODE ( same as CREATE, but with native word ) (entry) 0 C, ( 0 == native ) ; : ;CODE JPNEXT, ; diff --git a/blk/300 b/blk/300 index b3715cc..5db8fc2 100644 --- a/blk/300 +++ b/blk/300 @@ -1,4 +1,4 @@ -PC ORG @ 0x1b + ! ( next ) +lblnext BSET PC ORG @ 0x1b + ! ( next ) ( This routine is jumped to at the end of every word. In it, we jump to current IP, but we also take care of increasing it by 2 before jumping. ) diff --git a/emul/forth.bin b/emul/forth.bin index 4f59a8afdf7907a58e6d957a4e83ad5805cb6eab..6bc28a4d116a6bec81e5372c03a75d9788525ab0 100644 GIT binary patch delta 697 zcmYjOO-~b16uqz0Dy?;DstX99oixHUlO~<+(1nGTMM-2PGgx6EZlKtRZPF$#Dv3X0 z(tm)vl8``yTS8c}Af^i!v*@DB`2+Y-?|Fm9)w}21^Uk~XyndlyI6fDVp71V2d9x=f zuj~h;(CF&B7>_S{;sp~bMML6XpbL-{$FkEPxprSK+i}#_xH4qMs;xSyzsyil-gadE zb5H2)*8YC(G2Nk2<>gX#?AvdJJn~%+5#^>@l*@}Hj{{f~A`d|P6 delta 697 zcmYjOO-~b16uqz03axc&stc%~oixHUlO~<+(1pd8MM-2PGgx6EY_QM(ZPF$#Dv3X0 z{sQi5LIRC$31P{Cm@Zt*qKhu)58y|==M5TH@1AqdJMZ4}`o(_nDBv zLwcuuaFBmYcW6|7wUk?bYZ$>-zEOhVLyFM|jwOCF@!x&C=oV8HA?;=Yu;?ZLh?ans z*Q!ZOjQ2l$YWI$J!CFq5H6b}@_s(|5HnSU+^WdNMbGz4<+BIukvTSfP5JXv_T(a0m zlL#GV;aEsAyhboz0tbY*sysn(`^r<^P1B^ho9l3^oB&|yR<4dnDw-;%>7p*jQFF7k zK=83ET8f7{9|cW`%6Eadzd*qr1T~f2{1*8QnSO2Y9vk?r-+n{Jv6`f3=>PN^zaW3P zxuUYedoK0PyRK{JlQc!<&E%GF+`P(!uMrrp7R|~nqK|ls?MAb;Gl!o*oL36z(_>EL zl7&Md