X4th documentation for : "D:\PrjD7\x4th\work\glossary\glossary.asm"

General info

compiler : Compile time2007-06-10 19:56:29
compiler : Home folderD:\PrjD7\x4th\work\
compiler : Source fileD:\PrjD7\x4th\work\glossary\glossary.4th
compiler : Source folderD:\PrjD7\x4th\work\glossary\
compiler : Target fileD:\PrjD7\x4th\work\glossary\glossary.asm
compiler : xVersion2007.6.8.1
source : Processor18f452
source : Titleglossary

word index

[ ' ]   [ - ]   [ '' ]   [ ! ]   [ -! ]   [ " ]   [ "cr ]   [ ##// ]   [ #// ]   [ #Define ]   [ #Defined ]   [ #doc ]   [ #document ]   [ #Else ]   [ #endDoc ]   [ #EndIf ]   [ #EOF ]   [ #If ]   [ #IfDef ]   [ #IfNdef ]   [ #Then ]   [ $[] ]   [ ( ]   [ (!) ]   [ (-!) ]   [ ((?do)) ]   [ ((+loop)) ]   [ ((do)) ]   [ ((fbranch)) ]   [ ((loop)) ]   [ ((no_except)) ]   [ ((of)) ]   [ ((raise)) ]   [ ((table)) ]   [ ((try)) ]   [ (-) ]   [ (*) ]   [ (/) ]   [ (/Mod) ]   [ (?do) ]   [ (?dup) ]   [ (@) ]   [ (+!) ]   [ (+) ]   [ (+rot) ]   [ (<) ]   [ (<<) ]   [ (<=) ]   [ (<>) ]   [ (=) ]   [ (>) ]   [ (>=) ]   [ (>>) ]   [ (>2field) ]   [ (>field) ]   [ (>R) ]   [ (2constant) ]   [ (2constdef) ]   [ (2drop) ]   [ (2dup) ]   [ (2field) ]   [ (2fielddef) ]   [ (2Over) ]   [ (2Swap) ]   [ (2vardef) ]   [ (2variable) ]   [ (3constant) ]   [ (3constdef) ]   [ (3vardef) ]   [ (3variable) ]   [ (4constant) ]   [ (4constdef) ]   [ (4vardef) ]   [ (4variable) ]   [ (abs) ]   [ (again) ]   [ (and) ]   [ (array) ]   [ (arraydef) ]   [ (begin) ]   [ (call) ]   [ (case) ]   [ (code) ]   [ (colon) ]   [ (constant) ]   [ (constdef) ]   [ (data-constdef) ]   [ (Default) ]   [ (dlit) ]   [ (do) ]   [ (Does>) ]   [ (drop) ]   [ (dup) ]   [ (else) ]   [ (endcase) ]   [ (endof) ]   [ (endtry) ]   [ (except) ]   [ (Exit) ]   [ (False) ]   [ (field) ]   [ (fielddef) ]   [ (finally) ]   [ (ForceRomBank) ]   [ (FreeLocalSpace) ]   [ (GetLocalSpace) ]   [ (goto) ]   [ (I) ]   [ (I') ]   [ (if) ]   [ (InitLocalSpace) ]   [ (J) ]   [ (J') ]   [ (jumpto) ]   [ (K) ]   [ (label) ]   [ (Leave) ]   [ (lit) ]   [ (loc2var) ]   [ (loc3var) ]   [ (loc4var) ]   [ (locvar) ]   [ (loop) ]   [ (lshift) ]   [ (Max) ]   [ (Min) ]   [ (negate) ]   [ (not) ]   [ (of) ]   [ (or) ]   [ (over) ]   [ (pick) ]   [ (put) ]   [ (qlit) ]   [ (R>) ]   [ (raise) ]   [ (repeat) ]   [ (rot) ]   [ (-rot) ]   [ (rshift) ]   [ (s>2field) ]   [ (s>field) ]   [ (semi) ]   [ (seminoreturn) ]   [ (Space) ]   [ (str-constant) ]   [ (str-constdef) ]   [ (struct) ]   [ (structdef) ]   [ (swap) ]   [ (table) ]   [ (TableElt) ]   [ (then) ]   [ (to) ]   [ (True) ]   [ (try) ]   [ (until) ]   [ (value) ]   [ (valuedef) ]   [ (valuestartup) ]   [ (vardef) ]   [ (variable) ]   [ (while) ]   [ (xor) ]   [ * ]   [ *_8_32 ]   [ , ]   [ . ]   [ .' ]   [ ." ]   [ .// ]   [ .\ ]   [ .b ]   [ .CompileTime ]   [ .d ]   [ .h ]   [ .info ]   [ .infoTime ]   [ .s ]   [ / ]   [ // ]   [ /16 ]   [ /32 ]   [ /mod ]   [ /mod16 ]   [ /mod32 ]   [ : ]   [ ; ]   [ ?branch ]   [ ?Do ]   [ ?dup ]   [ @ ]   [ @0! ]   [ @0= ]   [ @0> ]   [ @a+ ]   [ @a+! ]   [ @a+@ ]   [ @Compare! ]   [ @False! ]   [ @ff! ]   [ @spSave ]   [ @True! ]   [ [ ]   [ [.s] ]   [ [] ]   [ ['] ]   [ []Ram@ ]   [ []Rom@ ]   [ [Compile] ]   [ \ ]   [ ] ]   [ ^<<32 ]   [ ^>>32 ]   [ ^rl ]   [ ^rr ]   [ ^Shl ]   [ ^Shr ]   [ ^Xor ]   [ _?Do ]   [ _>R ]   [ _Again ]   [ _Begin ]   [ _Case ]   [ _default ]   [ _Do ]   [ _Else ]   [ _EndCase ]   [ _EndOf ]   [ _EndTry ]   [ _Except ]   [ _Exit ]   [ _Finally ]   [ _I ]   [ _If ]   [ _J ]   [ _K ]   [ _Leave ]   [ _Loop ]   [ _Of ]   [ _PLoop ]   [ _R> ]   [ _Raise ]   [ _Repeat ]   [ _Then ]   [ _Try ]   [ _Until ]   [ _While ]   [ { ]   [ } ]   [ + ]   [ +! ]   [ ++Ram! ]   [ ++Ram@ ]   [ ++Rom! ]   [ ++Rom@ ]   [ +Loop ]   [ +rot ]   [ < ]   [ << ]   [ <<32 ]   [ <= ]   [ <> ]   [ <Mark ]   [ <Resolve ]   [ = ]   [ =: ]   [ > ]   [ >" ]   [ >$ ]   [ >= ]   [ >> ]   [ >>32 ]   [ >c ]   [ >Mark ]   [ >R ]   [ >Resolve ]   [ '0'- ]   [ 0! ]   [ '0'+ ]   [ 0< ]   [ 0<> ]   [ 0= ]   [ 0> ]   [ 0d ]   [ 0q ]   [ 1- ]   [ 1-! ]   [ 1+ ]   [ 1+! ]   [ 1= ]   [ 10- ]   [ 10+ ]   [ 10000d ]   [ 1000d ]   [ 100d ]   [ 1024d ]   [ 10d ]   [ 128* ]   [ 128/ ]   [ 128d ]   [ 16* ]   [ 16/ ]   [ 16384d ]   [ 16d ]   [ 18f452 ]   [ 18xxx2 ]   [ 18xxx2.end ]   [ 1a- ]   [ 1a+ ]   [ 1d ]   [ -1d ]   [ 1d- ]   [ 1d+ ]   [ -1d= ]   [ -1q ]   [ 2- ]   [ 2* ]   [ 2/ ]   [ 2+ ]   [ 2048d ]   [ 20d ]   [ 256d ]   [ 2a- ]   [ 2a+ ]   [ 2Constant ]   [ 2d ]   [ 2drop ]   [ 2dup ]   [ 2Field ]   [ 2over ]   [ 2Pick ]   [ 2q@ ]   [ 2swap ]   [ 2Variable ]   [ 3- ]   [ 3* ]   [ 3+ ]   [ 30d ]   [ 32* ]   [ 32/ ]   [ 32768d ]   [ 32d ]   [ 3a- ]   [ 3a+ ]   [ 3Constant ]   [ 3Drop ]   [ 3Pick ]   [ 3Variable ]   [ 4- ]   [ 4* ]   [ 4/ ]   [ 4+ ]   [ 4096d ]   [ 40d ]   [ 4a- ]   [ 4a+ ]   [ 4Constant ]   [ 4d ]   [ 4Drop ]   [ 4Dup ]   [ 4over ]   [ 4Pick ]   [ 4pickAnd>r ]   [ 4pickOr>r ]   [ 4pickXor>r ]   [ 4rot ]   [ 4swap ]   [ 4Variable ]   [ 5- ]   [ 5+ ]   [ 50d ]   [ 512d ]   [ 6- ]   [ 6+ ]   [ 64* ]   [ 64/ ]   [ 64d ]   [ 65535d ]   [ 7- ]   [ 7+ ]   [ 8- ]   [ 8* ]   [ 8/ ]   [ 8+ ]   [ 8192d ]   [ 8d ]   [ 9- ]   [ 9+ ]   [ a- ]   [ a+ ]   [ a+! ]   [ a+@ ]   [ abs ]   [ AddCallDepth ]   [ AddDoc ]   [ AddDoc' ]   [ AddToSearchPath ]   [ AddToSearchPathQuote ]   [ AdminStart ]   [ aDrop ]   [ aDup ]   [ adup@ ]   [ Again ]   [ Alias ]   [ Allot ]   [ Also ]   [ and ]   [ And! ]   [ aOver ]   [ Array ]   [ AsmConfig ]   [ aSwap ]   [ Base! ]   [ Base@ ]   [ Begin ]   [ Binary ]   [ bl ]   [ branch ]   [ BreakPoint ]   [ BSRTmp ]   [ Build ]   [ c> ]   [ Case ]   [ Catch ]   [ ClearBreak ]   [ ClearSearchPath ]   [ ClrWDT ]   [ Code ]   [ CodeLibrary ]   [ CodeLibrary' ]   [ CodeSize! ]   [ CommentSymbol' ]   [ Compile ]   [ Compiler ]   [ CompileTime ]   [ Config ]   [ Constant ]   [ cr ]   [ Create ]   [ d- ]   [ d! ]   [ d* ]   [ d@ ]   [ d+ ]   [ d< ]   [ d<= ]   [ d= ]   [ d> ]   [ d>= ]   [ d>q ]   [ d>r ]   [ d0 ]   [ d0< ]   [ d0= ]   [ d0> ]   [ dabs ]   [ Data ]   [ Decimal ]   [ Default ]   [ Defer ]   [ Definitions ]   [ Deprecated ]   [ Disable ]   [ Divisor ]   [ DLiteral ]   [ dNegative? ]   [ Do ]   [ Does> ]   [ done' ]   [ dr> ]   [ drop ]   [ DropFalse ]   [ DropTrue ]   [ DropVocabulary ]   [ dSwap ]   [ dup ]   [ Dup! ]   [ Else ]   [ Enable ]   [ EndCase ]   [ EndCode ]   [ EndEnum ]   [ EndGroup ]   [ EndIf ]   [ EndMacro ]   [ EndModule ]   [ EndOf ]   [ EndStruct ]   [ EndTry ]   [ Enum ]   [ Evaluate ]   [ Except ]   [ Execute ]   [ Exit ]   [ Export ]   [ ExtendStruct ]   [ False ]   [ False! ]   [ FalseFalse ]   [ FalseTrue ]   [ FbDecimation ]   [ ff! ]   [ ffffd ]   [ Field ]   [ FillUpWithRandom ]   [ Finalization ]   [ Finally ]   [ FlashPageSize ]   [ ForceRomBank ]   [ Forth ]   [ FSRTmpH ]   [ FSRTmpL ]   [ GenerateCode ]   [ GenerateDebug ]   [ Group ]   [ Here ]   [ Hex ]   [ HexFormat ]   [ Hide ]   [ I ]   [ IdLoc ]   [ If ]   [ Immediate ]   [ Implements ]   [ Include ]   [ Include' ]   [ InitEnum ]   [ Initialization ]   [ InitReg ]   [ Is ]   [ J ]   [ K ]   [ LabelPrefix' ]   [ lastDefined ]   [ Leave ]   [ LibraryPath' ]   [ List ]   [ Literal ]   [ Loc2Var ]   [ Loc3Var ]   [ Loc4Var ]   [ LocalBank ]   [ LocVar ]   [ Loop ]   [ lshift ]   [ Macro ]   [ main ]   [ MakeDocs ]   [ MakeDocs' ]   [ Mangle ]   [ ManglePrefix' ]   [ MarkAllUsed ]   [ Max ]   [ message ]   [ Message' ]   [ Meta ]   [ MetaOff ]   [ MetaOn ]   [ Min ]   [ Module ]   [ Negate ]   [ Negative? ]   [ NewLabel ]   [ Nop ]   [ noreturn; ]   [ Not ]   [ Now ]   [ Of ]   [ Only ]   [ or ]   [ Or! ]   [ OutputFile' ]   [ OutputPath ]   [ OutputPath' ]   [ Over ]   [ Page ]   [ PCHTmp ]   [ pick ]   [ Popq1 ]   [ Popq2 ]   [ Popq3 ]   [ Postpone ]   [ Private ]   [ Public ]   [ Pushq1 ]   [ Pushq2 ]   [ Pushq3 ]   [ put ]   [ q- ]   [ q! ]   [ q-$80And>r3Dropr> ]   [ q* ]   [ q@ ]   [ q+ ]   [ q< ]   [ q<= ]   [ q= ]   [ q> ]   [ q>= ]   [ q>r ]   [ q0<> ]   [ q0= ]   [ qAnd ]   [ QLiteral ]   [ qnegate ]   [ qNegative? ]   [ qNot ]   [ qNotAnd ]   [ qNotAnd0<> ]   [ qOr ]   [ qr> ]   [ Quotient ]   [ qXor ]   [ R> ]   [ Raise ]   [ Ram! ]   [ Ram!-- ]   [ Ram!++ ]   [ Ram@ ]   [ Ram@-- ]   [ Ram@++ ]   [ RamBank ]   [ RamPtr ]   [ RamPtr-- ]   [ RamPtr! ]   [ RamPtr@ ]   [ RamPtr++ ]   [ RawData ]   [ Remainder ]   [ Repeat ]   [ RequestNoRamBank ]   [ RequestRamBank ]   [ Reset ]   [ Resources ]   [ Reveal ]   [ revq- ]   [ Rom! ]   [ Rom!-- ]   [ Rom!++ ]   [ Rom@ ]   [ Rom@-- ]   [ Rom@++ ]   [ RomBank ]   [ RomPtr! ]   [ RomPtr@ ]   [ RomPtr++ ]   [ rot ]   [ -rot ]   [ rshift ]   [ RunError ]   [ RunError' ]   [ s>d ]   [ sd< ]   [ sd<= ]   [ sd> ]   [ sd>= ]   [ SearchPath ]   [ SetBreak ]   [ SetMeta ]   [ SetUnMeta ]   [ SetUnUsed ]   [ SetUsed ]   [ ShowAllocations ]   [ ShowCallCounts ]   [ ShowCallTree ]   [ ShowStatistics ]   [ ShowVocs ]   [ Sleep ]   [ sp! ]   [ sp-! ]   [ sp? ]   [ sp@ ]   [ sp+! ]   [ sp0 ]   [ sp0? ]   [ Space ]   [ spSave ]   [ spSave! ]   [ spSave@ ]   [ StatusTmp ]   [ String ]   [ Struct ]   [ swap ]   [ SwapDrop ]   [ system.Execute ]   [ system.reset ]   [ system.ShowResults ]   [ SystemDump' ]   [ t! ]   [ t@ ]   [ Then ]   [ Throw ]   [ Title ]   [ TLiteral ]   [ To ]   [ todo' ]   [ token ]   [ True ]   [ True! ]   [ TrueFalse ]   [ TrueTrue ]   [ Try ]   [ Type ]   [ u>ud ]   [ ud>uq ]   [ UnBug ]   [ unix>str ]   [ Until ]   [ untoken ]   [ Used ]   [ Uses ]   [ Value ]   [ ValueBegin ]   [ ValueEnd ]   [ Variable ]   [ Vocabulary ]   [ warning ]   [ Warning' ]   [ While ]   [ xor ]   [ Xor! ]   [ Xor32 ]   [ XVersion" ]  

vocabularies

Compiler
Forth
Only

words

' Pascal visible C27 Forth
( -- ExecutionToken ) [ 0, 1] ""
Uses
Used in
Documentation
Search next word in input stream and return it's execution token. Also see [']
Value
- Pascal immediate visible C2D Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
subtraction of n2 from n1
Value
'' Pascal immediate visible C2727 Forth
( -- <string-token> ) [ 0, 1] ""
Uses
Used in
Documentation
'' a string' String or Data or RawData ...
Value
! Pascal immediate visible C21 Forth
( n1 n2 -- ) [ 0, 1] ""
Uses
Used in
Documentation
Store value n1 at address n2
Value
-! Pascal immediate visible C2D21 Forth
( n1 n2 -- ) [ 0, 1] ""
Uses
Used in
Documentation
Decrement value at address n1 with n2
Value
" Pascal immediate visible C22 Forth
( -- <string-token> ) [ 0, 1] ""
Uses
Used in
Documentation
" a string" String or Data or RawData ...
Value
"cr Pascal visible C22cr Forth
( -- <string-token> ) [ 0, 1] ""
Uses
Used in
Documentation
Push crlf, also see cr
Value
##// Pascal visible C23232F2F Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Add documentation to next token in input buffer, ended at end of current line, also see #// and ##//
Value
#// Pascal immediate visible C232F2F Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Add documentation to lastDefined, ended at end of current line, also see #doc and #document
Value
#Define Pascal immediate visible C23Define Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a symbol that does nothing.
Value
#Defined Pascal immediate visible C23Defined Forth
( -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Check if a word is defined, result goes to data stack
Value
#doc Pascal immediate visible C23doc Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Add documentation to lastDefined, ended with #endDoc, also see #// and ##//
Value
#document Pascal visible C23document Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Add documentation to next token in input buffer, ended with #endDoc
Value
#Else Pascal immediate visible C23Else Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Conditional compilation : n1 #If .. #Else .. #Then or #EndIf
Value
#endDoc Pascal visible C23endDoc Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Endes a #doc or #document section
Value
#EndIf Pascal immediate visible C23EndIf Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Conditional compilation : n1 #If .. #Else .. #Then or #endIf
Value
#EOF Pascal visible C23EOF Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
To stop on end of file, can be used to break out of a source file
Value
#If Pascal immediate visible C23If Forth
( f -- ) [ 0, 1] ""
Uses
Used in
Documentation
Conditional compilation : n1 #If .. #Else .. #Then or #EndIf
Value
#IfDef Pascal immediate visible C23IfDef Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Combination : #Defined SomeWord #If
Value
#IfNdef Pascal immediate visible C23IfNdef Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
same as #IfDef but inverted condition
Value
#Then Pascal immediate visible C23Then Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Conditional compilation : n1 #If .. #Else .. #Then or #EndIf
Value
$[] Pascal immediate visible C245B5D Forth
( <string-token> n -- c ) [ 0, 1] ""
Uses
Used in
Documentation
Index into a string " a string" 3 $[]
Value
( Pascal immediate visible C28 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Comment till ) :: does :: ')' Token
Value
(!) Primitive visible C282129 Compiler 18xxx2
( b wRamAddress -- ) [ 3219, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@Compare! ]   [ a+! ]   [ Ram! ]   [ t! ]  
Documentation
[Store]
Value
    PopReg  fsr2h                   ; // Get bank
    PopReg  fsr2l                   ; // Get addrress
    PopReg  indf2                   ; // Get and store data
    return
(-!) Primitive visible C282D2129 Compiler 18xxx2
( b wRamAddress -- ) [ 3240, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    subwf   indf2
    Drop
    return
((?do)) Primitive visible C28283Fdo2929 Compiler 18xxx2
( bLimit bStart -- ) [ 2435, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
((do)) ]  
Used in
(?do) ]  
Documentation
Value
    PopReg  tmp1                    ; // bStart into tmp1
    cpfseq  indf1                   ; // S/ Start = Limit
    bra     dodo                    ; // B/ start <> Limit, perform ((do))

    Drop                            ; // start = limit : drop bLimit
    bsf     status, z               ; // Return with zero flag set (loop skipped)
    return                          ; // B/ ----> done
((+loop)) Primitive visible C28282Bloop2929 Compiler 18xxx2
( b -- ) [ 2405, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
((loop)) ]  
Used in
Documentation
Value
    addwf   indf1                   ; // Index + inc -> Index
    movf    postinc1, w             ; // Get index LSP++
    subwf   indf1, W                ; // Limit - Index
    bc      LoopMore                ; // B/ Carry   , Not done, see ((loop))

    bra     LoopNoMore              ; // B/ No carry, done    , see ((loop))
((do)) Primitive visible C2828do2929 Compiler 18xxx2
( bLimit bStart -- ) [ 2420, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
((?do)) ]   [ (do) ]  
Documentation
Value
    PopReg    tmp1                  ; // Start into tmp1

dodo                                ; // entry point for ((?do)) if loop taken

    PopReg    tmp2                  ; // Limit into tmp2
    LsPushReg tmp2                  ; // Limit on loop stack
    LsPushReg tmp1                  ; // Start on loop stack (as Index)
    bcf       status, z             ; // Return with zero flag cleared
    return                          ; // B/ ----> done (loop taken)
((fbranch)) Primitive visible C2828fbranch2929 Compiler 18xxx2
( f -- ) [ 2211, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1                    ; // Pop Flag  into tmp1
    movf    tmp1, f                 ; // To set or clear Z flag
    return
((loop)) Primitive visible C2828loop2929 Compiler 18xxx2
( -- ) [ 2379, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
((+loop)) ]  
Documentation
Value
    PushNothing                     ; // Save wreg

    incf    indf1                   ; // Advance index
    movf    postinc1, w             ; // get index into wreg
    xorwf   indf1, w                ; // Compare with limit
    bnz     LoopMore                ; // B/ Index <> Limit

LoopNoMore                          ; // Also used by (+loop)

    incf    fsr1l, f                ; // Index == Limit
    Drop                            ; // Restore wreg
    bcf     status, Z               ; // signal index = limit
    return

LoopMore                            ; // Also used by (+loop)

    decf    fsr1l, f                ; // restore Loop stack pointer
    Drop                            ; // Restore wreg
    bsf     status, Z               ; // signal index <> limit
    return
((no_except)) Primitive visible C2828no_except2929 Compiler 18xxx2
( -- ) [ 2612, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(except) ]   [ (finally) ]  
Documentation
Helper for (except) and (finally)
Value
    ; // Discard one (except) frame

    ; //  Exception frame as on loop stack
    ; //
    ; //   +--> | prev_frame        |
    ; //   |    +-------------------+
    ; //   |    |                   |
    ; //   |    ~                   ~
    ; //   |    |                   |
    ; //   |    +-------------------+
    ; //   |    | addr_except low   | -+-- ROM address of ((except)) to invoke
    ; //   |    | addr_except high  | -+
    ; //   |    | addr_except upper | -+
    ; //   |    | old_stkptr        | ---- Old return stack pointer
    ; //   |    | old_wreg          | ---- Value that was on top of old stack
    ; //   |    | old_data_sp low   | -+-- old data stack imcluding wreg
    ; //   |    | old_data_sp high  | -+
    ; //   +-<- | old_EFP     low   |      +-----+
    ; //   +-<- | old_EFP     high  | <--- + EFP |
    ; //        +-------------------+      +-----+
    ; //        |                   |
    ; //        ~                   ~      +-----+
    ; //        |                   | <--- + fsr1|
    ; //                                   +-----+

    RemoveExceptionFrame            ; // Unwind one exception level
    LsFree  7                       ; // Drop old_data_sp, old_wreg and addr_except

    ; //  Exception frame as on loop stack
    ; //                                   +-----+------+
    ; //        | prev_frame        | <--- | EFP | fsr1 |
    ; //        +-------------------+      +-----+------+
    ; //        |                   |
    ; //        ~                   ~
    ; //        |                   |
    ; //        +-------------------+
    ; //        | addr_except low   |
    ; //        ~                   ~

    return                          ; // B/ ----> done
((of)) Primitive visible C2828of2929 Compiler 18xxx2
( b1 b2 -- b1 | ) [ 2301, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1                    ; // Get & drop n2 into tmp1
    cpfseq  tmp1                    ; // S// n1 == n2
    bra     of_uneq                 ; // B/ n1 <> n2

    ; // n1 == n2

    Drop                            ; // Drop n1
    bcf     Status, Z               ; // Flag match
    return

of_uneq

    bsf     Status, Z               ; // Flag no match
    return
((raise)) Primitive visible C2828raise2929 Compiler 18xxx2
( bException -- bException ) [ 2543, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(raise) ]  
Documentation
Helper for (raise)
Value
    ; // Should check for original data stack corruption here
    ; // that is, when we have a relative stack underflow
    ; // that's definitly no good.
    ; //
    ; // Use the current (except) frame to determine
    ; // a jump to the nearest (except) handler.

    ; //  Exception frame as on loop stack
    ; //
    ; //   +--> | prev_frame        |
    ; //   |    +-------------------+
    ; //   |    |                   |
    ; //   |    ~                   ~
    ; //   |    |                   |
    ; //   |    +-------------------+
    ; //   |    | addr_except low   | -+-- ROM address of ((except)) to invoke
    ; //   |    | addr_except high  | -+
    ; //   |    | addr_except upper | -+
    ; //   |    | old_stkptr        | ---- Old return stack pointer
    ; //   |    | old_wreg          | ---- Value that was on top of old stack
    ; //   |    | old_data_sp low   | -+-- old data stack imcluding wreg
    ; //   |    | old_data_sp high  | -+
    ; //   +-<- | old_EFP     low   |      +-----+
    ; //   +-<- | old_EFP     high  | <--- + EFP |
    ; //        +-------------------+      +-----+
    ; //        |                   |
    ; //        ~                   ~      +-----+
    ; //        |                   | <--- + fsr1|
    ; //                                   +-----+

    SetBsrDefault                   ; // For 4th execution BSR should have its default value
    movwf   tmp1                    ; // Keep bException in tmp1

    RemoveExceptionFrame            ; // Unwind one exception level

    LsPopReg  fsr0h                 ; // restore data stack pointer
    LsPopReg  fsr0l
    LsPopReg  wreg                  ; // restore wreg

    disable                         ; // Interrupts off
    LsPopReg  stkptr                ; // Pop old stkptr (call stack pointer) back
    LsPopReg  wreg                  ; // Pop (except) handler from loop stack
    movwf     tosu
    LsPopReg  wreg
    movwf     tosh
    LsPopReg  wreg
    movwf     tosl
    enable                          ; // Interrupts back on

    PushReg tmp1                    ; // Repush bException on restored data stack

    ; //  Exception frame as on loop stack
    ; //                                   +-----+------+
    ; //        | prev_frame        | <--- | EFP | fsr1 |
    ; //        +-------------------+      +-----+------+
    ; //        |                   |
    ; //        ~                   ~
    ; //        |                   |
    ; //        +-------------------+
    ; //        | addr_except low   |
    ; //        ~                   ~

    return                          ; // B/ ----> Returns to (except) or (finally) handler
((table)) Macro immediate visible deprecated C2828table2929 Compiler 18xxx2
( -- ) [ 2360, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // ((table)) $Bank$:$Arg$
    movwf   tmp1
    movlw   ($Arg$ >> 0) & 0xff
    addwf   tmp1, w
    movlw   ($Arg$ >> 8) & 0xff
    btfsc   status, C
    addlw   D'1'
    movwf   pclath
    movf    tmp1, w

    call    $Arg$
((try)) Primitive visible C2828try2929 Compiler 18xxx2
( tRomAddr_REVERSED -- ) [ 2491, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(try) ]  
Documentation
Helper for (try)
Value
    ; // create (except) frame on return stack
    ; // ( tRomAddress -- ) [ -- (except) ]

                                    ; // >r   addr_except_low
    PopReg    tmp1
    LsPushReg tmp1
                                    ; // >r   addr_except_high
    PopReg    tmp1
    LsPushReg tmp1
                                    ; // >r   addr_except_upper
    PopReg    tmp1
    LsPushReg tmp1
                                    ; // >r   stkptr
    LsPushReg stkptr
                                    ; // >r   wreg
    LsPushReg wreg
                                    ; // >r   data stack pointer
    LsPushReg fsr0l
    LsPushReg fsr0h

    AddExceptionFrame               ; // Link in a new exception frame

    ; //  Exception frame as on loop stack.
    ; //  The loop stack grows downwards and uses fsr1.
    ; //  On pussh first fsr1 is decremented then the new
    ; //    value is stored into the stack.
    ; //
    ; //   +--> | prev_exc_frame    | ---- a possible previous frame (old_EFP
    ; //   |    +-------------------+      is zero for outermost frame).
    ; //   |    |                   | -+-- possible loop stack data from do..loop or >r
    ; //   |    ~                   ~ -+
    ; //   |    |                   | -+
    ; //   |    +-------------------+
    ; //   |    | addr_except low   | -+-- ROM address of ((except)) to invoke
    ; //   |    | addr_except high  | -+
    ; //   |    | addr_except upper | -+
    ; //   |    | old_stkptr        | ---- Old return stack pointer
    ; //   |    | old_wreg          | ---- Value that was on top of old stack
    ; //   |    | old_data_sp low   | -+-- old data stack imcluding wreg
    ; //   |    | old_data_sp high  | -+
    ; //   +-<- | old_EFP     low   |      +---------+------+
    ; //   +-<- | old_EFP     high  | <--- | new EFP | fsr1 |
    ; //        +-------------------+      +---------+------+

    return                          ; // B/ ----> done
(-) Macro immediate visible C282D29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 2750, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    subwf   postdec0, w             ; // (-) ( u1 u2 -- u3 )
(*) Primitive visible C282A29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 2757, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1
    mulwf   tmp1
    movf    prodl, w

    return
(/) Primitive visible C282F29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 2769, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // also calculates remainder,
                                    ; // but we don't care about that!
    clrf    tmp1                    ; // remainder
    movwf   tmp3                    ; // u2
    movlw   D'8'                    ; // loop counter
    movwf   tmp2                    ; // to index

slash_0

    rlcf    indf0, w                ; // rotate u1
    rlcf    tmp1, f                 ; // into remainder
    movf    tmp3, w                 ; // get u2
    subwf   tmp1, f                 ; // Try to subtract
    bc      slash_1                 ; // B/ subtract did work, carry is set

    addwf   tmp1, f                 ; // subtract did not work, so add it again
    bcf     status, C               ; // and clear carry

slash_1

    rlcf    indf0, f                ; // result in indf0
    decfsz  tmp2 , f
    bra     slash_0

    movf    postdec0, w             ; // get result to TOS
    return
(/Mod) Primitive visible C282FMod29 Compiler 18xxx2
( bDividend bDivisor -- bQuotient bRemainder ) [ 2801, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Divisor ]   [ Quotient ]   [ Remainder ]  
Used in
Documentation
Value
    ; // ///////////////////////////////////////////////////////////////////////
    ; //  Function      : /Mod ( bDividend  bDivisor -- Quotient Remainder )
    ; //  Input         : bDividend : 8 bits unsigned - high byte on top
    ; //                : bDivisor  : 8 bits unsigned - high byte on top
    ; //  Output        : Quotient  : 8 bits unsigned - high byte on top
    ; //                : Remainder : 8 bits unsigned - high byte on top
    ; //  Description   : 8 / 8 -> 8 bits unsigned divide with remainder
    ; //  Remarks       : Quotient  := bDividend Div bDivisor
    ; //                : Remainder := bDividend Mod bDivisor
    ; // ///////////////////////////////////////////////////////////////////////
    ; //
    ; //  From Zilog Z8 Family Design Handbook, june 1988
    ; //
    ; //  A programmers guide to the Z8 microcomputer,
    ; //  Z8 subroutine library, Application note
    ; //  page 211.
    ; //
    ; //  Adapted from 16 / 16 -> 16 + 16 algorithm above
    ; //
    ; //  This is a 8 / 8 -> 8 + 8 udiv routine
    ; //
    ; // ///////////////////////////////////////////////////////////////////////

    ; // Pop arguments from stack to helper variables

    PopReg  <@" Divisor">           ; // pop bDivisor into divisor ( bDividend )
    movwf   <@" Quotient">          ; // bDividend into Quotient

    clrf    <@" Remainder">

    movlw   8                       ; // ld   d32_LEN, #8      !LOOP COUNTER!
    movwf   tmp2
    bcf     Status, C               ; // rcf                   !carry = 0!

    ; // Then go for it


dlp_8

    rlcf    <@" Quotient">, f       ; // rlc  qout
    rlcf    <@" Remainder">, f      ; // rlc  rem
    bc      subt_8                  ; // B/ C not clear

    movf    <@" Divisor">, w        ; // See if we can subtract
    subwf   <@" Remainder">, w
    bnc     skp_8                   ; // B/ carry not set, skip subtraction

subt_8

    movf    <@" Divisor">, w        ; // sub  rem, dvsr
    subwf   <@" Remainder">, f
    bsf     Status, C               ; // scf

skp_8

    decfsz  tmp2, f                 ; // djnz d16_LEN, dlp_16
    bra     dlp_8                   ; //                       !no flags affected!

    rlcf    <@" Quotient">, f       ; // rlc  quot

    ; // Now copy results to stack

    movf    <@" Quotient">, w       ; // ( bQuotient )
    PushReg <@" Remainder">         ; // ( bQuotient bRemainder )

    return
(?do) Macro immediate visible C283Fdo29 Compiler 18xxx2
( bLimit bStart -- ) [ 2460, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
((?do)) ]  
Used in
Documentation
Value
                                    ; // (?do) : check if limit is count, if so skip loop
    call    <@" ((?do))">
    fBranch $SkipLabel$
$LoopLabel$
(?dup) Primitive visible C283Fdup29 Compiler 18xxx2
( b -- b b | b -- 0 ) [ 3010, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    iorlw   D'0'
    btfsc   status, Z
    return

    Dup
    return
(@) Primitive visible C284029 Compiler 18xxx2
( wRamAddress -- b ) [ 3209, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@0! ]   [ @0= ]   [ @0> ]   [ @a+ ]   [ @a+! ]   [ @a+@ ]   [ @ff! ]   [ a+@ ]   [ adup@ ]   [ Ram@ ]   [ t@ ]  
Documentation
[Fetch]
Value
    PopReg  fsr2h                   ; // Get bank
    PopReg  fsr2l                   ; // Get address
    PushReg indf2                   ; // dereference
    return
(+!) Primitive visible C282B2129 Compiler 18xxx2
( b wRamAddress -- ) [ 3229, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    addwf   indf2
    Drop
    return
(+) Macro immediate visible C282B29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 2743, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addwf   postdec0, w             ; // (+) ( u1 u2 -- u3 )
(+rot) Alias visible C282Brot29 Compiler 18xxx2
( b1 b2 b3 -- b2 b3 b1 ) [ 3130, 11] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(rot) ]  
Used in
t! ]  
Documentation
Value
(rot)
(<) Primitive visible C283C29 Compiler 18xxx2
( u1 u2 -- f ) [ 2977, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(>) ]   [ (>=) ]  
Documentation
Value
    subwf   postdec0, f
    movlw   True                    ; // assume true
    btfss   status, Z               ; // if set then always false
    btfsc   status, C               ; // if not then also analyze carry
    clrf    wreg                    ; // false flag
    return
(<<) Primitive visible C283C3C29 Compiler 18xxx2
( b1 b2 -- b3 ) [ 3063, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value