The SuperForth words

Description of the page content

Header data of all SuperForth words.

Tags:

During the first steps of the Sfera development I needed to decode some words of SuperForth. The format of the dictionary is clearly described in the manual, so after doing some manual tries I wrote a simple tool to print a table with all words, which I include here.

Note: The first version of the table showed strange values, which made me think the code is somehow obfuscated, but the reason was a bug in the first version of the tool used to extract the information. The page has been updated.

Notes about the table:

LFA NFA CFA Code address PFA Type Name
AD4A AD54 AD56 87C6 AD58 : FORTH-83
8E0E 8E11 8E12 87C6 8E14 : :
8E5A 8E5D 8E5E 87C6 8E60 : ;
82EA 82EF 82F0 82DE 82F2 CODE (not at PFA) DUP
8168 816A 8170 8172 8172 CODE DROP
8380 8382 8388 838A 838A CODE SWAP
86D2 86D4 86DA 86DC 86DC CODE OVER
8198 819B 819C 818C 819E CODE (not at PFA) +
8184 8187 8188 818A 818A CODE -
85FA 85FD 85FE 8600 8600 CODE !
853C 853F 8540 8542 8542 CODE @
86EC 86EE 86F2 86F4 86F4 CODE >R
8702 8704 8708 870A 870A CODE R>
91E8 91EA 91EE 87C6 91F0 : IF
9218 921A 9220 87C6 9222 : THEN
91FA 91FC 9202 87C6 9204 : ELSE
9288 928A 928E 87C6 9290 : DO
92CE 92D0 92D6 87C6 92D8 : LOOP
86B4 86B9 86BA 86BC 86BC CODE ROT
8218 821B 821C 821E 821E CODE =
81E4 81E7 81E8 81EA 81EA CODE >
81F0 81F3 81F4 81F6 81F6 CODE <
8246 8248 824C 824E 824E CODE 0>
8254 8256 825A 825C 825C CODE 0=
8262 8264 8268 826A 826A CODE 0<
8F06 8F09 8F0A 87C6 8F0C : .
831C 831E 8322 8324 8324 CODE +!
8298 829A 829E 82A0 82A0 CODE 1+
82AC 82AE 82B2 82B4 82B4 CODE 2+
82D0 82D2 82D8 82DA 82DA CODE ?DUP
922A 9231 9232 87C6 9234 : BEGIN
9250 9257 9258 87C6 925A : WHILE
9260 9262 926A 87C6 926C : REPEAT
923A 9241 9242 87C6 9244 : UNTIL
8270 8272 8276 8278 8278 CODE U<
863A 863C 8640 8642 8642 CODE C@
869A 869C 86A0 86A2 86A2 CODE C!
89A0 89A2 89A6 87C6 89A8 : CR
872E 8731 8732 8734 8734 CODE I
8B8E 8B90 8B96 87C6 8B98 : HERE
8BCC 8BCF 8BD0 87C6 8BD2 : ,
8B72 8B74 8B78 87C6 8B7A : ."
A00E A011 A012 87C6 A014 : (
844E 8451 8452 8454 8454 CODE *
8718 871A 871E 8720 8720 CODE R@
8574 8576 857C 857E 857E CODE 2DUP
8586 858D 858E 8590 8590 CODE 2DROP
815A 815F 8160 8162 8162 CODE MIN
814C 8151 8152 8154 8154 CODE MAX
8A44 8A46 8A4C 87C6 8A4E : TYPE
8A30 8A37 8A38 87C6 8A3A : COUNT
8E7A 8E81 8E82 87C6 8E84 : SPACE
8E8A 8E8C 8E94 87C6 8E96 : SPACES
9328 9331 9332 87C6 9334 : DECIMAL
933C 9341 9342 87C6 9344 : HEX
894C 894F 8950 877C 8952 CONSTANT 0
8954 8957 8958 877C 895A CONSTANT 1
895C 895F 8960 877C 8962 CONSTANT 2
8964 8967 8968 877C 896A CONSTANT 3
896C 896E 8972 877C 8974 CONSTANT -1
8976 8978 897C 877C 897E CONSTANT -2
8D9E 8DA0 8DA8 87C6 8DAA : CREATE
820A 820C 8210 8212 8212 CODE <=
81FC 81FE 8202 8204 8204 CODE >=
822E 8230 8234 8236 8236 CODE <>
85C2 85C4 85C8 85CA 85CA CODE 2!
85AA 85AC 85B0 85B2 85B2 CODE 2@
84EA 84F1 84F2 84F4 84F4 CODE CMOVE
82C4 82C6 82CA 82CC 82CC CODE 2-
82B8 82BA 82BE 82C0 82C0 CODE 1-
848E 8490 8496 8498 8498 CODE /MOD
92E0 92E7 92E8 87C6 92EA : +LOOP
9026 902B 902C 87C6 902E : MOD
9034 9037 9038 87C6 903A : /
8E44 8E46 8E50 87C6 8E52 : VARIABLE
8E2C 8E2E 8E38 87C6 8E3A : CONSTANT
827E 8280 8284 8286 8286 CODE U>
9176 9178 917C 87C6 917E : U.
845E 8463 8464 8466 8466 CODE UM*
94FA 9501 9502 87C6 9504 : DOES>
8620 8622 8626 8628 8628 CODE 2/
8614 8616 861A 861C 861C CODE 2*
9184 9187 9188 87C6 918A : ?
8310 8312 831A 830C 831C CODE (not at PFA) NEGATE
8D64 8D6D 8D6E 87C6 8D70 : LITERAL
8E6C 8E6F 8E70 87C6 8E72 : ]
8D56 8D59 8D5A 87C6 8D5C : [
A056 A061 A062 87C6 A064 : [COMPILE]
9614 961B 961C 960A 961E VOCABULARY FORTH
8ED4 8ED6 8EDA 87C6 8EDC : C,
88EC 88F1 88F2 87C6 88F4 : PAD
82F2 82F4 82FA 82FC 82FC CODE PICK
8360 8365 8366 8368 8368 CODE XOR
8348 834D 834E 8350 8350 CODE AND
8354 8356 835A 835C 835C CODE OR
851A 851C 8522 8524 8524 CODE FILL
9F66 9F68 9F6E 87C6 9F70 : FIND
862C 862E 8634 8636 8636 CODE ROLL
81D6 81DB 81DC 81DE 81DE CODE DU<
8746 874F 8750 8752 8752 CODE DNEGATE
A0AA A0B0 A0B2 87C6 A0B4 : DMIN
A0C6 A0CC A0CE 87C6 A0D0 : DMAX
A09C A0A0 A0A2 87C6 A0A4 : D=
9102 9104 910A 87C6 910C : DABS
81C8 81CA 81CE 81D0 81D0 CODE D<
828C 8291 8292 8294 8294 CODE D0=
9118 911D 911E 87C6 9120 : D.R
9134 9136 913A 87C6 913C : D.
81B2 81B4 81B8 81BA 81BA CODE D-
819E 81A0 81A4 81A6 81A6 CODE D+
85D8 85DF 85E0 85E2 85E2 CODE 2SWAP
A084 A08A A08C 87C6 A08E : 2ROT
85E6 85ED 85EE 85F0 85F0 CODE 2OVER
A06E A079 A07A 87C6 A07C : 2VARIABLE
96BA 96C5 96C6 87C6 96C8 : 2CONSTANT
83F4 83FB 83FC 83FE 83FE CODE */MOD
9042 9044 9048 87C6 904A : */
846C 846E 8476 8478 8478 CODE UM/MOD
8300 8305 8306 8308 8308 CODE ABS
83C2 83C9 83CA 83CC 83CC CODE M/MOD
836E 8371 8372 8374 8374 CODE J
A01E A023 A024 87C6 A026 : -->
8528 852A 8530 8532 8532 CODE S->D
8B5A 8B5C 8B62 87C6 8B64 : WORD
8B9E 8BA5 8BA6 87C6 8BA8 : ALLOT
9144 9146 914A 87C6 914C : .R
8852 8857 8858 885A 885A CODE NOT
9FEC 9FF7 9FF8 87C6 9FFA : IMMEDIATE
AD30 AD3F AD40 87C6 AD42 : PRINTER_CLOSE
AD04 AD11 AD12 87C6 AD14 : PRINTER_OFF
ACD6 ACE2 ACE4 87C6 ACE6 : PRINTER_ON
ACBC ACC8 ACCA 87C6 ACCC : PRINTER_IS
ACAC ACB4 ACB6 879A ACB8 CREATE #PRINT
AC90 AC96 AC98 87C6 AC9A : V_ok
AC78 AC7D AC7E AC28 AC80 CODE (not at PFA) ZAP
AC5E AC67 AC68 87C6 AC6A : BEEPING
AC42 AC4A AC4C 87C6 AC4E : KEYROW
AC32 AC36 AC38 879A AC3A CREATE KR
ABF0 ABF7 ABF8 87C6 ABFA : SOUND
ABDC ABE5 ABE6 87C6 ABE8 : SILENCE
ABD0 ABD4 ABD6 879A ABD8 CREATE SL
ABB0 ABB4 ABB6 87C6 ABB8 : PK
AB88 AB8E AB90 87C6 AB92 : BEEP
AB6C AB70 AB72 87C6 AB74 : SW
AB54 AB58 AB5A 879A AB5C CREATE BP
AB40 AB49 AB4A 87C6 AB4C : ?JOB_ID
AB2C AB32 AB34 87C6 AB36 : KILL
AB1C AB21 AB22 87C6 AB24 : BYE
AB04 AB0C AB0E 87C6 AB10 : REMOVE
AA8A AA90 AA92 87C6 AA94 : EXEC
AA7A AA82 AA84 879A AA86 CREATE JOB_ID
AA6C AA72 AA74 879A AA76 CREATE #MDV
AA56 AA5C AA5E 87C6 AA60 : RUNS
AA0A AA0F AA10 87C6 AA12 : JOB
A9D8 A9DF A9E0 87C6 A9E2 : C_JOB
A9B6 A9BF A9C0 87C6 A9C2 : OWN_BUF
A996 A99F A9A0 87C6 A9A2 : OWN_TIB
A976 A97F A980 87C6 A982 : OWN_PAD
A954 A95F A960 87C6 A962 : OWN_USERS
A938 A93F A940 87C6 A942 : SLEEP
A922 A929 A92A 87C6 A92C : START
A902 A90C A90E 87C6 A910 : ACTIVATE
A8E6 A8F3 A8F4 87C6 A8F6 : PRIORITY_OF
A8C6 A8D0 A8D2 87C6 A8D4 : PRIORITY
A8B0 A8B9 A8BA 87C6 A8BC : RELEASE
A896 A8A0 A8A2 87C6 A8A4 : UNFREEZE
A87E A887 A888 87C6 A88A : SUSPEND
A864 A870 A872 87C6 A874 : SUSPEND_ME
A84A A852 A854 87C6 A856 : FREEZE
A832 A83B A83C 87C6 A83E : CALL_MT
A818 A81D A81E 879A A820 CREATE J_S
A7F2 A7FB A7FC A7FE A7FE CODE FS_LOAD
A794 A79C A79E A7A0 A7A0 CODE LD_JOB
A764 A76A A76C A76E A76E CODE C_MT
A74C A752 A754 87C6 A756 : DAY$
A73A A741 A742 87C6 A744 : DATE$
A712 A71B A71C 87C6 A71E : CALL_VU
A6F4 A701 A702 87C6 A704 : ADJUST_TIME
A6D8 A6E2 A6E4 87C6 A6E6 : SET_TIME
A6C0 A6C6 A6C8 87C6 A6CA : TIME
A6A6 A6AC A6AE 87C6 A6B0 : BAUD
A68E A693 A694 87C6 A696 : IPC
A674 A67A A67C 87C6 A67E : MODE
A65C A663 A664 87C6 A666 : SCALE
A642 A64A A64C 87C6 A64E : CIRCLE
A62C A631 A632 87C6 A634 : ARC
A614 A61A A61C 87C6 A61E : LINE
A5FC A603 A604 87C6 A606 : POINT
A5DA A5E1 A5E2 87C6 A5E4 : FPSTK
A5BC A5C6 A5C8 87C6 A5CA : GRAPHICS
A5A4 A5B0 A5B2 87C6 A5B4 : CURSOR_OFF
A58E A599 A59A 87C6 A59C : CURSOR_ON
A570 A576 A578 87C6 A57A : CSOR
A560 A564 A566 87C6 A568 : AT
A54C A554 A556 87C6 A558 : CURSOR
A538 A540 A542 87C6 A544 : BORDER
A51E A528 A52A 87C6 A52C : RECOLOUR
A504 A510 A512 87C6 A514 : BLOCK_FILL
A4E4 A4EC A4EE 87C6 A4F0 : TO_PAD
A4D4 A4D9 A4DA 87C6 A4DC : TAB
A4BA A4C9 A4CA 87C6 A4CC : SCROLL_BOTTOM
A4A2 A4AE A4B0 87C6 A4B2 : SCROLL_TOP
A48E A496 A498 87C6 A49A : SCROLL
A478 A483 A484 87C6 A486 : PAN_RLINE
A462 A46C A46E 87C6 A470 : PAN_LINE
A452 A457 A458 87C6 A45A : PAN
A43E A448 A44A 87C6 A44C : FILL_OFF
A42C A435 A436 87C6 A438 : FILL_ON
A41A A421 A422 87C6 A424 : PAINT
A404 A40E A410 87C6 A412 : SET_MODE
A3F0 A3FB A3FC 87C6 A3FE : UNDER_OFF
A3DC A3E6 A3E8 87C6 A3EA : UNDER_ON
A3CA A3D1 A3D2 87C6 A3D4 : UNDER
A3B6 A3C1 A3C2 87C6 A3C4 : FLASH_OFF
A3A2 A3AC A3AE 87C6 A3B0 : FLASH_ON
A390 A397 A398 87C6 A39A : FLASH
A37E A385 A386 87C6 A388 : STRIP
A36E A373 A374 87C6 A376 : INK
A35C A363 A364 87C6 A366 : PAPER
A330 A339 A33A 87C6 A33C : CALL3*A
A30A A312 A314 87C6 A316 : CALL3*
A2F8 A2FD A2FE A300 A300 CODE A2@
A2E6 A2EA A2EC A2EE A2EE CODE A@
A2D2 A2D7 A2D8 A2DA A2DA CODE AC@
A2C2 A2C7 A2C8 A2CA A2CA CODE A2!
A2B2 A2B6 A2B8 A2BA A2BA CODE A!
A29E A2A3 A2A4 A2A6 A2A6 CODE AC!
A260 A264 A266 87C6 A268 : .S
A250 A257 A258 87C6 A25A : FLP2_
A240 A247 A248 87C6 A24A : FLP1_
A230 A237 A238 87C6 A23A : MDV2_
A220 A227 A228 87C6 A22A : MDV1_
A20C A211 A212 87C6 A214 : FLP
A1F8 A1FD A1FE 87C6 A200 : MDV
A1E8 A1EF A1F0 87C6 A1F2 : ERASE
A1D8 A1DF A1E0 87C6 A1E2 : BLANK
A1C8 A1CD A1CE 87C6 A1D0 : U.R
A1AE A1B4 A1B6 87C6 A1B8 : THRU
A19E A1A3 A1A4 87C6 A1A6 : [']
A18E A195 A196 87C6 A198 : FLUSH
A170 A178 A17A 87C6 A17C : ABORT"
A162 A169 A16A 87C6 A16C : >BODY
A13A A141 A142 87C6 A144 : CSIZE
A116 A11B A11C 87C6 A11E : KEY
A0EE A0F5 A0F6 87C6 A0F8 : TO-DO
A0DA A0E2 A0E4 87C6 A0E6 : ASSIGN
A03C A049 A04A 87C6 A04C : DEFINITIONS
9FB6 9FC5 9FC6 87C6 9FC8 : DEVICE_STATUS
9FA2 9FA4 9FAC 87C6 9FAE : STATUS
9F90 9F92 9F9C 9F9E 9F9E CODE LOC_CHAR
9F50 9F5D 9F5E 87C6 9F60 : DELETE_FILE
9F38 9F45 9F46 87C6 9F48 : OPEN_DEVICE
9F00 9F0B 9F0C 87C6 9F0E : STR_CONST
9EF0 9EF2 9EFA 9EFC 9EFC CODE LOCATE
9EE0 9EE9 9EEA 9EEC 9EEC CODE UP_CHAR
9ECE 9ED3 9ED4 87C6 9ED6 : C==
9EBE 9EC0 9EC4 87C6 9EC6 : $>
9EAE 9EB0 9EB4 87C6 9EB6 : $<
9E9E 9EA3 9EA4 87C6 9EA6 : $==
9E8E 9E90 9E94 87C6 9E96 : $=
9E7E 9E87 9E88 9E8A 9E8A CODE COMPARE
9E6C 9E75 9E76 87C6 9E78 : MAX_LEN
9E50 9E52 9E5A 87C6 9E5C : UNUSED
9E32 9E3D 9E3E 87C6 9E40 : REPL_CHAR
9DF2 9DFB 9DFC 87C6 9DFE : REPLACE
9DD6 9DE1 9DE2 87C6 9DE4 : TAKE_CHAR
9DBA 9DBC 9DC2 87C6 9DC4 : CHAR
9D7A 9D7C 9D82 87C6 9D84 : TAKE
9D3E 9D45 9D46 87C6 9D48 : SLICE
9D26 9D28 9D32 87C6 9D34 : APP_CHAR
9CFC 9CFE 9D08 87C6 9D0A : INS_CHAR
9CC4 9CC6 9CCE 87C6 9CD0 : INSERT
9CB2 9CB4 9CBA 87C6 9CBC : LOSE
9BA2 9BAB 9BAC 87C6 9BAE : INS/DEL
9B90 9B97 9B98 87C6 9B9A : CLEAR
9B7A 9B7C 9B84 87C6 9B86 : APPEND
9B1A 9B25 9B26 87C6 9B28 : STR_ARRAY
9B0E 9B10 9B18 8642 9B1A CODE (not at PFA) LENGTH
9ACE 9AD5 9AD6 87C6 9AD8 : READ"
9A90 9A97 9A98 87C6 9A9A : INPUT
9A54 9A56 9A5E 87C6 9A60 : STRING
9A48 9A4A 9A4E 87C6 9A50 : OK
9A0C 9A0E 9A18 87C6 9A1A : END_FILE
99D4 99DF 99E0 87C6 99E2 : LOAD_FILE
99C8 99CA 99D0 87C6 99D2 : NULL
99BA 99C1 99C2 879A 99C4 CREATE #FILE
99A2 99A4 99A8 87C6 99AA : .(
9990 9997 9998 87C6 999A : LOWER
997E 9985 9986 87C6 9988 : UPPER
9698 969A 96A4 96D0 96A6 2CONSTANT #DEFAULT
94DC 94E3 94E4 87C6 94E6 : (CLS)
87E4 87E9 87EA 87EC 87EC CODE D2*
87D6 87DB 87DC 87DE 87DE CODE D2/
9964 996D 996E 87C6 9970 : RECURSE
91D0 91D2 91DC 87C6 91DE :
91C0 91C7 91C8 87C6 91CA :
91A4 91A6 91B0 87C6 91B2 : >RESOLVE
9190 9197 9198 87C6 919A : >MARK
8922 8924 892A 87AA 892C USER SPAN
8916 8918 891E 87AA 8920 USER #TIB
84F8 84FB 84FC 84FE 84FE CODE K
8674 867B 867C 867E 867E CODE TRAP1
98E6 98ED 98EE 87C6 98F0 : CLOSE
98CA 98CC 98D4 87C6 98D6 : DELETE
98B8 98BA 98C0 87C6 98C2 : OPEN
84CE 84D3 84D4 84D6 84D6 CODE SP!
893C 893E 8944 87AA 8946 USER #OUT
935C 9361 9362 87C6 9364 : SDV
878C 8793 8794 8796 8796 CODE TRAP2
97BC 97BE 97CC 87C6 97CE : SAVE-BUFFERS
97A2 97B1 97B2 87C6 97B4 : EMPTY-BUFFERS
9798 979D 979E 877C 97A0 CONSTANT L/B
978E 9793 9794 877C 9796 CONSTANT C/L
9782 9789 978A 877C 978C CONSTANT B/BUF
9764 976B 976C 87C6 976E : ENDOF
9750 9759 975A 87C6 975C : DEFAULT
9726 972F 9730 87C6 9732 : ENDCASE
970C 970E 9712 87C6 9714 : OF
96DC 96DE 96E4 87C6 96E6 : CASE
8682 8684 868C 868E 868E CODE VEC_UT
8932 8937 8938 87AA 893A USER #IN
967E 9687 9688 877C 968A CONSTANT TIMEOUT
8666 866D 866E 8670 8670 CODE TRAP3
8654 8656 865E 8660 8660 CODE TRAP3*
87F2 87F4 87FA 87FC 87FC CODE EXIT
8A9A 8A9C 8AA4 87C6 8AA6 : ?FOUND
9624 9626 962C 87C6 962E : COLD
95E8 95EA 95F6 87C6 95F8 : VOCABULARY
95D8 95DA 95E2 9542 95E4 EXVEC: PROMPT
95BC 95BE 95C2 87C6 95C4 : ok
95AE 95B5 95B6 9542 95B8 EXVEC: ERROR
9572 957B 957C 87C6 957E : (ERROR)
9564 956B 956C 9542 956E EXVEC: ABORT
9554 955D 955E 87C6 9560 : (ABORT)
9528 952A 9532 87C6 9534 : EXVEC:
94D0 94D5 94D6 9542 94D8 EXVEC: CLS
94A0 94AB 94AC 87C6 94AE : -TRAILING
9456 9458 945E 87C6 9460 : LIST
9426 9428 942E 87C6 9430 : LOAD
9412 9414 941C 87C6 941E : UPDATE
93CC 93D3 93D4 87C6 93D6 : BLOCK
9382 9384 938C 87C6 938E : BUFFER
90EE 90F0 90F4 87C6 90F6 : #S
90DC 90DF 90E0 87C6 90E2 : #
90C4 90C6 90CC 87C6 90CE : SIGN
90AE 90B0 90B4 87C6 90B6 : #>
909E 90A0 90A4 87C6 90A6 : <#
9050 9052 9058 87C6 905A : HOLD
8F6E 8F70 8F78 87C6 8F7A : FORGET
8F2C 8F2F 8F30 87C6 8F32 : '
8D82 8D84 8D8A 87C6 8D8C : EMIT
8F14 8F16 8F1A 87C6 8F1C : H.
8EE6 8EE8 8EF0 87C6 8EF2 : SMUDGE
8EA6 8EAB 8EAC 87C6 8EAE : ID.
8758 875F 8760 8762 8762 CODE DEPTH
8D3A 8D3C 8D42 87C6 8D44 : QUIT
8C68 8C71 8C72 87C6 8C74 : CONVERT
8BFC 8BFE 8C06 87C6 8C08 : NUMBER
8BDC 8BDE 8BE6 87C6 8BE8 : LATEST
8BAE 8BB7 8BB8 87C6 8BBA : COMPILE
8ADA 8ADC 8AE4 87C6 8AE6 : ?STACK
8AB2 8AB9 8ABA 87C6 8ABC : ?COMP
8A86 8A8D 8A8E 87C6 8A90 : ?EXEC
8A6C 8A6E 8A76 87C6 8A78 : ?ERROR
8A0A 8A11 8A12 87C6 8A14 : QUERY
89AE 89B0 89B8 87C6 89BA : EXPECT
8980 8982 8986 877C 8988 CONSTANT BL
8904 8909 890A 87AA 890C USER DPL
88FA 88FF 8900 87AA 8902 USER SCR
88D8 88DF 88E0 87AA 88E2 USER FENCE
88C0 88C2 88C8 87AA 88CA USER BASE
88B2 88BB 88BC 87AA 88BE USER CONTEXT
88A4 88AD 88AE 87AA 88B0 USER CURRENT
889A 889F 88A0 87AA 88A2 USER BLK
888E 8895 8896 87AA 8898 USER STATE
8880 8885 8886 87C6 8888 : TIB
8872 8877 8878 87AA 887A USER >IN
8556 8558 855E 87C6 8560 : SEEK
850A 850C 8514 8516 8516 CODE CMOVE>
843C 8445 8446 8448 8448 CODE EXECUTE
8430 8432 843A 841E 843C CODE (not at PFA) BRANCH
840C 8415 8416 8418 8418 CODE ?BRANCH
92F2 92F9 92FA 87C6 92FC : LEAVE