0 I 2 3 4 5 6 7 8 9 10 I I 12 13 14 - 1 5 16 17 - 18 19 20 21 22 23 24 - 25 26 27 - 28 ) 29 30 31 32 33 34 - 35 36 37 - 38 39 40 41 42 43 44 45 46 47 - 48 49 50 _ 51 52 53 )54 - 1 55 56 57 - 58 59 r IMMEDIATE 80 CURRENT @ @ 4 - +! 12 USER OFFSET VOCABULARY ASSEMBLER C ARITHMETIC OPERATORS) ASSEMBLER) C MACROS) C TRANSFERS) COMPILER> C ERRORS) C VOCABULARIES) NUMB ER FORMATTING) C OUTPUT VOCABULARY) C EDITOR) FORTHDEFINITIONS FORGET TASK : TASK C LOWER BAUD SERIAL I/0) C TERMINAL I/0) C HIGHERBAUD SER I AL I/0) C RESTART> ( OPTIONS) DECIMAL C ASSEMBL ER) ( STRING EDITOR) ( CHARACTER EDITOR PRIMITIVES) ? DISK UTILITIES) FORTH DEFINITIONS FORGET TASK : TASK ; DISK COMPARE> ( DISK ERRORCHECKING) HEX DOCUMENTATION) FORTHDEFINITIONS FORGET TASK : TASK RECONFIGURE> FORTHDEFINITIONS FORGET TASK : TASK ; COMPILER) FORTH DEFINITIONS ( TARGET VOCABULARY) C TARGET DICTIONARY> ( TARGET COMPILER) C TARGET ASSEMBLER ) RAM DEFINING) HERE ( PROM DEFINING) HE~E ( COMPILING WORDS) HEX ( INITIALIZE NUCLEUS) ( INITIALIZE SYMBOLS) ( COMPILER OUTPUT) 0003 EOU ZERO 0151 EMPLAC E 2+ ( MORE DEFINITIONS) ( CROSS ILLUSTRATION) FORGET TASK : TASK 0006 EOU 'NEXT 0150 EMPLACE MOVE ,-,,.... n wr- i rih t- 1 O 7 R. hv l=nPTH _ T nr _ RCA I 80? mi c r_QfORTH 25 AUG 1 973 The contents of this document are the intellectual property of FORTH, Inc. and are protected by copyright. This document is provided free of charge for personal, non-commercial, and academic uses. You may not redistribute this in any form without permission from FORTH, Inc.
16
Embed
I 2 IMMEDIATE 80 CURRENT 12 USER OFFSET VOCABULARY … · 2017. 4. 24. · 6 0 ( assembler) 1 oe constant r od constant s oc constant i 2 oa constant a 9 constant t 4 constant u 3
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
0 I
2 3 4 5 6 7 8 9
10 I I 12 13 14
- 1 5 16 17
- 18 19 20 21 22 23 24
- 25 26 27
- 28 )29 30 31 32 33 34
- 35 36 37
- 38 39 40 41 42 43 44 45 46 47
- 48 49 50
_ 51 52 53
)54 -
155 56 57
- 58 59
r IMMEDIATE 80 CURRENT @ @ 4 - +! 12 USER OFFSET VOCABULARY ASSEMBLER
C ARITHMETIC OPERATORS) ASSEMBLER)
C MACROS) C TRANSFERS)
COMPILER> C ERRORS) C VOCABULARIES)
NUMBER FORMATTING) C OUTPUT VOCABULARY)
C EDITOR) FORTH DEFINITIONS FORGET TASK : TASK C LOWER BAUD SERIAL I/0)
C TERMINAL I/0) C HIGHER BAUD SER I AL I/0) C RESTART> ( OPTIONS) DECIMAL C ASSEMBLER) ( STRING EDITOR)
( CHARACTER EDITOR PRIMITIVES) ?
DISK UTILITIES) FORTH DEFINITIONS FORGET TASK : TASK ; DISK COMPARE>
,-,,.... n wr- i rih t- 1 O 7 R. hv l=nPTH _ T nr _ RCA I 8 0 ? mi c r_QfORTH 25 AUG 1 973
The contents of this document are the intellectual property of FORTH, Inc. and are protected by copyright. This document is provided free of charge for personal, non-commercial, and academic uses. You may not redistribute this in any form without permission from FORTH, Inc.
3
0 IMMEDIATE 80 CURRENT@@ 4 - + ! ; 1 2 USER OFFSET i 8* 2* 2* 2* I C 29 WORD IMMEDIATE
2 : LOAD BLK C@ <R IN @ <R 3 BLK ! INTERPRET R> IN !
0 IN ! 8* 0 FFSET @ + F9F DROP R> BLK C!
4 : <BUILDS O CONSTANT; 5 6 7 8 9
COMPILER) 9 LOAD ( VOCAB-'S) OB LOAD C ASSEMBLER) TERM I NAU OF LOAD 1 0 LOAD ( ARITHMETIC) 5 LOAD
r BLOCK OFFSET @ + F9F MIN BLOCK; ., MIN 2 - ., LOAD IE + !
FORMATIING) OC LOAD ( OUTPUT) OD LOAD ERRORS) OA LOAD I 2 LOAD ( OPTIONS) 13 LOAD
4 LOAD
10 I 1 12 13 14 15
ERASE-CORE IFEA 106 ERASE ; DECIMAL FLUSH 2 0 DO O BUFFER ! LOOP : TASK OK OU IT
COPYRIGHT (C) FORTH INC. MAY 1978
4
O VOCABULARY ASSEMBLER I ., ASSEMBLER 2+ ., FORTH 1 + 2 CODE CREATE ASSEMBLER
: VANISH IN-LIN E I N-LIN E ! ;
3 ;CODE COMPILE "\ ;CODE ASSEMBLER ; IMMEDIATE 4 PAGE HERE MINUS CZ DROP CZ SWAP OVER SWAP < U* H +! 5 6 7 8 9
OCTAL HEX
8 BASE C! IO BASE C ! ;
r CVARIABLE VARIABLE
USER ; CODE CZ CVARIABLE
: DECIMAL OA BASE C! ( ASSEMBLE) I 4 LOAD
W GLO CZ C, ;
S OST W GHI PUSH 10 11 12 13 14 15
13 PAGE CODE ERASE
T DEC 2POP T GLO
BEGIN BEGIN O#LD A STR A INC O= END T GHI O= END NEXT
0 I : > 2
5
ARITHMETIC OPERATORS) SWAP< ; ., O= CODE NOT HERE 2 -
DUP I U* SWAP FFOO AND CZ R> U* + <R I U/ CZ DROP R> SWAP <R U/ R> +
3 M* <R 4 r M/MOO 5: */MOD <R M* R> M/MOD ; *I */MOD SWAP DROP 6 : /MOD <R CZ R> M/MOD ; MOO /MOO DROP 7 : * CZ DROP / /MOO SWAP DROP ; 8 9 CODE LEAVE O#LD R INC R INC R INC R STR R DEC
10 R _ ) l I CODE
12 R 13 14 z MAX I 5 r MIN
STR J DEC
R DEC R INC R
R LON
OVER OVER OVER OVER
R DEC NEXT INC R INC R INC R INC R LON R DEC R DEC R DEC R DEC PUSH
< IF SWAP THEN DROP > IF SWAP THEN DROP
s DST
f ' ~ ~ "~ i " h t- I O 7 A h " J:" n D T el _ T n r _ Q C: \ 1 P. 'J ') ri i r: r n ;: r l r, l [ ? 5 .\ lJ --: I Q 7 ·1
6
0 ( ASSEMBLER) 1 OE CONSTANT R OD CONSTANT s OC CONSTANT I 2 OA CONSTANT A 9 CONSTANT T 4 CONSTANT u 3 4 # 8 MODE C! : +C 80 MODE l+ C! 5 6 lRG <BUILDS c, DOES> C@ + C, ; 7 : ALU <BUILDS C, DOES> C@ MOOE @ + MODE 8 MODE C@ + C, THEN C, 0 MODE ! 9
10 00 IRG LON 10 IRG INC 20 IRG DEC 40 lRG I 1 60 lRG OUT 68 IRG INP 80 IRG GLO 90 lRG 12 BO IRG PHI DO IRG SEP EO IRG SEX FO ALU 13 F4 ALU ADD F5 ALU SD F6 ALU SHR F7 ALU
- 14 Fl ALU OR F2 ALU AND F3 ALU XOR 72 ALU 15 7A ALU REQ 78 ALU SEO 70 ALU RET 78 ALU
7
0 ( MACROS) 1 : ENTRY <BU I LOS DOES> @ HERE 2 - ! ; 2 3 NEXT F SEP; : O#LO F GHI ; 4 5 DST DUP DEC SIR ; 6 PUSH S DST NEXT; 7 ; S 8 9
10 I I 12
- 13 14 15
0
8
( TRANSFERS)
OB CONSTANT 3 CONSTANT
C@ IF
LOA 50 IRG GHI AO IRG LO FO ALU SM FE ALU LDXA 73 ALU SAV
I 2 3 4 5
( CODE NOT S INC 39 CONSTANT O 3A : EFL DFL +;
S LON 8 # XOR S SIR S DEC CONSTANT O= 38 CONSTANT DFL
NEXT)
6 : 7 : 8 : 9
10 _ ) I I
I 2 : I J ;s 14
- 15
0< 80 # AND : < DFL NOT;
O= NOT
IF C, HERE O C, ; THEN HERE SWAP C! ; ELSE 30 IF SWAP THEN
0 COMPILER) I <MARK) HERE - C, 2 : CTHEN) HERE OVER - SWAP C! ; 3 4 : DO '\ DO HERE; IMMEDIATE 5 LOOP \ LOOP (MARK) ; IMMEDIATE 6 : +LOOP \ +LOOP C MARK) ; IMMEDIATE 7 8 \ IF HERE O C, ; IMMEDIATE 9
IO :
IF ELSE WHILE THEN
'\ ELSE HERE O C, SWAP (THEN) \ WHILE SWAP (MARK) (THEN) ;
IMMEDIATE IMMEDIATE
I I
12 13 : BEGIN
CTHEN) ; IMMEDIATE
HER E ; I MME D I ATE 14 END '\ END (MARK); IMMEDIATE 15
10
0 C ERRORS) 1 CODE S! !POP 2 CO DE -' S S GH I
S PLO T PHI
A GHI S GLO
S PHI S DST
NEXT T GHI
: MESSAGE 17 LINE -TRAILING TYPE SPACE;
PUSH 3 4 5 6
: QUESTION HERE COUNT TYPE MESSAGE SO @ S! BLK @ QUIT ' QUESTION 2 - ' ·' 7 + ! ( CHANGE STACK LEVEL) 0
- \ 7 : ?STACK 'S 2+ SO @ OVER < IF I OUESTI ON THEN 8 c HERE AO + < IF 2 QUESTION THEN ; 9 ' ?STACK 2 - ' INTERPRET 43 + !
- I O 11 12
C NUMBER) DU P I+ C@ 20 = SWAP OVER + NUMBER C@ 20 -IF O QUESTION THEN SWAP IF MINUS THEN O ;
- 13 ;S 14 15
' (NUMBER) 2 - ' INTERPRET 7 + !
l I
( VOCABULARIES) 0 I 2 3 4 5
: VOCABULARY <BUILDS CURRENT@ I - , DOES> : DEFINITIONS CONTEXT @ CURRENT ! ; VOCABULARY FORTH IMMEDIATE FORTH DEFINITIONS
CURRENT@ DUP 7 - SWAP !
6:' -' IF O MINUS THEN; 7 : FORGET CURRENT@ CONTEXT ., DUP 8 - H 8 4 - @ CONTEXT@ ! 9
10 IN~LINE \ ['] , ; IMMEDIATE ) I I : [ ' ] \ [ ' ] ' , ; I MME O I A TE
- l 2 : ( SWAP ] SWAP ; I MME D I ATE 13 ; S 14
_ 15
CONTEXT
Coovrioht 1978 by FORTH, Inc. RCA 1802 microFORT H 25 AUG 1978
12
0 C NUMBER FORMATIING) 1 MSG SPACE 1 C, 20 C, MSG CR 6 C, OD C, 2 SPACES -DUP IF ODO SPACE LOOP THEN; 3 4 0 VARIABLE HLD : HOLD HLD @ 1 DUP HLD 5 6 PAD HERE 41 + ; : <# PAD HLD 7 : 8 9 :
10
#> DROP HLD@ PAD OVER - ; SIGN SWAP O< IF 20 HOLD THEN; # BASE C@ /MOD SWAP 9 OVER < IF #S BEGIN # DUPO= END; (.) DUP ABS <# #S SIGN#> ; - I 1
12 : • C.) TYPE SPACE ; : ? @ •
1 3 ; S _ 1 4
15
- 0 1
13
( OUTPUT VOCABULARY) .R <R (.) R> OVER - SPACES TYPE
0 C ASSEMBLER) I ' FORTH I+ ' ASSEMBLER 2+ @ = O= 5 U* BLK + !
- 2 BASE C@ HEX HERE SO @ 400 - H ! 3 4 ASSEMBLER 5 6 LOAD 6 CODE NOT 7 8 LOAD 8 ., + 2 - @
- 9 ' +! 2 - @
JO
DEFINITIONS 7 LOAD S INC S LON
ENTRY BINARY ENTRY 2POP
18 USER MOOE
8 # XOR
, @
., !
S STR S DEC
2 - @ ENTRY PUT 2 - @ ENTRY !POP
) I I H BASE C! FORTH DEFINITIONS ;S - 12
13 14 15
U PLO R PLO ' QUESTION DST O # LO
;S
NEXT
Coovrioht 1978 by FORTH, Inc. RCA 1802 microFORTH 25 AUG 1978 - - -
0 I 2 3 4 5
21
SIR I NG EDITOR) C# R# @ 40 MOD : #LEFT 40 C# - ;
: L# R# @ 40 / ; AT L# LI NE DROP C# + ; STRING 5E WORD HERE PAD 40 MOVE ;
: ERR IF TOP PAD HERE 40 MOVE O QUESTION THEN;
6 : 7
JUNE AT I - #LEFT I+ PAD COUNT (MATCH) S~1JAP AT - R# +! FIND BEGIN 3FF R#@ < ERR !LINE END; M UPDATE R# +! CR SPACE SPACE L# LINE D~OP C# TYPE
5F ECHO AT #LEFT TYPE L#. ; 8 9
JO - I I
12 13 14 15
0 1 2 3 4 5 6
- i 7 8 9
- IO 11
REMOVE OU P 40 /MOO LI NE OVER + <R + C# IF AT OVER #LEFT MOVE THEN DROP R#@ SWAP - R> OVER - OVER BLANK MINUS M;
B PAD C@ MI NUS M ; : N FI ND O M ; F SIR I NG N ; X STRING FIND R# @ PAD C@ - REMOVE; TILL R#@ STRING JUNE O= ERR REMOVE ; C STRING PAD COUNT <R #LEFT FORTH I - DUP 0< ERR
-DUP IF AT DUP I+ ROT (MOVE) THEN AT I MOVE R> M
22
( CHARACTER EDITOR PRIMITIVES) ASSEMBLE LOAD EDITOR DEFINITIONS 45 PAGE CODE (MATCH) S INC BEGIN S SEX S LOA T Prii
S LOA W PH I S LOA W PLO S I NC S LOA T PLO T DEC S LOA A PHI S LON A PLO A I NC A GLO STXD A GHI STXD T GLO STXD O= IF NEXT
THEN S DEC S DEC S DEC W SEX BEGIN A LOA SM SWAP O= END T GHI I # SM T PHI
0= NOT IF W INC T DEC T GLO SWAP O= END THl::N S SEX S INC S INC S INC S INC S INC S INC A GLO STXD A GHI STXD T GLO STXD NEXT
12 11 PAGE CODE BLANK 2POP O= END
BEGIN NEXT
20 # LO A SIR A INC 13 T DEC T GLO 14 I 5 : (MOVE) <R SWAP HERE FORTH I MOVE
0 I
2 3 4 5 6 7 8 9
10 J I I
_ 12 13 14 15
23
? STACK EMPTY! DICTIONARY FULL! RESTART!
DI SK ERROR .••
Copyright 1978 by FORTH, Inc.
Copyri ght 1978 by FORTH, Inc.
HERE SWAP R> MOVE
RCA 1802 microFORTH
ti( A I R02 rn i croFORTH 25 AUG I 9 79
24
0 I 2 3 4
DISK UTILITIES) FORTH DEFINITIONS FORGET TASK : TASK ; DECIMAL 2000 CONSTANT NEW 2 CONSTANT NB 7 CONSTANT INC
ASSEMBLE LOAD 2 6 LOAD _ : FI LL NB O DO 3999 BUFFER ! LOOP ; 25 LOAD
5 6 7 8 9
IO : - I I
I 2 ; S 13 14 15
0
RIGHT FILL 8* SWAP 8* INC O DO OVER OVER I + Dli I NEW+ I [BLOCK) 2 - ! UPDATE I J - I+ NB MOD
FLUSH THEN INC +LOOP FLUSH LOOP DROP DROP BACKUP O 250 RIGHT;
S~JEEP FI LL 8* SWAP 8* INC O DO OVER OVER I + DO I [ BLOCK) DROP INC +LOOP LOOP DROP DROP ;
25
DISK COMPARE)
O= IF
I 2 3
: MATCH FILL SWAP DO I 8* DUP [BLOCK) @ SWAP NEW+ [BUJ 1,{ J @ + IF I 8* 8 0 DO DUP [ BLOCK J OVER NEW + [ BLOCK J
64 0 DO OVER @ OVER@ - IF 4 DROP DROP CR 8 /. J 2* • LEAVE -I O O THEN -5 2+ SWAP 2+ LOOP DROP DROP 6 DUP 0< IF LEAVE THEN I+ LOOP DROP THEN LOOP 7 ; S 8 9
- 10 JI 12 13 14 15
26
0 ( DI SK ERROR CHECK I NG) HEX I CODE STATUS S SEX 5 OUT 6 INP S DEC NEXT 2 : STATUS O STATUS ; : ERROR STATUS 28 AND 3 LOG CR • ERROR 4 MESSAG E • , 4 : Non FY 2 - DUP @ 0 ROT DUP LOG OFFSET @ -
5 : [ BLOCK J BLOCK OA O DO ERROR IF NOTIFY BLOCK 6 ELSE LEAVE THEN LOOP 7 DECIMAL ;S 8
- 9 10
) I I - 12
13 14 15
C0pyr i ght 1978 by FORTH, Inc. RCA 1 802 microF CHHH 25 AUG 197 8