-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSIZE.SRC
More file actions
35 lines (35 loc) · 1.69 KB
/
SIZE.SRC
File metadata and controls
35 lines (35 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
150 CONSTANT MRSIZE
: SIZE CREATE DUP MRSIZE > IF CR ." LIMITATION TO ADDRESS 0.."
MRSIZE 1- . DROP MRSIZE ELSE THEN DUP , 16 * NALLOT DOES> DUP
@ -ROT 1 CELLS + -ROT DUP -7 = IF DROP ROT CRRV DUP 4 PICK +
1- 5 PICK < IF DUP 3 PICK + 1- 5 PICK < IF 0 DO 2 PICK I + 16 *
5 PICK + 2 PICK I + 16 * 6 PICK + <F> LOOP 2DROP 2DROP ELSE CR
." DEST REG OUTSIDE REGISTER 0.." 2DROP DROP 1- . DROP ABORT
THEN ELSE CR ." START REG OUTSIDE REGISTER 0.." 2DROP DROP 1-
. DROP ABORT THEN ELSE DUP -8 = IF DROP ROT DUP 3 PICK < IF 3
PICK SWAP 16 * + FVIP SWAP DROP 16 * + ELSE CR
." IND REG OUTSIDE REGISTER 0.." DROP 1- . DROP ABORT THEN ELSE
DUP -6 = IF DROP ROT CRRV DUP 4 PICK + 1-
5 PICK < IF DUP 3 PICK + 1- 5 PICK < IF 0 DO 2 PICK I + 16 * 5
PICK + 2 PICK I + 16 * 6 PICK + DFV LOOP 2DROP 2DROP ELSE CR
." DEST REG OUTSIDE REGISTER 0.." 2DROP DROP 1- . DROP ABORT
THEN ELSE CR ." START REG OUTSIDE REGISTER 0.." 2DROP DROP 1-
. DROP ABORT THEN ELSE DUP -4 = IF DROP 0 DO CR ." R" I . ." ="
DUP FV. 16 + LOOP DROP ELSE DUP -3 = IF DROP 0 DO DUP CLFV 16 +
LOOP DROP ELSE DUP -2 = IF DROP X CLRV -ROT DUP 5 PICK < IF SWAP
DUP 5 PICK < IF BEGIN DUP 16 * 6 PICK + CLFV 3 PICK + DUP 3 PICK
> UNTIL 2DROP 2DROP DROP ELSE CR
." START LOOP OUTSIDE REGISTER 0.." 2DROP DROP 1- . DROP ABORT
THEN ELSE CR ." END LOOP OUTSIDE REGISTER 0.." 2DROP DROP 1- .
DROP ABORT THEN ELSE DUP -1 = IF DROP CR ." STORAGE SIZE IS: "
DUP . ." , REGISTERs ID 0.." 1- . DROP ELSE DUP ROT DUP ROT > IF
DROP 16 * + ELSE CR ." OVER THE REACHABLE REGISTER 0.." 1- . CR
ABORT THEN THEN THEN THEN THEN THEN THEN THEN ;
: CLRG -3 ;
: CLRGX -2 ;
: PRREG -4 ;
: PRREGX -5 ;
: REGMOVE -6 ;
: REGSWAP -7 ;
: IND -8 ;
: SIZE? -1 ;