Sfoglia il codice sorgente

Refer to BOOT and (uflw) by addr in stable ABI

Was previously referred to by name+find, which was wasteful.
pull/128/head
Virgil Dupras 4 anni fa
parent
commit
dbd283758c
8 ha cambiato i file con 10 aggiunte e 19 eliminazioni
  1. +2
    -2
      blk/089
  2. +2
    -2
      blk/283
  3. +1
    -4
      blk/298
  4. +1
    -4
      blk/299
  5. +1
    -0
      blk/381
  6. +1
    -1
      blk/396
  7. +2
    -6
      blk/821
  8. BIN
      emul/forth.bin

+ 2
- 2
blk/089 Vedi File

@@ -6,9 +6,9 @@ very few things.
1. Set SP to PS_ADDR and IX to RS_ADDR
2. Sets HERE to RAMEND (RAMSTART+0x80).
3. Sets CURRENT to value of LATEST field in stable ABI.
4. Look for the word "BOOT" and calls it.
4. Execute the word referred to by 0x04 (BOOT) in stable ABI.

In a normal system, BOOT is in xcomp core (B411) and does a
In a normal system, BOOT is in core words at B396 and does a
few things:

1. Initialize all overrides to 0.


+ 2
- 2
blk/283 Vedi File

@@ -1,6 +1,6 @@
H@ ORG !
0 JPnn, ( 00, main ) NOP, NOP, NOP, ( unused )
NOP, NOP, ( unused ) NOP, NOP, ( 08, LATEST )
0 JPnn, ( 00, main ) NOP, ( unused ) NOP, NOP, ( 04, BOOT )
NOP, NOP, ( 06, uflw ) NOP, NOP, ( 08, LATEST )
NOP, NOP, NOP, NOP, NOP, NOP, NOP, ( 0a, unused )
0 JPnn, ( 11, pushRS ) 0 JPnn, ( 14, popRS )
NOP, NOP, NOP, ( unused )


+ 1
- 4
blk/298 Vedi File

@@ -1,8 +1,5 @@
6 A, '(' A, 'u' A, 'f' A, 'l' A, 'w' A, ')' A,
lblofl BSET ( abortUnderflow )
HL PC 7 - LDddnn,
DE RAMSTART 0x02 + LDdd(nn), ( RAM+02 == CURRENT )
lblfind @ CALLnn,
DE BIN( @ 0x06 ( uflw ) + LDdd(nn),
JR, L2 FWR ( execute, B301 )




+ 1
- 4
blk/299 Vedi File

@@ -1,4 +1,3 @@
L1 BSET 4 A, 'B' A, 'O' A, 'O' A, 'T' A,
PC ORG @ 1 + ! ( main )
( STACK OVERFLOW PROTECTION: See B76 )
SP PS_ADDR LDddnn, IX RS_ADDR LDddnn,
@@ -10,7 +9,5 @@ PC ORG @ 1 + ! ( main )
Forth. )
BIN( @ 0x08 + LDHL(nn),
RAMSTART 0x02 ( CURRENT ) + LD(nn)HL,
EXDEHL,
HL L1 @ LDddnn,
lblfind @ CALLnn,
DE BIN( @ 0x04 ( BOOT ) + LDdd(nn),
JR, L1 FWR ( execute, B301 )

+ 1
- 0
blk/381 Vedi File

@@ -6,6 +6,7 @@
: CRLF CR LF ; : SPC 32 EMIT ;
: NL 0x0a RAM+ @ ( NLPTR ) ?DUP IF EXECUTE ELSE CRLF THEN ;
: (uflw) LIT" stack underflow" ERR ;
XCURRENT @ _xapply ORG @ 0x06 ( stable ABI uflw ) + !
: (wnf) (print) SPC LIT" word not found" ERR ;




+ 1
- 1
blk/396 Vedi File

@@ -13,4 +13,4 @@
1 0x06 RAM+ ! INTERPRET
RDLN$ LIT< _sys [entry]
LIT< CollapseOS (print) NL (main) ;
XCURRENT @ _xapply ORG @ 0x04 ( stable ABI BOOT ) + !

+ 2
- 6
blk/821 Vedi File

@@ -1,4 +1,3 @@
L3 BSET 4 A, 'B' A, 'O' A, 'O' A, 'T' A,
PC 3 - ORG @ 1+ ! ( main )
SP PS_ADDR MOVxI, BP RS_ADDR MOVxI,
DI 0x08 MOVxm, ( LATEST )
@@ -6,8 +5,5 @@ PC 3 - ORG @ 1+ ! ( main )
BX RAMSTART MOVxI,
[BX] 0x04 ( HERE ) DI MOV[]+x,
[BX] 0x02 ( CURRENT ) DI MOV[]+x,
SI L3 @ MOVxI,
CALLn, lblfind @ RPCn, ( find )
IFZ, JMPn, lblexec @ RPCn, ( execute ) THEN,
AH 0x0e MOVri, ( print char ) AL '!' MOVri, 0x10 INT,
BEGIN, JMPs, AGAIN,
DI 0x04 ( BOOT ) MOVxm,
JMPn, lblexec @ RPCn, ( execute )

BIN
emul/forth.bin Vedi File


Loading…
Annulla
Salva