From 353d12c27de1a2550de7d80135bce5604d8c3888 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 20 Apr 2020 20:28:25 -0400 Subject: [PATCH] boot: inline chkRS, make next a bit faster --- emul/forth/z80c.bin | Bin 2184 -> 2180 bytes forth/boot.fs | 17 ++++++----------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/emul/forth/z80c.bin b/emul/forth/z80c.bin index a6d88e6b963fd65e717f588fa013ffbde038fb70..323a38283395d7f7f8b95b4eca4d63f826e20ec4 100644 GIT binary patch delta 1077 zcmYjPO-NKx82#@1bF_Rq))*1ND1|d-;zCKx65lx1fXy4{jYy@)=$Oq$#RMI+rl2U? zWVMPI+}1{d7R78Iw1{%qB1mu%^pA*$&|*5@eM-H>d+(m_yXT&B?)Sid*WczoCAUcO zaWleog!_kFL;UzgZmV!liaEMRb11vefu7@mCO&v>GPKjKW)DLm2Cg`q*t5~ zHLq@oRyDt@Sk&9seZetFH-qG(7n(((>GaHv@y4*9e84Isb}^caR+5IbCfAXHWHK60 zHF`b$|6|ouW^QRd6-3vvlbLWO8K$oL)S?K0yni5;ssd3&D{8xW<(*njv3M$)OeCWz z3h1k1QCQS%*~wHrB)w4^bc@dUNSHh70>pNDzeCy}@beWCx8VU*Mv6cx=%uo(M6mKg$%Ji$ zQV=1P`%lv#`fEU&)i(5qwj@@RBILuHc&HZyvu_LDy()_6;eAW^^J+g!b{@)?#45IU z^x-SWZbM&CCJ=KUY(zS%q^W}l*r#$dO(s0AW3j97`@XiW?IM>*Qvi*O998+9-NOf+ zu3AzNOC9Y1&ha zJjQ(UEP=xqgYv#uDn2CXgOoPX2E1Il6zv)A^5YujwGeo3QwMaMHR+Cdf-H1BQ#r^E kzVAdCC!RAr&$SrVQ@;HpG_*PxRL}JhpF^MEd!&`bU+ISS82|tP delta 1081 zcmYjPT}TvB82#@2xobMQR+2=pN|9?;J}5lU;n8bpzdK|v4* zp#(j}vaj{B1wq8V%v)fHPZ1O(2>lZg5hiTsyQ9=R%*;LCch5cN-0xQCPN>6sK;Cnb zk9S^p1H$`5o*_PeB=4y3c8IHVo35hlB|mrMq@)Lje-zit0ja)c+mU27w>0l(;PyZP5*+KwsIN zL}_Sz^z6t;4UW!>Fg4Pco`t)jupuE#ZB$V5;->EU;4naL3)19T8zUtkmGo4ZQ{q_p zp^QdS2qiCCRqo$SgXpgVZBAR(eoZ56q6wr)lvBimGd z=hpB6`$#>hh^3KM0CI#*Y9N*F+K6Zz*T{?ehJPH3wCP*fA}(*0cWvU>N5+C!RdSjm zd$aVT{2SJ}Vv*h1dvYf_{XnK9lK~!!a+*z_z%`h;bY881z rEOb3oImiQi-%bT5K4tix>oKf*1M5d= SP? good ) JR, L1 BWR ( abortUnderflow ) -L2 BSET ( chkRS ) - IX PUSHqq, HL POPqq, - DE RS_ADDR LDddnn, - DE SUBHLss, - CNC RETcc, ( IX >= RS_ADDR? good ) - JR, L1 BWR ( abortUnderflow ) - - 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. ) ( Before we continue: are stacks within bounds? ) 0x1d CALLnn, ( chkPS ) - L2 @ CALLnn, ( chkRS ) + ( check RS ) + IX PUSHqq, HL POPqq, + DE RS_ADDR LDddnn, + DE SUBHLss, + JRC, L1 BWR ( IX < RS_ADDR? abortUnderflow ) E 0 IY+ LDrIXY, D 1 IY+ LDrIXY, IY INCss,