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
    PopReg  tmp1                    ; // Shift  b1 left over b2 positions

shllp

    bcf     Status, C
    rlcf    wreg, f
    decfsz  tmp1
    bra     shllp

    return
(<=) Colon visible C283C3D29 Compiler 18xxx2
( u1 u2 -- f ) [ 2996, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(>) ]   [ (not) ]   [ (semi) ]  
Used in
Documentation
Value
00003 | (>)                                          | ( u1 u2 -- f ) [0]
00004 | (not)                                        | ( b -- b ) ( )
00005 | (semi)                                       | ( -- ) ( )
(<>) Primitive visible C283C3E29 Compiler 18xxx2
( b1 b2 -- f ) [ 2967, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    subwf   postdec0, f
    btfsc   status, Z
    retlw   False
    retlw   True
(=) Primitive visible C283D29 Compiler 18xxx2
( b1 b2 -- f ) [ 2957, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    subwf   postdec0, f
    btfsc   status, Z
    retlw   True
    retlw   False
(>) Colon visible C283E29 Compiler 18xxx2
( u1 u2 -- f ) [ 2989, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(<) ]   [ (semi) ]   [ (swap) ]  
Used in
(<=) ]   [ 0> ]  
Documentation
Value
00000 | (swap)                                       | ( b1 b2 -- b2 b1 )
00001 | (<)                                          | ( u1 u2 -- f )
00002 | (semi)                                       | ( -- ) ( )
(>=) Colon visible C283E3D29 Compiler 18xxx2
( u1 u2 -- f ) [ 3003, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(<) ]   [ (not) ]   [ (semi) ]  
Used in
Documentation
Value
00006 | (<)                                          | ( u1 u2 -- f )
00007 | (not)                                        | ( b -- b ) ( )
00008 | (semi)                                       | ( -- ) ( )
(>>) Primitive visible C283E3E29 Compiler 18xxx2
( b1 b2 -- b3 ) [ 3080, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1                    ; // Shift  b1 right over b2 positions

shrlp

    bcf     Status, C
    rrcf    wreg, f
    decfsz  tmp1
    bra     shrlp

    return
(>2field) Macro immediate visible C283E2field29 Compiler 18xxx2
( w -- w ) [ 2027, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
d+ ]  
Used in
Documentation
Structure field offset calculation
Value
                                ; // >2Field $Name$ ( $Sign$$Value$)
                                ; // ( dBase -- dBase+dOffset )
    PushLit ( <@" $Name$"> >> 0 ) & D'255'
    PushLit ( <@" $Name$"> >> 8 ) & D'255'
    call    <@" d+">
(>field) Macro immediate visible C283Efield29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 1990, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Structure field offset calculation
Value
                                ; // >Field $Name$ ( $Sign$$Value$)
                                ; // ( bBase -- bBase+bOffset )
    PushLit <@" $Name$">
    addwf   postdec0, w         ; // (+) ( u1 u2 -- u3 )
(>R) Primitive visible C283ER29 Compiler 18xxx2
( b -- ) [ 3318, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@Compare! ]   [ 4pickAnd>r ]   [ 4pickOr>r ]   [ 4pickXor>r ]   [ d>r ]   [ q-$80And>r3Dropr> ]   [ sp-! ]  
Documentation
[ -- b ]
Value
    PopReg    tmp1
    LsPushReg tmp1
    return
(2constant) Macro immediate visible C282constant29 Compiler 18xxx2
( -- w ) [ 1851, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 2constant $Name$ ( $Sign$$Value$)
    PushLit ($Sign$D'$Value$' >> 0) & D'255'
    PushLit ($Sign$D'$Value$' >> 8) & D'255'
(2constdef) Macro immediate visible C282constdef29 Compiler 18xxx2
( -- ) [ 1844, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$ equ $Sign$D'$Value$'      ; // 2constant $Name$
(2drop) Macro immediate visible C282drop29 Compiler 18xxx2
( w -- ) [ 3022, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
/16 ]   [ 3Drop ]   [ 4Drop ]   [ aDrop ]  
Documentation
Value
    Drop                            ; // (2drop) ( w -- )
    Drop
(2dup) Colon visible C282dup29 Compiler 18xxx2
( w -- w w ) [ 3039, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(over) ]   [ (semi) ]  
Used in
aDup ]  
Documentation
Value
00009 | (over)                                       | ( b1 b2 -- b1 b2 b1 )
00010 | (over)                                       | ( b1 b2 -- b1 b2 b1 )
00011 | (semi)                                       | ( -- ) ( )
(2field) Macro immediate visible C282field29 Compiler 18xxx2
( -- w ) [ 2018, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Double field evocation
Value
                                ; // 2Field $Name$ ( $Sign$$Value$)
    PushLit ( <@" $Name$"> >> 0) & D'255'
    PushLit ( <@" $Name$"> >> 8) & D'255'
(2fielddef) Macro immediate visible C282fielddef29 Compiler 18xxx2
( -- ) [ 2011, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Double field definition
Value
<@" $Name$"> equ $Sign$D'$Value$' ; // 2Field $Name$
(2Over) Primitive visible C282Over29 Compiler 18xxx2
( w1 w2 -- w1 w2 w1 ) [ 3097, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
4Dup ]   [ aOver ]  
Documentation
Value
    PopReg  tmp4
    PopReg  tmp3
    PopReg  tmp2
    movwf   tmp1

    PushReg tmp2
    PushReg tmp3
    PushReg tmp4
    PushReg tmp1
    PushReg tmp2

    return
(2Swap) Alias visible C282Swap29 Forth 18xxx2
( w1 w2 -- w2 w1 ) [ 3607, 15] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
dSwap ]  
Used in
Documentation
Value
dSwap
(2vardef) Macro immediate visible C282vardef29 Compiler 18xxx2
( -- ) [ 1911, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$ equ 256 * D'$Bank$' + D'$Value$' ; // 2variable $Name$ :: Bank = $Bank$
(2variable) Macro immediate visible C282variable29 Compiler 18xxx2
( -- wRamAddr ) [ 1918, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 2variable $Name$ ( $Bank$:$Value$) ; $Mangled$
    PushLit D'$Value$'
    PushLit D'$Bank$'
(3constant) Macro immediate visible C283constant29 Compiler 18xxx2
( -- t ) [ 1867, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Tripple constant evocation
Value
                                ; // 3constant $Name$ ( $Sign$$Value$)
    PushLit ( <@" $Name$"> >>  0) & D'255'
    PushLit ( <@" $Name$"> >>  8) & D'255'
    PushLit ( <@" $Name$"> >> 16) & D'255'
(3constdef) Macro immediate visible C283constdef29 Compiler 18xxx2
( -- ) [ 1860, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
tripple constant definition
Value
<@" $Name$"> equ $Sign$D'$Value$' ; // 3constant $Name$
(3vardef) Macro immediate visible C283vardef29 Compiler 18xxx2
( -- ) [ 1927, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
tripple variable definition
Value
<@" $Name$"> equ 256 * D'$Bank$' + D'$Value$' ; // 3variable $Name$ :: Bank = $Bank$
(3variable) Macro immediate visible C283variable29 Compiler 18xxx2
( -- wRamAddr ) [ 1934, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Tripple variable evocation
Value
                                ; // 3variable $Name$ ( $Bank$:$Value$) ; <@" $Name$">
    PushLit D'$Value$'
    PushLit D'$Bank$'
(4constant) Macro immediate visible C284constant29 Compiler 18xxx2
( -- q ) [ 1884, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 4constant $Name$ ( $Sign$$Value$)
    PushLit ($Sign$D'$Value$' >> 0 ) & D'255'
    PushLit ($Sign$D'$Value$' >> 8 ) & D'255'
    PushLit ($Sign$D'$Value$' >> 16) & D'255'
    PushLit ($Sign$D'$Value$' >> 24) & D'255'
(4constdef) Macro immediate visible C284constdef29 Compiler 18xxx2
( -- ) [ 1877, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$ equ $Sign$D'$Value$'      ; // 4constant $Name$
(4vardef) Macro immediate visible C284vardef29 Compiler 18xxx2
( -- ) [ 1943, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$ equ 256 * D'$Bank$' + D'$Value$' ; // 4variable $Name$ :: Bank = $Bank$
(4variable) Macro immediate visible C284variable29 Compiler 18xxx2
( -- wRamAddr ) [ 1950, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 4variable $Name$ ( $Bank$:$Value$) ; $Mangled$
    PushLit D'$Value$'
    PushLit D'$Bank$'
(abs) Primitive visible C28abs29 Compiler 18xxx2
( b -- u ) [ 3180, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    btfsc   wreg, 7
    sublw   D'0'
    return
(again) Macro immediate visible C28again29 Compiler 18xxx2
( -- ) [ 2236, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (again) - unconditional branch
    bra     $Label$
(and) Macro immediate visible C28and29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 2874, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
0< ]   [ 4pickAnd>r ]   [ d0< ]   [ q-$80And>r3Dropr> ]  
Documentation
Value
    andwf   postdec0, w             ; // (and) ( b1 b2 -- b3 )
(array) Macro immediate visible C28array29 Compiler 18xxx2
( -- wRamAddr ) [ 1966, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // $Size$ Array $Name$ ( $Bank$:$Value$) ; $Mangled$
    PushLit D'$Value$'
    PushLit D'$Bank$'
(arraydef) Macro immediate visible C28arraydef29 Compiler 18xxx2
( -- ) [ 1959, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$ equ 256 * D'$Bank$' + D'$Value$' ; // $Size$ Array  $Name$ :: Bank = $Bank$
(begin) Macro immediate visible C28begin29 Compiler 18xxx2
( -- ) [ 2220, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (begin) - a label
$Label$
(call) Macro immediate visible C28call29 Compiler 18xxx2
( -- ) [ 2203, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (call) $Label$
    call    $Label$
(case) Macro immediate visible C28case29 Compiler 18xxx2
( -- ) [ 2286, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (case)- place holder only
(code) Macro immediate visible C28code29 Compiler 18xxx2
( -- ) [ 1751, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // $Bank$:$NLabel$ (code)
    call    $MLabel$
(colon) Macro immediate visible C28colon29 Compiler 18xxx2
( -- ) [ 1743, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // $Bank$:$NLabel$ (colon)
    call    $MLabel$
(constant) Macro immediate visible C28constant29 Compiler 18xxx2
( -- b ) [ 1836, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // constant $Name$ ( $Sign$$Value$)
    PushLit $Sign$D'$Value$'
(constdef) Macro immediate visible C28constdef29 Compiler 18xxx2
( -- ) [ 1829, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$ equ $Sign$D'$Value$'      ; // constant $Name$
(data-constdef) Macro immediate visible C28data2Dconstdef29 Compiler 18xxx2
( -- ) [ 1810, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$
                                    ; // data-constdef $Name$
    db    D'$Size$', $Value$
(Default) Macro immediate visible C28Default29 Compiler 18xxx2
( -- ) [ 3251, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // Default case
(dlit) Macro immediate visible C28dlit29 Compiler 18xxx2
( -- w ) [ 1781, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
1d- ]   [ 1d+ ]   [ d0 ]  
Documentation
Value
                                    ; // dliteral $Sign$$Arg$
    PushLit ($Sign$D'$Arg$' >> 0) & D'255'
    PushLit ($Sign$D'$Arg$' >> 8) & D'255'
(do) Macro immediate visible C28do29 Compiler 18xxx2
( bLimit bStart -- ) [ 2451, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
((do)) ]  
Used in
Documentation
Value
                                    ; // (do)
    call    <@" ((do))">
$LoopLabel$
(Does>) Pascal visible C28Does3E29 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
, helper for Does>
Value
(drop) Macro immediate visible C28drop29 Compiler 18xxx2
( b -- ) [ 2895, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
3Drop ]  
Documentation
Value
                                    ; // drop ( b -- )
    Drop
(dup) Macro immediate visible C28dup29 Compiler 18xxx2
( b -- b b ) [ 2903, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
2q@ ]  
Documentation
Value
                                    ; // (dup) ( b -- b b )
    Dup
(else) Macro immediate visible C28else29 Compiler 18xxx2
( -- ) [ 2269, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (else) - unconditional branch
    bra     $Label2$
$Label1$
(endcase) Macro immediate visible C28endcase29 Compiler 18xxx2
( -- ) [ 2293, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (endcase) - a label
$Label$
(endof) Macro immediate visible C28endof29 Compiler 18xxx2
( -- ) [ 2329, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (endof) - unconditional branch
    bra   $Label1$

$Label2$
(endtry) Macro immediate visible C28endtry29 Compiler 18xxx2
( -- ) [ 2722, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Compiled EndTry
Value
                                    ; // (endtry), place holder
$anEndLabel$

(except) Macro immediate visible C28except29 Compiler 18xxx2
( b -- b ) [ 2676, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
((no_except)) ]  
Used in
Documentation
Compiled Except
Value
    ; // (except) ( bException | -- bException | )

                                    ; // OK :: We fell trough, no exception, nothing on stack
                                    ; // ( )
    call    <@" ((no_except))">     ; // ((no_except)) remove (except) frame

                                    ; // B/ skip to (endtry)
    bra     $anEndLabel$

$aTryLabel$
                                    ; // EXCEPTION :: We came in thhrough a Raise action, exception on stack
                                    ; // ( bException )

    ; // end ( except)

(Exit) Macro immediate visible C28Exit29 Compiler 18xxx2
( -- ) [ 3258, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    return                          ; // /B --> Exit
(False) Macro immediate visible C28False29 Compiler 18xxx2
( -- f ) [ 2929, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushLit False                   ; // (False) ( -- f )
(field) Macro immediate visible C28field29 Compiler 18xxx2
( -- b ) [ 1982, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Structue field evocation
Value
                                ; // Field $Name$ ( $Sign$$Value$)
    PushLit <@" $Name$">
(fielddef) Macro immediate visible C28fielddef29 Compiler 18xxx2
( -- ) [ 1975, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Structure field definition
Value
<@" $Name$"> equ $Sign$D'$Value$' ; // Field $Name$
(finally) Macro immediate visible C28finally29 Compiler 18xxx2
( b -- ) [ 2698, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
((no_except)) ]  
Used in
Documentation
Compiled Finally
Value
    ; // (finally) ( bException | -- bException | )

                                    ; // OK :: We fell trough, no exception, nothing on stack
                                    ; // ( )
    call    <@" ((no_except))">     ; // ((no_except)) remove(except) frame
    PushLit 0                       ; // Signal 'no exception'

    ; // (finally) Fall through to $aTryLabel$

$aTryLabel$
                                    ; // EXCEPTION :: We came in through a Raise action, exception on stack
                                    ; // or we fell having no exception, zero on stack
                                    ; // ( bException )
    Drop                            ; // But just forget about it for now.
                                    ; // (This should be re-raised at EndTry)

    ; // end ( finally)

(ForceRomBank) Macro immediate visible C28ForceRomBank29 Compiler 18xxx2
( -- ) [ 1734, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    ; // (ForceRomBank) $Nr$ $Address$
    ; // a NOOP for 18fXXX, it has no rom banking.
(FreeLocalSpace) Macro immediate visible C28FreeLocalSpace29 Compiler 18xxx2
( -- ) [ 2127, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // Free space ($anAmount$ bytes) for local variables.
    movwf   tmp1                    ; // Save TOS
    movf    LDP, w                  ; // Get  LDP
                                    ; // Subtract $anAmount$ from it
    sublw   D'$anAmount$'
    movwf   LDP                     ; // And store it
    movf    tmp1, w                 ; // Restore TOS
(GetLocalSpace) Macro immediate visible C28GetLocalSpace29 Compiler 18xxx2
( -- ) [ 2114, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // Reserve space ($anAmount$ bytes) for local variables.
    movwf   tmp1                    ; // Save TOS
    movf    LDP, w                  ; // Get  LDP
                                    ; // Add $anAmount$ to it
    addlw   D'$anAmount$'
    movwf   LDP                     ; // And store it
    movf    tmp1, w                 ; // Restore TOS
(goto) Macro immediate visible C28goto29 Compiler 18xxx2
( -- ) [ 2187, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (goto) $Label$
    bra     $Label$
(I) Macro immediate visible C28I29 Compiler 18xxx2
( -- u ) [ 3266, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushReg indf1                   ; // I ( -- u ) Get inner loop index
(I') Primitive visible C28I2729 Compiler 18xxx2
( -- u ) [ 3273, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushLit D'1'                    ; // Get inner loop limit
    movf    plusw1, w
    return
(if) Macro immediate visible C28if29 Compiler 18xxx2
( -- ) [ 2261, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (if) - branch if Z flag set
    fBranch $Label$
(InitLocalSpace) Macro immediate visible C28InitLocalSpace29 Compiler 18xxx2
( -- ) [ 2105, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // Initialize the local data pointer (LDP)
    movlw   D'$aLocalStart$'
    movwf   LDP
(J) Primitive visible C28J29 Compiler 18xxx2
( -- u ) [ 3282, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushLit D'2'                    ; // Get 2nd loop index
    movf    plusw1, w
    return
(J') Primitive visible C28J2729 Compiler 18xxx2
( -- u ) [ 3291, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushLit D'3'                    ; // Get 2nd loop limit
    movf    plusw1, w
    return
(jumpto) Macro immediate visible C28jumpto29 Compiler 18xxx2
( -- ) [ 2195, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (jumpto) $Name$
    bra     $Mangled$
(K) Primitive visible C28K29 Compiler 18xxx2
( -- u ) [ 3300, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushLit D'4'                    ; // Get 3d loop index
    movf    plusw1, w
    return
(label) Macro immediate visible C28label29 Compiler 18xxx2
( -- ) [ 2180, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Label$
(Leave) Primitive visible C28Leave29 Compiler 18xxx2
( -- ) [ 2479, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushNothing                     ; // Save wreg
    incf    fsr1l                   ; // Point to limit
    decf    postdec1, w             ; // Get limit, dec limit, result into wreg
    movwf   indf1                   ; // Store limit - 1 as index
    Drop
    return
(lit) Macro immediate visible C28lit29 Compiler 18xxx2
( -- b ) [ 1773, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@Compare! ]   [ 0< ]   [ 0> ]   [ d0< ]   [ q-$80And>r3Dropr> ]   [ t! ]  
Documentation
Value
                                    ; // literal $Sign$$Arg$
    PushLit $Sign$D'$Arg$'
(loc2var) Macro immediate visible C28loc2var29 Compiler 18xxx2
( -- wRamAddr ) [ 2150, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // Loc2Var $Name$ ( $Bank$:$Sign$$Value$) ; $Mangled$
    PushLit $Sign$D'$Value$'
    addwf   LDP, w
    PushLit D'$Bank$'
(loc3var) Macro immediate visible C28loc3var29 Compiler 18xxx2
( -- wRamAddr ) [ 2160, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Local tripple variable evocation
Value
                                ; // Loc3Var $Name$ ( $Bank$:$Sign$$Value$) ; <@" $Name$">
    PushLit $Sign$D'$Value$'
    addwf   LDP, w
    PushLit D'$Bank$'
(loc4var) Macro immediate visible C28loc4var29 Compiler 18xxx2
( -- wRamAddr ) [ 2170, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // Loc4Var $Name$ ( $Bank$:$Sign$$Value$) ; $Mangled$
    PushLit $Sign$D'$Value$'
    addwf   LDP, w
    PushLit D'$Bank$'
(locvar) Macro immediate visible C28locvar29 Compiler 18xxx2
( -- wRamAddr ) [ 2140, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // LocVar $Name$ ( $Bank$:$Sign$$Value$) ; $Mangled$
    PushLit $Sign$D'$Value$'
    addwf   LDP, w
    PushLit D'$Bank$'
(loop) Macro immediate visible C28loop29 Compiler 18xxx2
( -- ) [ 2470, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (loop) branch if Z flag set
    fBranch $LoopLabel$
$SkipLabel$
(lshift) Macro immediate visible C28lshift29 Compiler 18xxx2
( b -- b ) [ 3047, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    rlncf   wreg                    ; // lshift ( b1 -- b2 )
    bcf     wreg, 0
(Max) Primitive visible C28Max29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 3189, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1
    cpfslt  tmp1                    ; // S/ tmp1 < wreg , so wreg is maximum
    movf    tmp1, w                 ; //    tmp1 >= wreg, so tmp1 is maximum
    return
(Min) Primitive visible C28Min29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 3199, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1
    cpfsgt  tmp1                    ; // S/ tmp1 > wreg , so wreg is minimum
    movf    tmp1, w                 ; //    tmp1 <= wreg, so tmp1 is minimum
    return
(negate) Macro immediate visible C28negate29 Compiler 18xxx2
( b -- b ) [ 2943, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    sublw   D'0'                    ; // negate ( b1 -- b2 )
(not) Macro immediate visible C28not29 Compiler 18xxx2
( b -- b ) [ 2950, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(<=) ]   [ (>=) ]   [ d<= ]   [ d>= ]   [ sd<= ]   [ sd>= ]  
Documentation
Value
    xorlw   0xff                    ; // Not ( b1 -- b2 )
(of) Macro immediate visible C28of29 Compiler 18xxx2
( -- ) [ 2321, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (of) - branch if Z flag set
    fBranch $Label$
(or) Macro immediate visible C28or29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 2881, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
4pickOr>r ]   [ d0= ]   [ q0<> ]   [ q0= ]  
Documentation
Value
    iorwf   postdec0, w             ; // (or) ( b1 b2 -- b3 )
(over) Primitive visible C28over29 Compiler 18xxx2
( b1 b2 -- b1 b2 b1 ) [ 3030, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(2dup) ]  
Documentation
Value
    movff   indf0, tmp1
    PushReg tmp1
    return
(pick) Primitive visible C28pick29 Compiler 18xxx2
( u1 -- u2 ) [ 3150, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@Compare! ]   [ t! ]  
Documentation
Value
  ; // Push u:th entry

    PushNothing
    sublw   D'0'                    ; // negate
    movf    plusw0, w               ; // w = offset of reqd. byte,
    return                          ; //     0th byte references TOS
(put) Primitive visible C28put29 Compiler 18xxx2
( b u -- ) [ 3163, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
  ; // u th byte of stack replaced by value b
  ; //   0th byte = top of stack

    sublw   D'0'                    ; // negate
    PopReg  tmp1                    ; // Get offset
    movwf   tmp2                    ; // Get velue to put
    movf    tmp1, w                 ; // Offset to wreg
    movff   tmp2, plusw0            ; // Put value
    PopReg  wreg                    ; // Pop top item of stack into wreg
    return
(qlit) Macro immediate visible C28qlit29 Compiler 18xxx2
( -- q ) [ 1790, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // qliteral $Sign$$Arg$
    PushLit ($Sign$D'$Arg$' >>  0) & D'255'
    PushLit ($Sign$D'$Arg$' >>  8) & D'255'
    PushLit ($Sign$D'$Arg$' >> 16) & D'255'
    PushLit ($Sign$D'$Arg$' >> 24) & D'255'
(R>) Primitive visible C28R3E29 Compiler 18xxx2
( -- b ) [ 3309, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@Compare! ]   [ dr> ]   [ q-$80And>r3Dropr> ]   [ sp-! ]  
Documentation
[ b -- ]
Value
    LsPopReg  tmp1
    PushReg   tmp1
    return
(raise) Macro immediate visible C28raise29 Compiler 18xxx2
( b -- ) [ 2731, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
((raise)) ]  
Used in
Documentation
Compiled Raise
Value
    ; // (raise) ( bExceptionOnCurrentDataStack -- bExceptionOnOldDataStack ) [ tRomAddress dDSP -- ]

    call    <@" ((raise))">         ; // ((raise)) jump to (except) or (finally) handler
                                    ; //  through (except) frame on return stack

(repeat) Macro immediate visible C28repeat29 Compiler 18xxx2
( -- ) [ 2252, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (repeat) - unconditional branch
    bra     $Label1$
$Label2$
(rot) Primitive visible C28rot29 Compiler 18xxx2
( b1 b2 b3 -- b2 b3 b1 ) [ 3115, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(+rot) ]  
Documentation
Value
    PopReg  tmp3
    PopReg  tmp2
    PopReg  tmp1

    PushReg tmp2
    PushReg tmp3
    PushReg tmp1

    return
(-rot) Primitive visible C282Drot29 Compiler 18xxx2
( b1 b2 b3 -- b3 b1 b2 ) [ 3135, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@0! ]   [ @ff! ]  
Documentation
Value
    PopReg  tmp3
    PopReg  tmp2
    PopReg  tmp1

    PushReg tmp3
    PushReg tmp1
    PushReg tmp2

    return
(rshift) Macro immediate visible C28rshift29 Compiler 18xxx2
( b -- b ) [ 3055, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    rrncf   wreg                    ; // rshift ( b1 -- b2 )
    bcf     wreg, 7
(s>2field) Macro immediate visible C28s3E2field29 Compiler 18xxx2
( b -- w ) [ 2038, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
d+ ]  
Used in
Documentation
Structure field offset calculation
Value
                                ; // s>2Field $Name$ ( $Sign$$Value$)
                                ; // ( bBase -- bBase+dOffset )
    PushLit   0                 ; //  perform u>ud
    PushLit ( <@" $Name$"> >> 0 ) & D'255'
    PushLit ( <@" $Name$"> >> 8 ) & D'255'
    call    <@" d+">
(s>field) Macro immediate visible C28s3Efield29 Compiler 18xxx2
( w -- w ) [ 2000, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
d+ ]  
Used in
Documentation
Structure field offset calculation
Value
                                ; // s>Field $Name$ ( $Sign$$Value$)
                                ; // ( dBase -- dBase+dOffset )
    PushLit ( <@" $Name$"> >> 0 ) & D'255'
    PushLit ( <@" $Name$"> >> 8 ) & D'255'
    call    <@" d+">
(semi) Macro immediate used visible C28semi29 Compiler 18xxx2
( -- ) [ 1759, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(<=) ]   [ (>) ]   [ (>=) ]   [ (2dup) ]   [ /16 ]   [ /32 ]   [ @0! ]   [ @0= ]   [ @0> ]   [ @a+ ]   [ @a+! ]   [ @a+@ ]   [ @Compare! ]   [ @ff! ]   [ @spSave ]   [ []Ram@ ]   [ ++Ram! ]   [ ++Ram@ ]   [ 0< ]   [ 0> ]   [ 1d- ]   [ 1d+ ]   [ -1d= ]   [ 2q@ ]   [ 3Drop ]   [ 4Drop ]   [ 4Dup ]   [ 4over ]   [ 4pickAnd>r ]   [ 4pickOr>r ]   [ 4pickXor>r ]   [ 4rot ]   [ 4swap ]   [ a+! ]   [ a+@ ]   [ adup@ ]   [ d<= ]   [ d>= ]   [ d>r ]   [ d0 ]   [ d0< ]   [ d0= ]   [ d0> ]   [ dr> ]   [ main ]   [ q! ]   [ q-$80And>r3Dropr> ]   [ q@ ]   [ q< ]   [ q<= ]   [ q= ]   [ q> ]   [ q>= ]   [ q>r ]   [ q0<> ]   [ q0= ]   [ qAnd ]   [ qNot ]   [ qNotAnd ]   [ qNotAnd0<> ]   [ qOr ]   [ qr> ]   [ qXor ]   [ Ram! ]   [ Ram!-- ]   [ Ram!++ ]   [ Ram@ ]   [ Ram@-- ]   [ Ram@++ ]   [ sd< ]   [ sd<= ]   [ sd> ]   [ sd>= ]   [ sp! ]   [ sp-! ]   [ sp? ]   [ sp+! ]   [ spSave! ]   [ spSave@ ]   [ t! ]   [ t@ ]  
Documentation
Value
    return                          ; // B/ ----> (;)
(seminoreturn) Macro immediate visible C28seminoreturn29 Compiler 18xxx2
( -- ) [ 1766, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (noreturn;)
(Space) Macro immediate visible C28Space29 Compiler 18xxx2
( -- b ) [ 2936, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
bl ]  
Documentation
Value
    PushLit 0x20                    ; // (space) ( -- b )
(str-constant) Macro immediate visible C28str2Dconstant29 Compiler 18xxx2
( -- wRomAddress ) [ 1819, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // str-constant $Name$
                                    ; // ( -- wRomAddress )
    PushLit ($Mangled$ >> 0) & D'255'
    PushLit ($Mangled$ >> 8) & D'255'
(str-constdef) Macro immediate visible C28str2Dconstdef29 Compiler 18xxx2
( -- ) [ 1801, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$
                                    ; // str-constdef $Name$
    db    D'$Size$', "$Value$"
(struct) Macro immediate visible C28struct29 Compiler 18xxx2
( -- b ) [ 2057, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Structure evocation
Value
                                ; // Struct $Name$ ( $Sign$$Value$)
    PushLit <@" $Name$">
(structdef) Macro immediate visible C28structdef29 Compiler 18xxx2
( -- ) [ 2050, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Structure definition
Value
<@" $Name$"> equ $Sign$D'$Value$' ; // Struct $Name$
(swap) Primitive visible C28swap29 Compiler 18xxx2
( b1 b2 -- b2 b1 ) [ 2911, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(>) ]   [ d>r ]   [ dr> ]  
Documentation
Value
    PopReg  tmp2
    PopReg  tmp1
    PushReg tmp2
    PushReg tmp1
    return
(table) Macro immediate visible deprecated C28table29 Compiler 18xxx2
( -- ) [ 2339, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (table)
    bcf     wreg, 7
    rlncf   wreg
    addwf   pcl, f
(TableElt) Macro immediate visible deprecated C28TableElt29 Compiler 18xxx2
( -- ) [ 2350, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (TableElt)
    retlw   $Sign$D'$Arg$'
(then) Macro immediate visible C28then29 Compiler 18xxx2
( -- ) [ 2278, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (then) or (endif) - a label
$Label$
(to) Macro immediate visible C28to29 Compiler 18xxx2
( b -- ) [ 2097, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // =: $Name$ / To $Name$ ( b -- ) ; $Mangled$
    PopReg  $Mangled$
(True) Macro immediate visible C28True29 Compiler 18xxx2
( -- f ) [ 2922, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushLit True                    ; // (True) ( -- f )
(try) Macro immediate visible C28try29 Compiler 18xxx2
( -- ) [ 2659, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
((try)) ]  
Used in
Documentation
Compiled Try
Value
    ; // (try) ( -- )

    PushLit (( $aTryLabel$) >> 16) & 0xff   ; // Setup a fake return address for (raise)
    PushLit (( $aTryLabel$) >>  8) & 0xff   ; //   long jump to (except) handler
    PushLit (( $aTryLabel$) >>  0) & 0xff   ; //   using REVERSED push

    call    <@" ((try))">           ; // ((try)) Create (except) frame on return stack
                                    ; // ( tRomAddress -- ) [ -- tRomAddress dDSP ]

    ; // end (try) ( -- ) [ -- tRomAddress dDSP ]

(until) Macro immediate visible C28until29 Compiler 18xxx2
( -- ) [ 2228, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (until) - branch if Z flag set
    fBranch $Label$
(value) Macro immediate visible C28value29 Compiler 18xxx2
( -- b ) [ 2087, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (value) Value $Name$ ( $Bank$:$Address$) ; $Mangled$
    PushLit D'$Address$'
    PushLit D'$Bank$'
    call    $Fetch$
(valuedef) Macro immediate visible C28valuedef29 Compiler 18xxx2
( -- ) [ 2080, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$ equ 256 * D'$Bank$' + D'$Value$' ; // Value $Name$ :: Bank = $Bank$
(valuestartup) Macro immediate visible C28valuestartup29 Compiler 18xxx2
( -- ) [ 2070, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (valuestartup) - value initialization
                                    ; // Value $Name$ ( $Bank$:$Address$) := $Sign$$Value$ ; $Mangled$
    movlw   $Sign$D'$Value$'
    movwf   D'$Address$'
(vardef) Macro immediate visible C28vardef29 Compiler 18xxx2
( -- ) [ 1895, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
$Mangled$ equ 256 * D'$Bank$' + D'$Value$' ; // variable  $Name$ :: Bank = $Bank$
(variable) Macro immediate visible C28variable29 Compiler 18xxx2
( -- wRamAddr ) [ 1902, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // variable $Name$ ( $Bank$:$Value$) ; $Mangled$
    PushLit D'$Value$'
    PushLit D'$Bank$'
(while) Macro immediate visible C28while29 Compiler 18xxx2
( -- ) [ 2244, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // (while) - branch if Z flag set
    fBranch $Label$
(xor) Macro immediate visible C28xor29 Compiler 18xxx2
( u1 u2 -- u3 ) [ 2888, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@Compare! ]   [ 4pickXor>r ]  
Documentation
Value
    xorwf   postdec0, w             ; // (xor) ( b1 b2 -- b3 )
* Pascal immediate visible C2A Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
multiplication
Value
*_8_32 Primitive visible C2A_8_32 Forth 18xxx2
( q1 u -- q2 ) [ 4722, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Divisor ]   [ Quotient ]  
Used in
Documentation
8*32->32
Value

    PopReg  tmp1                    ; // Get byte arg
    PopReg  tmp5                    ; // Get long arg
    PopReg  tmp4
    PopReg  tmp3
    movwf   tmp2

    movlw   9                       ; // 9 Shifts
    movwf   <@" Quotient">

    clrf32  <@" Divisor">

    bcf     Status, C

tstar_1
                                    ; // Ignore byte 5
    rrcf    <@" Divisor"> + 3, f
    rrcf    <@" Divisor"> + 2, f
    rrcf    <@" Divisor"> + 1, f
    rrcf    <@" Divisor"> + 0, f
    rrcf    tmp1           , f
    bnc     tstar_2                 ; // B/ Carry clear, skip add

    ; // Carry set, add, ignoring 5th byte

    movf    tmp2, w
    addwf   <@" Divisor"> + 0, f
    movf    tmp3, w
    addwfc  <@" Divisor"> + 1, f
    movf    tmp4, w
    addwfc  <@" Divisor"> + 2, f
    movf    tmp5, w
    addwfc  <@" Divisor"> + 3, f

tstar_2

    decfsz  <@" Quotient">, f
    bra     tstar_1

    movf    tmp1, w
    PushReg <@" Divisor"> + 0
    PushReg <@" Divisor"> + 1
    PushReg <@" Divisor"> + 2

    Return
, Pascal visible C2C Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Allot's in meta data space
Value
. Pascal visible C2E Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Print a number in the current base, also see .b, .d, .h
Value
.' Pascal immediate visible C2E27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Copy a string (u[ to ') to the output file, also see ."
Value
." Pascal immediate visible C2E22 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Copy a string (up to ") to the output file, also see .'
Value
.// Pascal immediate visible C2E2F2F Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Comment (to EOL) that is copied to the output file, also see .\.
Value
.\ Pascal immediate visible C2E5C Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Comment (to EOL) that is copied to the output file, also see .//.
Value
.b Pascal visible C2Eb Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
print a number in base &2, also see .
Value
.CompileTime Colon visible meta C2ECompileTime Forth 18xxx2
( -- ) [ 5779, 4] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
.infoTime ]   [ ; ]   [ CompileTime ]  
Used in
Documentation
Type CompileTime = value to console
Value
00348 |                                              | ( -- <string-token>) "CompileTime : " [CompileTime : ]
00349 | CompileTime                                  | ( -- n ) Get compilation start date/time as Unix time - pseudo constant
00350 | .infoTime                                    | ( <name> <value> -- ) print name = value as time to console [344]
00351 | ;                                            | ( -- ) End a colon definition  name ... ;
.d Pascal visible C2Ed Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
print a number in base &10, also see .
Value
.h Pascal visible C2Eh Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
print a number in base &16, also see .
Value
.info Colon visible meta C2Einfo Forth 18xxx2
( <name> <value> -- ) [ 5771, 4] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
; ]   [ + ]   [ message ]  
Used in
Documentation
print name = value to console
Value
00341 | +                                            | ( n1 n2 -- n3 ) adition
00342 | message                                      | ( <string-token> -- ) Generate a warning with text on stack, also see Message'.
00343 | ;                                            | ( -- ) End a colon definition  name ... ;
.infoTime Colon visible meta C2EinfoTime Forth 18xxx2
( <name> <value> -- ) [ 5775, 4] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
; ]   [ + ]   [ message ]   [ unix>str ]  
Used in
.CompileTime ]  
Documentation
print name = value as time to console
Value
00344 | unix>str                                     | ( n -- <string-token>) Convert n to an ISO date time string
00345 | +                                            | ( n1 n2 -- n3 ) adition
00346 | message                                      | ( <string-token> -- ) Generate a warning with text on stack, also see Message'.
00347 | ;                                            | ( -- ) End a colon definition  name ... ;
.s Pascal visible C2Es Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Type a stack dump / debug function
Value
/ Pascal immediate visible C2F Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
division of n1 by n2
Value
// Pascal immediate visible C2F2F Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Comment till end of line, same as \
Value
/16 Colon visible C2F16 Forth 18xxx2
( wDividend wDivisor -- wQuotient ) [ 4861, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(2drop) ]   [ (semi) ]   [ /mod16 ]  
Used in
Documentation
Value
00118 | /mod16                                       | ( wDividend  wDivisor -- wQuotient wRemainder )
00119 | (2drop)                                      | ( w -- ) ( )
00120 | (semi)                                       | ( -- ) ( )
/32 Colon visible C2F32 Forth 18xxx2
( qDividend qDivisor -- qQuotient ) [ 4986, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ /mod32 ]   [ 4Drop ]  
Used in
Documentation
Value
00121 | /mod32                                       | ( qDividend  qDivisor -- qQuotient qRemainder )
00122 | 4Drop                                        | ( q -- ) [33]
00123 | (semi)                                       | ( -- ) ( )
/mod Pascal immediate visible C2Fmod Forth
( n1 n2 -- n3 n4 ) [ 0, 1] ""
Uses
Used in
Documentation
division of n1 by n2 with result n3 and remainder n4
Value
/mod16 Primitive visible C2Fmod16 Forth 18xxx2
( wDividend wDivisor -- wQuotient wRemainder ) [ 4774, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Divisor ]   [ Quotient ]   [ Remainder ]  
Used in
/16 ]  
Documentation
Value
    ; // //////////////////////////////////////////////////////////////////////
    ; //  Function      : udiv16( wDividend, wDivisor)
    ; //  Input         : wDividend : 16 bits unsigned
    ; //                : wDivisor  : 16 bits unsigned
    ; //  Output        : Quotient, Remainder
    ; //  Description   : 16 / 16 -> 16 bits unsigned divide with remainder
    ; //  Remarks       : Quotient  := wDividend Div wDivisor
    ; //                : Remainder := wDividend Mod wDivisor
    ; // //////////////////////////////////////////////////////////////////////
    ; //
    ; //  From Zilog Z8 Family Design Handbook, june 1988
    ; //
    ; //  A programmers guide to the Z8 microcomputer,
    ; //  Z8 subroutine library, Application note
    ; //  page 211.
    ; //
    ; //  This is a 16 / 16 -> 16 + 16 udiv routine
    ; //
    ; // //////////////////////////////////////////////////////////////////////

                                    ; // Pop arguments from stack to helper variables

    PopReg  <@" Divisor">  + 1      ; // pop ( u1 -- )
    PopReg  <@" Divisor">  + 0
    PopReg  <@" Quotient"> + 1
    movwf   <@" Quotient"> + 0

    clrf16  <@" Remainder">

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

dlp_16

    shlc16  <@" Quotient">          ; // rlc  qout_lo/hi
    shlc16  <@" Remainder">         ; // rlc  rem_lo/hi
    bc      subt_16                 ; // jr   c, subt_16

    movf    <@" Remainder"> + 1, w  ; // cp   dvsr_hi, rem_hi
    cpfsgt  <@" Divisor"> + 1       ; // jr   ugt, skp_16
    bra     udiv_16_0               ; // B/ f <= W -> dvsr_hi <= rem_hi
    bra     skp_16                  ; // B/ f >  W -> dvsr_hi >  rem_hi

udiv_16_0                           ; // dvsr_hi <= rem_hi

    cpfseq  <@" Divisor"> + 1       ; // jr   ult, subt_16
    bra     subt_16                 ; // B/ dvsr_hi < rem_h

                                    ; // dvsr_hi = rem_hi

    movf    <@" Remainder">, w      ; // cp   dvsr_lo, rem_lo
    cpfsgt  <@" Divisor">           ; // jr   ugt, skp_16
    bra     subt_16                 ; // B/ f <= W -> dvsr_lo <= rem_lo
    bra     skp_16                  ; // B/ f >  W -> dvsr_lo >  rem_lo

subt_16

    movf    <@" Divisor">, w        ; // sub  rem_lo, dvsr_lo
    subwf   <@" Remainder">, f
    movf    <@" Divisor"> + 1, w    ; // sub  rem_hi, dvsr_hi
    subwfb  <@" Remainder"> + 1, f
    bsf     Status, C               ; // scf

skp_16

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

    shlc16  <@" Quotient">          ; // rlc  quot_lo/hi

    ; // Copy results to stack

    movf    <@" Quotient">  + 0, w
    PushReg <@" Quotient">  + 1

    PushReg <@" Remainder"> + 0
    PushReg <@" Remainder"> + 1

    return
/mod32 Primitive visible C2Fmod32 Forth 18xxx2
( qDividend qDivisor -- qQuotient qRemainder ) [ 4867, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Divisor ]   [ Quotient ]   [ Remainder ]  
Used in
/32 ]  
Documentation
Value
    ; // //////////////////////////////////////////////////////////////////////
    ; //  Function      : udiv32( qDividend, wDivisor)
    ; //  Input         : qDividend : 32 bits unsigned
    ; //                : wDivisor  : 16 bits unsigned
    ; //  Output        : Quotient, Remainder
    ; //  Description   : 32 / 32 -> 32 + 32 bits unsigned divide with remainder
    ; //  Remarks       : Quoatient := qDividend Div qDivisor
    ; //                : Remainder := qDividend Mod qDivisor
    ; // //////////////////////////////////////////////////////////////////////
    ; //
    ; //  Adapted from 16 / 16 -> 16 + 16 algorithm above
    ; //
    ; //  This is a 32 / 32 -> 32 + 32 udiv routine
    ; //
    ; // //////////////////////////////////////////////////////////////////////

                                    ; // Pop arguments from stack to helper variables

    PopReg  <@" Divisor">  + 3      ; // pop Divisor
    PopReg  <@" Divisor">  + 2
    PopReg  <@" Divisor">  + 1
    PopReg  <@" Divisor">  + 0
    PopReg  <@" Quotient"> + 3      ; // Pop Dividend
    PopReg  <@" Quotient"> + 2
    PopReg  <@" Quotient"> + 1
    movwf   <@" Quotient"> + 0

    clrf32  <@" Remainder">

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

dlp_32

    shlc32  <@" Quotient">          ; // rlc  qout_0..3
    shlc32  <@" Remainder">         ; // rlc  rem_0..3
    bc      subt_32                 ; // jr   c, subt_32

    movf    <@" Remainder"> + 3, w  ; // cp   dvsr_3, rem_3
    cpfsgt  <@" Divisor">   + 3     ; // jr   ugt, skp_32
    bra     udiv_32_3               ; // B/ f <= W -> dvsr_3 <= rem_3
    bra     skp_32                  ; // B/ f >  W -> dvsr_3 >  rem_3

udiv_32_3                           ; // dvsr_3 <= rem_3

    cpfseq  <@" Divisor"> + 3       ; // jr   ult, subt_32
    bra     subt_32                 ; // B/ dvsr_3 < rem_3

                                    ; // dvsr_3 = rem_3

    movf    <@" Remainder"> + 2, w  ; // cp   dvsr_2, rem_2
    cpfsgt  <@" Divisor">   + 2     ; // jr   ugt, skp_32
    bra     udiv_32_2               ; // B/ f <= W -> dvsr_2 <= rem_2
    bra     skp_32                  ; // B/ f >  W -> dvsr_2 >  rem_2

udiv_32_2                           ; // dvsr_2 <= rem_2

    cpfseq  <@" Divisor"> + 2       ; // jr   ult, subt_32
    bra     subt_32                 ; // B/ dvsr_2 < rem_2

                                    ; // dvsr_2 = rem_2

    movf    <@" Remainder"> + 1, w  ; // cp   dvsr_1, rem_1
    cpfsgt  <@" Divisor">   + 1     ; // jr   ugt, skp_32
    bra     udiv_32_1               ; // B/ f <= W -> dvsr_1 <= rem_1
    bra     skp_32                  ; // B/ f >  W -> dvsr_1 >  rem_1

udiv_32_1                           ; // dvsr_1 <= rem_1

    cpfseq  <@" Divisor"> + 1       ; // jr   ult, subt_32
    bra     subt_32                 ; // B/ dvsr_2 < rem_2

                                    ; // dvsr_1 = rem_1

    movf    <@" Remainder">, w      ; // cp   dvsr_lo, rem_lo
    cpfsgt  <@" Divisor">           ; // jr   ugt, skp_32
    bra     subt_32                 ; // B/ f <= W -> dvsr_lo <= rem_lo
    bra     skp_32                  ; // B/ f >  W -> dvsr_lo >  rem_lo

subt_32

    movf    <@" Divisor">      , w  ; // sub  rem_0, dvsr_0
    subwf   <@" Remainder">    , f
    movf    <@" Divisor">   + 1, w  ; // sub  rem_1, dvsr_1
    subwfb  <@" Remainder"> + 1, f
    movf    <@" Divisor">   + 2, w  ; // sub  rem_2, dvsr_2
    subwfb  <@" Remainder"> + 2, f
    movf    <@" Divisor">   + 3, w  ; // sub  rem_3, dvsr_3
    subwfb  <@" Remainder"> + 3, f
    bsf     Status, C               ; // scf

skp_32

    decfsz  tmp2, f                 ; // djnz d32_LEN, dlp_32
    bra     dlp_32                  ; //                       !no flags affected!

    shlc32  <@" Quotient">          ; // rlc  quot_0..3

    ; // Copy results to stack

    movf    <@" Quotient">  + 0, w
    PushReg <@" Quotient">  + 1
    PushReg <@" Quotient">  + 2
    PushReg <@" Quotient">  + 3

    PushReg <@" Remainder"> + 0
    PushReg <@" Remainder"> + 1
    PushReg <@" Remainder"> + 2
    PushReg <@" Remainder"> + 3

    return
: Pascal visible C3A Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Start a colon definition : name ... ;
Value
; Pascal immediate visible C3B Forth
( -- ) [ 0, 1] ""
Uses
Used in
.CompileTime ]   [ .info ]   [ .infoTime ]   [ Build ]  
Documentation
End a colon definition  name ... ;
Value
?branch Pascal visible C3Fbranch Forth
( f -- ) [ 0, 1] ""
Uses
Used in
Documentation
, branch if TOS is zero
Value
?Do Pascal immediate visible C3FDo Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
n1 n2 ?Do .. Leave .. Loop or n +Loop
Value
?dup Pascal immediate visible C3Fdup Forth
( n1 -- n1 n1 | 0 -- 0 ) [ 0, 1] ""
Uses
Used in
Documentation
Dup the top stack element when it is not equal to zero
Value
@ Pascal immediate visible C40 Forth
( n1 -- n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Fetch a value from an address
Value
@0! Colon visible C40021 Forth 18xxx2
( wRamAddress -- b ) [ 5127, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (-rot) ]   [ (semi) ]   [ 0! ]   [ aDup ]   [ Disable ]   [ Enable ]  
Used in
@False! ]  
Documentation
Value
00193 | aDup                                         | ( w -- w w ) [9]
00194 | Disable                                      | ( -- ) ( )
00195 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00196 | (-rot)                                       | ( b1 b2 b3 -- b3 b1 b2 )
00197 | 0!                                           | ( wRamAddress -- )
00198 | Enable                                       | ( -- ) ( )
00199 | (semi)                                       | ( -- ) ( )
@0= Colon visible C4003D Forth 18xxx2
( wRamAddress -- f ) [ 5086, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ 0= ]  
Used in
Documentation
Value
00182 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00183 | 0=                                           | ( b -- f )
00184 | (semi)                                       | ( -- ) ( )
@0> Colon visible C4003E Forth 18xxx2
( wRamAddress -- f ) [ 5103, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ 0> ]  
Used in
Documentation
Value
00190 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00191 | 0>                                           | ( u -- f ) [185]
00192 | (semi)                                       | ( -- ) ( )
@a+ Colon visible C40a2B Forth 18xxx2
( wAdr1 wAdr2 -- wAdr3 ) [ 3556, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ a+ ]  
Used in
Documentation
Value
00012 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00013 | a+                                           | ( w1 u -- w2 )
00014 | (semi)                                       | ( -- ) ( )
@a+! Colon visible C40a2B21 Forth 18xxx2
( b wAdr1 wAdd2 -- ) [ 3596, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ a+! ]  
Used in
Documentation
Value
00024 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00025 | a+!                                          | ( b wAdr u -- ) [21]
00026 | (semi)                                       | ( -- ) ( )
@a+@ Colon visible C40a2B40 Forth 18xxx2
( wAdr1 wAdr2 -- b ) [ 3576, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ a+@ ]  
Used in
Documentation
Value
00018 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00019 | a+@                                          | ( wAdr u -- b ) [15]
00020 | (semi)                                       | ( -- ) ( )
@Compare! Colon visible C40Compare21 Forth 18xxx2
( fn wRamAddress -- fc ) [ 5067, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(!) ]   [ (>R) ]   [ (lit) ]   [ (pick) ]   [ (R>) ]   [ (semi) ]   [ (xor) ]   [ adup@ ]  
Used in
Documentation
Value
00172 | adup@                                        | ( wAdr -- wAdr u ) [27]
00173 | (lit)                                        | ( -- b ) ( Arg Sign )
00174 |                                              |  [3]
00175 |                                              |  []
00176 | (pick)                                       | ( u1 -- u2 )
00177 | (xor)                                        | ( u1 u2 -- u3 ) ( )
00178 | (>R)                                         | ( b -- ) [ -- b ]
00179 | (!)                                          | ( b wRamAddress -- ) [Store]
00180 | (R>)                                         | ( -- b ) [ b -- ]
00181 | (semi)                                       | ( -- ) ( )
@False! Alias visible C40False21 Forth 18xxx2
( wRamAddress -- b ) [ 5142, 9] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
@0! ]  
Used in
Documentation
Value
@0!
@ff! Colon visible C40ff21 Forth 18xxx2
( wRamAddress -- b ) [ 5147, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (-rot) ]   [ (semi) ]   [ aDup ]   [ Disable ]   [ Enable ]   [ ff! ]  
Used in
@True! ]  
Documentation
Value
00200 | aDup                                         | ( w -- w w ) [9]
00201 | Disable                                      | ( -- ) ( )
00202 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00203 | (-rot)                                       | ( b1 b2 b3 -- b3 b1 b2 )
00204 | ff!                                          | ( wRamAddress -- )
00205 | Enable                                       | ( -- ) ( )
00206 | (semi)                                       | ( -- ) ( )
@spSave Colon visible C40spSave Forth 18xxx2
( -- wRamAddress ) [ 5375, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ spSave ]  
Used in
spSave! ]   [ spSave@ ]  
Documentation
Value
00207 | spSave                                       | ( -- wRamAddr ) Temporary storage for SP checks [0:135][0]
00208 | (semi)                                       | ( -- ) ( )
@True! Alias visible C40True21 Forth 18xxx2
( wRamAddress -- b ) [ 5162, 10] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
@ff! ]  
Used in
Documentation
Value
@ff!
[ Pascal immediate visible C5B Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Switch compiler off, also see ]
Value
[.s] Pascal immediate visible C5B2Es5D Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Type a stack dump / debug function
Value
[] Pascal immediate visible C5B5D Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Index into an array :: [] 4 SomeArray
Value
['] Pascal immediate visible C5B275D Forth
( -- ExecutionToken ) [ 0, 1] ""
Uses
Used in
Documentation
Search next word in input stream and return it's execution token - immediate, see '
Value
[]Ram@ Colon visible C5B5DRam40 Forth 18xxx2
( bIndex -- b ) [ 3799, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ a+@ ]   [ RamPtr@ ]  
Used in
Documentation
Value
00042 | RamPtr@                                      | ( -- wRamAddress )
00043 | a+@                                          | ( wAdr u -- b ) [15]
00044 | (semi)                                       | ( -- ) ( )
[]Rom@ Primitive visible C5B5DRom40 Forth 18xxx2
( bIndex -- b ) [ 3681, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    movff   tblptrl, tmp1           ; // Save tablepointer
    movff   tblptrh, tmp2
    addwf   tblptrl, f              ; // Add bIndex to it
    clrf    wreg
    addwfc  tblptrh, f
    tblrd*                          ; // read bData byte
    movf    tablat, w               ; // return data in TOS
    movff   tmp2, tblptrl           ; // restore table pointer
    movff   tmp1, tblptrh
    return
[Compile] Pascal immediate visible C5BCompile5D Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Compile next inline token - immediate, also see Compile
Value
\ Pascal immediate visible C5C Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Comment till end of line, same as //
Value
] Pascal visible C5D Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Switch compiler on
Value
^<<32 Primitive visible C5E3C3C32 Forth 18xxx2
( wRamAddress n -- ) [ 4307, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
  ; // Indirect 32 bits left shift over n positions

    PopReg  tmp1                    ; // Shift  wRamAddress^ left over n positions
    PopReg  fsr2h                   ; // let fsr2 popint to first (lowest) byte

shli32lp

    movwf   fsr2l
    bcf     Status, C               ; // Clear carry

    rlcf    postinc2, f
    rlcf    postinc2, f
    rlcf    postinc2, f
    rlcf    indf2   , f

    movf    fsr2l, w
    addlw   3

    decfsz  tmp1
    bra     shli32lp

    Drop
    return
^>>32 Primitive visible C5E3E3E32 Forth 18xxx2
( wRamAddress n -- ) [ 4276, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
  ; // Indirect 32 bits right shift over n positions

    PopReg  tmp1                    ; // Shift  wRamAddress^ right over n positions
    PopReg  fsr2h                   ; // let fsr2 point to end of data (highest byte)

shri32lp

    addlw   3
    movwf   fsr2l

    bcf     Status, C               ; // Clear carry

    rrcf    postdec2, f
    rrcf    postdec2, f
    rrcf    postdec2, f
    rrcf    indf2   , f

    movf    fsr2l, w

    decfsz  tmp1
    bra     shri32lp

    Drop
    return
^rl Primitive visible C5Erl Forth 18xxx2
( wRamAddress -- ) [ 4005, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Indirect left rotate
Value
    PopReg  fsr2h
    PopReg  fsr2l
    rlncf   indf2
    return
^rr Primitive visible C5Err Forth 18xxx2
( wRamAddress -- ) [ 4015, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Indirect right rotate
Value
    PopReg  fsr2h
    PopReg  fsr2l
    rrncf   indf2
    return
^Shl Primitive visible C5EShl Forth 18xxx2
( wRamAddress -- ) [ 3985, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Indirect left shift
Value
    PopReg  fsr2h
    PopReg  fsr2l
    rlcf    indf2
    return
^Shr Primitive visible C5EShr Forth 18xxx2
( wRamAddress -- ) [ 3995, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Indirect right shift
Value
    PopReg  fsr2h
    PopReg  fsr2l
    rrcf    indf2
    return
^Xor Primitive visible C5EXor Forth 18xxx2
( wRamAddress1 wRamAddress2 -- ) [ 3960, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
  ; // Indirect 8 bits xor of wRamAddress1^with wRamAddress^2
  ; // result stored at wRamAddress1

    movff   fsr1l, tmp1
    movff   fsr1h, tmp2
    PopReg  fsr2h
    PopReg  fsr2l
    PopReg  fsr1h
    movwf   fsr1l

    movf    indf2, w
    xorwf   indf1, f

    movff   tmp1, fsr1l
    movff   tmp2, fsr1h

    Drop
    return
_?Do Pascal visible C_3FDo Forth
( n1 n2 -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_>R Pascal visible C_3ER Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Again Pascal visible C_Again Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Begin Pascal visible C_Begin Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Case Pascal visible C_Case Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_default Pascal visible C_default Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Do Pascal visible C_Do Forth
( n1 n2 -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Else Pascal visible C_Else Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_EndCase Pascal visible C_EndCase Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_EndOf Pascal visible C_EndOf Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_EndTry Pascal visible C_EndTry Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Except Pascal visible C_Except Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Exit Pascal visible C_Exit Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Finally Pascal visible C_Finally Forth
( <strung-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_I Pascal visible C_I Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_If Pascal visible C_If Forth
( f -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_J Pascal visible C_J Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_K Pascal visible C_K Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Leave Pascal visible C_Leave Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Loop Pascal visible C_Loop Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Of Pascal visible C_Of Forth
( n1 n2 -- n1 | ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_PLoop Pascal visible C_PLoop Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_R> Pascal visible C_R3E Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Raise Pascal visible C_Raise Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Repeat Pascal visible C_Repeat Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Then Pascal visible C_Then Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Try Pascal visible C_Try Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_Until Pascal visible C_Until Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
_While Pascal visible C_While Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
meta helper
Value
{ Pascal visible C7B Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Switch on  meta compiler, also see MetaOn, MetaOff and }
Value
} Pascal visible C7D Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Switch off meta compiler, also see MetaOn, MetaOff, {
Value
+ Pascal immediate visible C2B Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
.info ]   [ .infoTime ]  
Documentation
adition
Value
+! Pascal immediate visible C2B21 Forth
( n1 n2 -- ) [ 0, 1] ""
Uses
Used in
Documentation
Increment value at address n1 with n2
Value
++Ram! Colon visible C2B2BRam21 Forth 18xxx2
( b -- ) [ 3841, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Ram! ]   [ RamPtr++ ]  
Used in
Documentation
Value
00060 | RamPtr++                                     | ( -- ) ( )
00061 | Ram!                                         | ( b -- ) [54]
00062 | (semi)                                       | ( -- ) ( )
++Ram@ Colon visible C2B2BRam40 Forth 18xxx2
( -- b ) [ 3813, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Ram@ ]   [ RamPtr++ ]  
Used in
Documentation
Value
00048 | RamPtr++                                     | ( -- ) ( )
00049 | Ram@                                         | ( -- b ) [39]
00050 | (semi)                                       | ( -- ) ( )
++Rom! Primitive visible C2B2BRom21 Forth 18xxx2
( b -- ) [ 3742, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tablat
    tblwt+*
    return
++Rom@ Primitive visible C2B2BRom40 Forth 18xxx2
( -- b ) [ 3706, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    tblrd+*
    PushReg tablat
    return
+Loop Pascal immediate visible C2BLoop Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n1 n2 Do .. n +Loop
Value
+rot Pascal immediate visible C2Brot Forth
( n1 n2 n3 -- n2 n3 n1 ) [ 0, 1] ""
Uses
Used in
Documentation
rotate the 3rd stack element to the top
Value
< Pascal immediate visible C3C Forth
( n1 n2 -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Push true when u1 < u2, false otherwise
Value
<< Pascal immediate visible C3C3C Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
Shift the second stack element left over the number of bits indicated by the top stack element
Value
<<32 Primitive visible C3C3C32 Forth 18xxx2
( q n -- q ) [ 4050, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1

    PopReg  tmp2
    PopReg  tmp3
    PopReg  tmp4

shl32lp

    bcf     Status, C
    rlcf    wreg
    rlcf    tmp4
    rlcf    tmp3
    rlcf    tmp2

    decfsz  tmp1
    bra     shl32lp

    PushReg tmp4
    PushReg tmp3
    PushReg tmp2

    return
<= Pascal immediate visible C3C3D Forth
( n1 n2 -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Push true when u1 <= u2, false otherwise
Value
<> Pascal immediate visible C3C3E Forth
( n1 n2 -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Push true when the top two stack elements are un-equal, false otherwise
Value
<Mark Pascal visible C3CMark Forth
( -- <string-token> | n ) [ 0, 1] ""
Uses
Used in
Documentation
Backward jump (for begin ... again etc, also see >Mark
Value
<Resolve Pascal visible C3CResolve Forth
( <string-token> } n -- ) [ 0, 1] ""
Uses
Used in
Documentation
, resilve <Mark, also see >Mark and >Resolve
Value
= Pascal immediate visible C3D Forth
( n1 n2 -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Push true when the top two stack elements are equal, false otherwise
Value
=: Pascal immediate visible C3D3A Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Alias for To
Value
> Pascal immediate visible C3E Forth
( n1 n2 -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Push true when u1 > u2, false otherwise
Value
>" Pascal visible C3E22 Forth
( n -- <string-token> ) [ 0, 1] ""
Uses
Used in
Documentation
Convert number to string acccording to Base
Value
>$ Pascal visible C3E24 Forth
( n -- <string-token> ) [ 0, 1] ""
Uses
Used in
Documentation
Convert number to string acccording to Base
Value
>= Pascal immediate visible C3E3D Forth
( n1 n2 -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Push true when u1 >= u2, false otherwise
Value
>> Pascal immediate visible C3E3E Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
Shift the second stack element right over the number of bits indicated by the top stack element
Value
>>32 Primitive visible C3E3E32 Forth 18xxx2
( q n -- q ) [ 4079, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1

    PopReg  tmp2
    PopReg  tmp3
    PopReg  tmp4

shr32lp

    bcf     Status, C
    rrcf    tmp2
    rrcf    tmp3
    rrcf    tmp4
    rrcf    wreg

    decfsz  tmp1
    bra     shr32lp

    PushReg tmp4
    PushReg tmp3
    PushReg tmp2

    return
>c Pascal visible C3Ec Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Move n from data stack to contrtol stack, see c>
Value
>Mark Pascal visible C3EMark Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Forward jump (for if .. endif etc), also see <Mark, >Resolve and <Resolve
Value
>R Pascal immediate visible C3ER Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Move a value from the data to the loop stack
Value
>Resolve Pascal visible C3EResolve Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Resolve >Mark, also see <Mark and <Resolve
Value
'0'- Macro immediate visible C270272D Forth 18xxx2
( b -- b ) [ 4512, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   0xD0                    ; // '0'- ( u1 -- u2 )
0! Alias visible C021 Forth 18xxx2
( wRamAddress -- ) [ 3954, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
False! ]  
Used in
@0! ]  
Documentation
Value
False!
'0'+ Macro immediate visible C270272B Forth 18xxx2
( b -- b ) [ 4435, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   0x30                    ; // '0'+ ( u1 -- u2 )
0< Colon visible C03C Forth 18xxx2
( b -- f ) [ 4623, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(and) ]   [ (lit) ]   [ (semi) ]   [ 0<> ]  
Used in
Documentation
Value
00112 | (lit)                                        | ( -- b ) ( Arg Sign )
00113 |                                              |  [128]
00114 |                                              |  []
00115 | (and)                                        | ( u1 u2 -- u3 ) ( )
00116 | 0<>                                          | ( b -- f )
00117 | (semi)                                       | ( -- ) ( )
0<> Primitive visible C03C3E Forth 18xxx2
( b -- f ) [ 4613, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
0< ]   [ d0< ]   [ q< ]   [ q0<> ]  
Documentation
Value
    iorlw   D'0'
    btfsc   status, Z
    retlw   False
    retlw   True
0= Primitive visible C03D Forth 18xxx2
( b -- f ) [ 4594, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@0= ]   [ d0= ]   [ q>= ]   [ q0= ]  
Documentation
Value
    iorlw   D'0'
    btfsc   status, Z
    retlw   True
    retlw   False
0> Colon visible C03E Forth 18xxx2
( u -- f ) [ 5096, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(>) ]   [ (lit) ]   [ (semi) ]  
Used in
@0> ]  
Documentation
Value
00185 | (lit)                                        | ( -- b ) ( Arg Sign )
00186 |                                              |  [0]
00187 |                                              |  []
00188 | (>)                                          | ( u1 u2 -- f ) [0]
00189 | (semi)                                       | ( -- ) ( )
0d 2Constant visible C0d Forth 18xxx2
( -- w ) [ 187, 25] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
ud>uq ]  
Documentation
Value
0
0q 4Constant visible C0q Forth 18xxx2
( -- q ) [ 223, 25] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
0
1- Macro immediate visible C12D Forth 18xxx2
( b -- b ) [ 4442, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'255'                  ; // 1- ( u1 -- u2 )
1-! Primitive visible C12D21 Forth 18xxx2
( wRamAddress -- ) [ 3855, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    decf    indf2, f
    return
1+ Macro immediate visible C12B Forth 18xxx2
( b -- b ) [ 4365, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'1'                    ; // 1+ ( u1 -- u3 )
1+! Primitive visible C12B21 Forth 18xxx2
( wRamAddress -- ) [ 3865, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    incf    indf2, f
    return
1= Primitive visible C13D Forth 18xxx2
( b -- f ) [ 4604, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    decfsz  wreg
    retlw   False
    retlw   True
10- Macro immediate visible C102D Forth 18xxx2
( b -- b ) [ 4505, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'246'                  ; // 10- ( u1 -- u2 )
10+ Macro immediate visible C102B Forth 18xxx2
( b -- b ) [ 4428, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'10'                   ; // 10+ ( u1 -- u2 )
10000d 2Constant visible C10000d Forth 18xxx2
( -- w ) [ 209, 21] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
10000
1000d 2Constant visible C1000d Forth 18xxx2
( -- w ) [ 204, 22] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
1000
100d 2Constant visible C100d Forth 18xxx2
( -- w ) [ 200, 23] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
100
1024d 2Constant visible C1024d Forth 18xxx2
( -- w ) [ 205, 22] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
1024
10d 2Constant visible C10d Forth 18xxx2
( -- w ) [ 192, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
10
128* Primitive visible C1282A Forth 18xxx2
( u1 -- u2 ) [ 5319, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    swapf   wreg, f
    rlcf    wreg, f
    rlcf    wreg, f
    rlcf    wreg, f
    andlw   0x80

    return
128/ Primitive visible C1282F Forth 18xxx2
( u1 -- u2 ) [ 5231, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    swapf   wreg, f
    rrcf    wreg, f
    rrcf    wreg, f
    rrcf    wreg, f
    andlw   0x01

    return
128d 2Constant visible C128d Forth 18xxx2
( -- w ) [ 201, 23] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
128
16* Macro immediate visible C162A Forth 18xxx2
( b -- b ) [ 5287, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 16* ( u1 -- u2 )
    swapf   wreg, f
    andlw   0xf0
16/ Macro immediate visible C162F Forth 18xxx2
( b -- b ) [ 5199, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 16/ ( u1 -- u2 )
    swapf   wreg, f
    andlw   0x0f
16384d 2Constant visible C16384d Forth 18xxx2
( -- w ) [ 210, 21] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
16384
16d 2Constant visible C16d Forth 18xxx2
( -- w ) [ 193, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
16
18f452 Word visible C18f452 Forth
( -- ) [ 41, 13] "D:\PrjD7\x4th\work\glossary\glossary.4th"
Uses
Used in
Documentation
Value
18xxx2 Module used visible C18xxx2 Forth
( -- ) [ 4, 7] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
 x4th Forth compiler and x4th target libraries
 (C) COPYRIGHT 1999 .. 2007 Blue Hell / Jan Punter

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License version 2 as
 published by the Free Software Foundation.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

 For all listed email addresses :

   <dot} to be substituted by a dot      '.'
   <at}  to be substituted by an at sign '@'


 Blue Hell is a trade mark owned by

   Jan Punter
   Oogstplein 6
   7545 HP Enschede
   the Netherlands
   http://www.iaf.nl/Users/BlueHell/
   http://bluehell.electro-music.com/
   j<dot}punter<at}iaf<dot}nl

  All rights attributed to Blue Hell are owned by Jan Punter.


 --------------------------------------------------------------------
 Code templates for Pic4th.

   Boot loader support present, unencrypted version Initialization
   Added Struct and Field words
   Added Exception handling

   removed :

     utility words              - now in utils.4th
     numerical conversion words - now in numconvert.4th
     string and memory words    - now in strings.4th


    18xxx2.4th, to be used for the folowing processors :

      18c242  with #define 18c242
      18c252  with #define 18c452
      18c442  with #define 18c442
      18c452  with #define 18c452

      18f242  with #define 18f242
      18f252  with #define 18f452
      18f442  with #define 18f442
      18f452  with #define 18f452


 Stacks :

   fsr0 - data stack, TOS in wreg          -     saved in interrupts
   fsr1 - loop stack                       - not saved in interrupts
   fsr2 - free to use - in foreground only - not saved in interrupts

 --------------------------------------------------------------------

 Addressing :

  Initially BSR is set to 0 (zero) - this means bank 0 is reachable
  through direct addressing. Further we rely on the PICASM
  assembler to generate correct code to address according to the
  ACCESS BANK mechanism. the following was observed in some
  microchip documents and in generated list files :

  when 12 bit addresses are used to identify memory locations :
    (and we _do_ use 12 bits addresses here).

  - addresses 0x000 - 0x07f and 0xf80 - 0xfff will result in opcodes
    for which the A bit is low, so they are in the ACCESS bank.

  - other addresses result into opcodes where the A bit is set to 1
    so they must be specified (when used for direct addressing) with
    a correct value in the BSR register.

  So when BSR is kept 0, direct addressing is possible for the SFR
  registers and for entire bank 0.

  So when addressing in banks 1 .. 14 or in the lower half of bank 15
  is to be performed BSR (and possibly fsr0h etc.) must be set Ok.

  - The movff instruction uses full 12 bit addressing
  - Indirect addressing can be used over all ram locations
    without worrying about BSR.

 See Initialization

Value
18xxx2.end EndModule C18xxx22Eend Forth 18xxx2
( -- ) [ 5791, 1] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
1a- Macro immediate visible C1a2D Forth 18xxx2
( wRamAddr -- wRamAddr ) [ 3515, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 1a- ( w1 -- w2 )
    decf    indf0, f
1a+ Macro immediate visible C1a2B Forth 18xxx2
( wRamAddr -- wRamAddr ) [ 3467, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 1a+ ( w1 -- w2 )
    incf    indf0, f
1d 2Constant visible C1d Forth 18xxx2
( -- w ) [ 188, 25] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
1
-1d 2Constant visible C2D1d Forth 18xxx2
( -- w ) [ 213, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
-1d= ]  
Documentation
Value
65535
1d- Colon visible C1d2D Forth 18xxx2
( w1 -- w2 ) [ 5436, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(dlit) ]   [ (semi) ]   [ d- ]  
Used in
Documentation
Value
00239 | (dlit)                                       | ( -- w ) ( Arg Sign )
00240 |                                              |  [1]
00241 |                                              |  []
00242 | d-                                           | ( wu1 wu2 -- wu3 )
00243 | (semi)                                       | ( -- ) ( )
1d+ Colon visible C1d2B Forth 18xxx2
( w1 -- w2 ) [ 5429, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(dlit) ]   [ (semi) ]   [ d+ ]  
Used in
Documentation
Value
00234 | (dlit)                                       | ( -- w ) ( Arg Sign )
00235 |                                              |  [1]
00236 |                                              |  []
00237 | d+                                           | ( wu1 wu2 -- wu3 )
00238 | (semi)                                       | ( -- ) ( )
-1d= Colon visible C2D1d3D Forth 18xxx2
( w -- f ) [ 5443, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ -1d ]   [ d= ]  
Used in
Documentation
Value
00244 | -1d                                          | ( -- w ) [65535]
00245 | d=                                           | ( w1 w2 -- f )
00246 | (semi)                                       | ( -- ) ( )
-1q 4Constant visible C2D1q Forth 18xxx2
( -- q ) [ 224, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
qNot ]  
Documentation
Value
-1
2- Macro immediate visible C22D Forth 18xxx2
( b -- b ) [ 4449, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'254'                  ; // 2- ( u1 -- u2 )
2* Macro immediate visible C22A Forth 18xxx2
( b -- b ) [ 5244, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 2* ( u1 -- u2 )
    rlcf    wreg, f
    andlw   0xfe
2/ Macro immediate visible C22F Forth 18xxx2
( b -- b ) [ 5167, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 2/ ( u1 -- u2 )
    rrcf    wreg, f
    andlw   0x7f
2+ Macro immediate visible C22B Forth 18xxx2
( b -- b ) [ 4372, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'2'                    ; // 2+ ( u1 -- u2 )
2048d 2Constant visible C2048d Forth 18xxx2
( -- w ) [ 206, 22] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
2048
20d 2Constant visible C20d Forth 18xxx2
( -- w ) [ 194, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
20
256d 2Constant visible C256d Forth 18xxx2
( -- w ) [ 202, 23] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
256
2a- Macro immediate visible C2a2D Forth 18xxx2
( wRamAddr -- wRamAddr ) [ 3523, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                    ; // 2a- ( w1 -- w2 )
    decf    indf0, f
    decf    indf0, f
2a+ Macro immediate used visible C2a2B Forth 18xxx2
( wRamAddr -- wRamAddr ) [ 3475, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
q! ]   [ q@ ]   [ t! ]   [ t@ ]  
Documentation
Value
                                    ; // 2a+ ( w1 -- w2 )
    incf    indf0, f
    incf    indf0, f
2Constant Pascal visible C2Constant Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a 2 byte constant :: 1234 2Constant Joop
Value
2d 2Constant visible C2d Forth 18xxx2
( -- w ) [ 189, 25] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
2
2drop Pascal immediate visible C2drop Forth
( n1 n2 -- ) [ 0, 1] ""
Uses
Used in
Documentation
Drop the top two stack elements
Value
2dup Pascal immediate visible C2dup Forth
( n1 n2 -- n1 n2 n1 n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Duplicate the top two stack elements
Value
2Field Pascal visible C2Field Forth
( n m -- n+m ) [ 0, 1] ""
Uses
Used in
Documentation
Defines a 2field in a structure, see Struct
Value
2over Pascal immediate visible C2over Forth
( n1 n2 n3 n4 -- n1 n2 n3 n4 n1 n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Duplicate the seconds set of two stack elements
Value
2Pick Primitive visible C2Pick Forth 18xxx2
( b0 b1 b3 -- b0 b1 b2 b0 ) [ 5622, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Copy 3rd stack entry to top
Value
  ; // Push 3rd entry

    PushNothing                 ; // Make room on stack
    movlw   -D'2'               ; // negated offset
    movf    plusw0, w           ; // w = offset of reqd. byte,
    return                      ; //     0th byte references TOS
2q@ Colon visible C2q40 Forth 18xxx2
( wRamAddress -- q q ) [ 5057, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(dup) ]   [ (semi) ]   [ 4a+ ]   [ q@ ]   [ RamPtr! ]   [ RamPtr@ ]  
Used in
Documentation
Value
00165 | (dup)                                        | ( b -- b b ) ( )
00166 | RamPtr!                                      | ( wRamAddress -- )
00167 | q@                                           | ( wRamAddress -- q ) [153]
00168 | RamPtr@                                      | ( -- wRamAddress )
00169 | 4a+                                          | ( w1 -- w2 )
00170 | q@                                           | ( wRamAddress -- q ) [153]
00171 | (semi)                                       | ( -- ) ( )
2swap Pascal immediate visible C2swap Forth
( n1 n2 n3 n4 -- n3 n4 n1 n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Exchange the top two sets of two stack items
Value
2Variable Pascal visible C2Variable Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a 2 byte variable :: 2Variable Truus
Value
3- Macro immediate visible C32D Forth 18xxx2
( b -- b ) [ 4456, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'253'                  ; // 3- ( u1 -- u2 )
3* Primitive visible C32A Forth 18xxx2
( u1 -- u2 ) [ 5253, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    movwf   tmp1
    rlcf    wreg, f
    andlw   0xfe
    addwf   tmp1, w
    return
3+ Macro immediate visible C32B Forth 18xxx2
( b -- b ) [ 4379, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'3'                    ; // 3+ ( u1 -- u2 )
30d 2Constant visible C30d Forth 18xxx2
( -- w ) [ 195, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
30
32* Primitive visible C322A Forth 18xxx2
( u1 -- u2 ) [ 5296, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    swapf   wreg, f
    rlcf    wreg, f
    andlw   0xe0

    return
32/ Primitive visible C322F Forth 18xxx2
( u1 -- u2 ) [ 5208, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    swapf   wreg, f
    rrcf    wreg, f
    andlw   0x07

    return
32768d 2Constant visible C32768d Forth 18xxx2
( -- w ) [ 211, 21] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
32768
32d 2Constant visible C32d Forth 18xxx2
( -- w ) [ 196, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
32
3a- Primitive visible C3a2D Forth 18xxx2
( w1 -- w2 ) [ 3532, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    decf    indf0, f
    decf    indf0, f
    decf    indf0, f
    return
3a+ Primitive visible C3a2B Forth 18xxx2
( w1 -- w2 ) [ 3484, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    incf    indf0, f
    incf    indf0, f
    incf    indf0, f
    return
3Constant Pascal visible C3Constant Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a 3 byte constant :: 123456 3Constant Joop
Value
3Drop Colon visible C3Drop Forth 18xxx2
( t -- ) [ 3623, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(2drop) ]   [ (drop) ]   [ (semi) ]  
Used in
q-$80And>r3Dropr> ]  
Documentation
Value
00030 | (drop)                                       | ( b -- ) ( )
00031 | (2drop)                                      | ( w -- ) ( )
00032 | (semi)                                       | ( -- ) ( )
3Pick Primitive visible C3Pick Forth 18xxx2
( b0 b1 b2 b4 -- b0 b1 b2 b4 b0 ) [ 5634, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Copy 4th stack entry to top
Value
  ; // Push 4th entry

    PushNothing                 ; // Make room on stack
    movlw   -D'3'               ; // negated offset
    movf    plusw0, w           ; // w = offset of reqd. byte,
    return                      ; //     0th byte references TOS
3Variable Pascal visible C3Variable Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a 3 byte variable :: 3Variable Truus
Value
4- Macro immediate visible C42D Forth 18xxx2
( b -- b ) [ 4463, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'252'                  ; // 4- ( u1 -- u2 )
4* Primitive visible C42A Forth 18xxx2
( u1 -- u2 ) [ 5264, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    rlcf    wreg, f
    rlcf    wreg, f
    andlw   0xfc

    return
4/ Primitive visible C42F Forth 18xxx2
( u1 -- u2 ) [ 5176, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    rrcf    wreg, f
    rrcf    wreg, f
    andlw   0x3f

    return
4+ Macro immediate visible C42B Forth 18xxx2
( b -- b ) [ 4386, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'4'                    ; // 4+ ( u1 -- u2 )
4096d 2Constant visible C4096d Forth 18xxx2
( -- w ) [ 207, 22] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
4096
40d 2Constant visible C40d Forth 18xxx2
( -- w ) [ 197, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
40
4a- Primitive visible C4a2D Forth 18xxx2
( w1 -- w2 ) [ 3542, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    decf    indf0, f
    decf    indf0, f
    decf    indf0, f
    decf    indf0, f
    return
4a+ Primitive visible C4a2B Forth 18xxx2
( w1 -- w2 ) [ 3494, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
2q@ ]  
Documentation
Value
    incf    indf0, f
    incf    indf0, f
    incf    indf0, f
    incf    indf0, f
    return
4Constant Pascal visible C4Constant Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a 4 byte constant :: 12345678 4Constant Joop
Value
4d 2Constant visible C4d Forth 18xxx2
( -- w ) [ 190, 25] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
4
4Drop Colon visible C4Drop Forth 18xxx2
( q -- ) [ 3631, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(2drop) ]   [ (semi) ]  
Used in
/32 ]   [ qAnd ]   [ qOr ]   [ qXor ]  
Documentation
Value
00033 | (2drop)                                      | ( w -- ) ( )
00034 | (2drop)                                      | ( w -- ) ( )
00035 | (semi)                                       | ( -- ) ( )
4Dup Colon visible C4Dup Forth 18xxx2
( q -- q q ) [ 3639, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(2Over) ]   [ (semi) ]  
Used in
Documentation
Value
00036 | (2Over)                                      | ( w1 w2 -- w1 w2 w1 )
00037 | (2Over)                                      | ( w1 w2 -- w1 w2 w1 )
00038 | (semi)                                       | ( -- ) ( )
4over Colon visible C4over Forth 18xxx2
( q1 q2 -- q1 q2 q1 ) [ 4254, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Popq1 ]   [ Popq2 ]   [ Pushq1 ]   [ Pushq2 ]  
Used in
Documentation
Value
00089 | Popq2                                        | ( q -- )
00090 | Popq1                                        | ( q -- )
00091 | Pushq1                                       | ( -- q )
00092 | Pushq2                                       | ( -- q )
00093 | Pushq1                                       | ( -- q )
00094 | (semi)                                       | ( -- ) ( )
4Pick Primitive visible C4Pick Forth 18xxx2
( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 b4 b0 ) [ 5646, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
4pickAnd>r ]   [ 4pickOr>r ]   [ 4pickXor>r ]  
Documentation
Copy 5th stack entry to top
Value
  ; // Push 5th entry

    PushNothing                 ; // Make room on stack
    movlw   -D'4'               ; // negated offset
    movf    plusw0, w           ; // w = offset of reqd. byte,
    return                      ; //     0th byte references TOS
4pickAnd>r Colon visible C4pickAnd3Er Forth 18xxx2
( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) [ 5658, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(>R) ]   [ (and) ]   [ (semi) ]   [ 4Pick ]  
Used in
qAnd ]  
Documentation
Helper for quad operations
Value
00294 | 4Pick                                        | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 b4 b0 ) Copy 5th stack entry to top
00295 | (and)                                        | ( u1 u2 -- u3 ) ( )
00296 | (>R)                                         | ( b -- ) [ -- b ]
00297 | (semi)                                       | ( -- ) ( )
4pickOr>r Colon visible C4pickOr3Er Forth 18xxx2
( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) [ 5664, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(>R) ]   [ (or) ]   [ (semi) ]   [ 4Pick ]  
Used in
qOr ]  
Documentation
Helper for quad operations
Value
00298 | 4Pick                                        | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 b4 b0 ) Copy 5th stack entry to top
00299 | (or)                                         | ( u1 u2 -- u3 ) ( )
00300 | (>R)                                         | ( b -- ) [ -- b ]
00301 | (semi)                                       | ( -- ) ( )
4pickXor>r Colon visible C4pickXor3Er Forth 18xxx2
( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) [ 5670, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(>R) ]   [ (semi) ]   [ (xor) ]   [ 4Pick ]  
Used in
qXor ]  
Documentation
Helper for quad operations
Value
00302 | 4Pick                                        | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 b4 b0 ) Copy 5th stack entry to top
00303 | (xor)                                        | ( u1 u2 -- u3 ) ( )
00304 | (>R)                                         | ( b -- ) [ -- b ]
00305 | (semi)                                       | ( -- ) ( )
4rot Colon visible C4rot Forth 18xxx2
( q1 q2 q3 -- q2 q3 q1 ) [ 4240, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Popq1 ]   [ Popq2 ]   [ Popq3 ]   [ Pushq1 ]   [ Pushq2 ]   [ Pushq3 ]  
Used in
Documentation
Value
00082 | Popq3                                        | ( q -- )
00083 | Popq2                                        | ( q -- )
00084 | Popq1                                        | ( q -- )
00085 | Pushq2                                       | ( -- q )
00086 | Pushq3                                       | ( -- q )
00087 | Pushq1                                       | ( -- q )
00088 | (semi)                                       | ( -- ) ( )
4swap Colon visible C4swap Forth 18xxx2
( q1 q2 -- q2 q1 ) [ 4266, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Popq1 ]   [ Popq2 ]   [ Pushq1 ]   [ Pushq2 ]  
Used in
q<= ]   [ q> ]  
Documentation
Value
00095 | Popq2                                        | ( q -- )
00096 | Popq1                                        | ( q -- )
00097 | Pushq2                                       | ( -- q )
00098 | Pushq1                                       | ( -- q )
00099 | (semi)                                       | ( -- ) ( )
4Variable Pascal visible C4Variable Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a 4 byte variable :: 4Variable Truus
Value
5- Macro immediate visible C52D Forth 18xxx2
( b -- b ) [ 4470, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'251'                  ; // 5- ( u1 -- u2 )
5+ Macro immediate visible C52B Forth 18xxx2
( b -- b ) [ 4393, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'5'                    ; // 5+ ( u1 -- u2 )
50d 2Constant visible C50d Forth 18xxx2
( -- w ) [ 198, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
50
512d 2Constant visible C512d Forth 18xxx2
( -- w ) [ 203, 23] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
512
6- Macro immediate visible C62D Forth 18xxx2
( b -- b ) [ 4477, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'250'                  ; // 6- ( u1 -- u2 )
6+ Macro immediate visible C62B Forth 18xxx2
( b -- b ) [ 4400, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'6'                    ; // 6+ ( u1 -- u2 )
64* Primitive visible C642A Forth 18xxx2
( u1 -- u2 ) [ 5307, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    swapf   wreg, f
    rlcf    wreg, f
    rlcf    wreg, f
    andlw   0xc0

    return
64/ Primitive visible C642F Forth 18xxx2
( u1 -- u2 ) [ 5219, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    swapf   wreg, f
    rrcf    wreg, f
    rrcf    wreg, f
    andlw   0x03

    return
64d 2Constant visible C64d Forth 18xxx2
( -- w ) [ 199, 24] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
64
65535d 2Constant visible C65535d Forth 18xxx2
( -- w ) [ 212, 21] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
65535
7- Macro immediate visible C72D Forth 18xxx2
( b -- b ) [ 4484, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'249'                  ; // 7- ( u1 -- u2 )
7+ Macro immediate visible C72B Forth 18xxx2
( b -- b ) [ 4407, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'7'                    ; // 7+ ( u1 -- u2 )
8- Macro immediate visible C82D Forth 18xxx2
( b -- b ) [ 4491, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'248'                  ; // 8- ( u1 -- u2 )
8* Primitive visible C82A Forth 18xxx2
( u1 -- u2 ) [ 5275, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    rlcf    wreg, f
    rlcf    wreg, f
    rlcf    wreg, f
    andlw   0xf8

    return
8/ Primitive visible C82F Forth 18xxx2
( u1 -- u2 ) [ 5187, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    rrcf    wreg, f
    rrcf    wreg, f
    rrcf    wreg, f
    andlw   0x1f

    return
8+ Macro immediate visible C82B Forth 18xxx2
( b -- b ) [ 4414, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'8'                    ; // 8+ ( u1 -- u2 )
8192d 2Constant visible C8192d Forth 18xxx2
( -- w ) [ 208, 22] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
8192
8d 2Constant visible C8d Forth 18xxx2
( -- w ) [ 191, 25] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
8
9- Macro immediate visible C92D Forth 18xxx2
( b -- b ) [ 4498, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'247'                  ; // 9- ( u1 -- u2 )
9+ Macro immediate visible C92B Forth 18xxx2
( b -- b ) [ 4421, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    addlw   D'9'                    ; // 9+ ( u1 -- u2 )
a- Primitive visible Ca2D Forth 18xxx2
( w1 u -- w2 ) [ 3505, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    decf    fsr0l, f
    subwf   postinc0, f
    Drop
    return
a+ Primitive visible Ca2B Forth 18xxx2
( w1 u -- w2 ) [ 3457, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@a+ ]   [ a+! ]   [ a+@ ]  
Documentation
Value
    decf    fsr0l, f
    addwf   postinc0, f
    Drop
    return
a+! Colon visible Ca2B21 Forth 18xxx2
( b wAdr u -- ) [ 3586, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(!) ]   [ (semi) ]   [ a+ ]  
Used in
@a+! ]  
Documentation
Value
00021 | a+                                           | ( w1 u -- w2 )
00022 | (!)                                          | ( b wRamAddress -- ) [Store]
00023 | (semi)                                       | ( -- ) ( )
a+@ Colon visible Ca2B40 Forth 18xxx2
( wAdr u -- b ) [ 3566, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ a+ ]  
Used in
@a+@ ]   [ []Ram@ ]  
Documentation
Value
00015 | a+                                           | ( w1 u -- w2 )
00016 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00017 | (semi)                                       | ( -- ) ( )
abs Pascal immediate visible Cabs Forth
( n1 -- n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Get the absolute value of the top stack element
Value
AddCallDepth Pascal visible CAddCallDepth Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Helper word to better see true call depths
Value
AddDoc Pascal visible CAddDoc Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Use as " aName=aValue" AddDoc, is used in documentation output
Value
AddDoc' Pascal visible CAddDoc27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Use as AddDoc' aName=aValue', is used in documentation output
Value
AddToSearchPath Pascal visible CAddToSearchPath Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Add text on stack to file search path
Value
AddToSearchPathQuote Pascal visible CAddToSearchPathQuote Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Add text on stack to file search path
Value
AdminStart 2Constant used visible CAdminStart Forth 18xxx2
( -- w ) [ 125, 14] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Initialization ]  
Documentation
Value
512
aDrop Alias visible CaDrop Forth 18xxx2
( w -- ) [ 3603, 15] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(2drop) ]  
Used in
Documentation
Value
(2drop)
aDup Alias visible CaDup Forth 18xxx2
( w -- w w ) [ 3604, 15] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(2dup) ]  
Used in
@0! ]   [ @ff! ]   [ adup@ ]   [ q@ ]   [ t@ ]  
Documentation
Value
(2dup)
adup@ Colon visible Cadup40 Forth 18xxx2
( wAdr -- wAdr u ) [ 3613, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ aDup ]  
Used in
@Compare! ]  
Documentation
Value
00027 | aDup                                         | ( w -- w w ) [9]
00028 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00029 | (semi)                                       | ( -- ) ( )
Again Pascal immediate visible CAgain Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Begin .. Again
Value
Alias Pascal visible CAlias Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Defines an alias for a 4th word
Value
Allot Pascal visible CAllot Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Allot's in meta data space
Value
Also Pascal visible CAlso Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Dupe top of search list
Value
and Pascal immediate visible Cand Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
bitwise and
Value
And! Primitive visible CAnd21 Forth 18xxx2
( b wRamAddress -- ) [ 3887, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    andwf   indf2
    Drop
    return
aOver Alias visible CaOver Forth 18xxx2
( w1 w2 -- w1 w2 w1 ) [ 3605, 15] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(2Over) ]  
Used in
q! ]  
Documentation
Value
(2Over)
Array Pascal visible CArray Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define an array :: 7 Array Data
Value
AsmConfig Macro immediate used visible CAsmConfig Forth 18xxx2
( -- ) [ 1546, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
  ; // Set initial error level 0 == all eerors and warnings active
  errorlevel  $errorLevel$

  ; // Set number of lines per page, 0 == all lines on one page
  LIST        n=$LinesPerPage$

  ; // Set the assembler default radix HEX or DEC
  RADIX       $Radix$

  ; // Expand macro listings
  EXPAND

  ; // Eject a page now
  PAGE

  ; // Define processor to be used and include the processor specifics

#ifdef _18c242_
  PROCESSOR   18c242
  #include    ".\lib\18c242.inc"
#endif
#ifdef _18c252_
  PROCESSOR   18c252
  #include    ".\lib\18c252.inc"
#endif
#ifdef _18c442_
  PROCESSOR   18c442
  #include    ".\lib\18c442.inc"
#endif
#ifdef _18c452_
  PROCESSOR   18c452
  #include    ".\lib\18c452.inc"
#endif
#ifdef _18f242_
  PROCESSOR   18f242
  #include    ".\lib\18f242.inc"
#endif
#ifdef _18f252_
  PROCESSOR   18f252
  #include    ".\lib\18f252.inc"
#endif
#ifdef _18f442_
  PROCESSOR   18f442
  #include    ".\lib\18f442.inc"
#endif
#ifdef _18f452_
  PROCESSOR   18f452
  #include    ".\lib\18f452.inc"
#endif

aSwap Alias visible CaSwap Forth 18xxx2
( w1 w2 -- w2 w1 ) [ 3606, 15] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
dSwap ]  
Used in
Documentation
Value
dSwap
Base! Pascal visible CBase21 Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Base !
Value
Base@ Pascal visible CBase40 Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Base @
Value
Begin Pascal immediate visible CBegin Forth
( -- <string-token> n ) [ 0, 1] ""
Uses
Used in
Documentation
Begin .. Again, Begin .. 0 Until, Begin .. (f) While .. Repeat.
Value
Binary Pascal visible CBinary Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
&2  Base !
Value
bl Alias visible Cbl Forth 18xxx2
( -- b ) [ 3608, 15] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(Space) ]  
Used in
Documentation
Value
(Space)
branch Pascal visible Cbranch Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
, unconditional branch
Value
BreakPoint Macro immediate visible CBreakPoint Forth 18xxx2
( -- ) [ 3334, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    nop       ; BREAKPOINT $aMsg$
BSRTmp Variable used visible CBSRTmp Forth 18xxx2
( -- wRamAddr ) [ 235, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Initialization ]  
Documentation
Temporary for BSR
Value
address: 0:132, offset: 0, size: 1
Build Colon visible meta CBuild Forth 18xxx2
( -- ) [ 5764, 4] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
; ]   [ FillUpWithRandom ]   [ Finalization ]   [ GenerateCode ]   [ Initialization ]  
Used in
Documentation
Value
00336 | Initialization                               | ( -- ) ( )
00337 | GenerateCode                                 | ( -- ) Generate the output file
00338 | FillUpWithRandom                             | ( -- ) ( )
00339 | Finalization                                 | ( -- ) ( )
00340 | ;                                            | ( -- ) End a colon definition  name ... ;
c> Pascal visible Cc3E Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Move n from control stack to data stack, see >c
Value
Case Pascal immediate visible CCase Forth
( -- 4 0 ) [ 0, 1] ""
Uses
Used in
Documentation
( n ) Case .. Of .. EndOf .. Default .. EndCase
Value
Catch Pascal immediate visible CCatch Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Try .. catch .. EndTry
Value
ClearBreak Pascal visible CClearBreak Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Pascal un-break (for compiler debuging)
Value
ClearSearchPath Pascal visible CClearSearchPath Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Clear the file search path
Value
ClrWDT Macro immediate visible CClrWDT Forth 18xxx2
( -- ) [ 3348, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    clrwdt                          ; // ClrWDT ( -- )
Code Pascal visible CCode Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Start a code definition, ended with EndCodce
Value
CodeLibrary Pascal visible CCodeLibrary Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Include a code library from the lib directory
Value
CodeLibrary' Pascal visible CCodeLibrary27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Include a code library from the lib directory
Value
CodeSize! Pascal visible CCodeSize21 Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Specify a code size for a target code or macro word
Value
CommentSymbol' Pascal visible CCommentSymbol27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define the comment symbol for the output file
Value
Compile Pascal visible CCompile Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Compile next inline token, also see [Compile]
Value
Compiler Vocabulary visible CCompiler Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Value
(semi)
CompileTime Pascal immediate visible CCompileTime Forth
( -- n ) [ 0, 1] ""
Uses
Used in
.CompileTime ]  
Documentation
Get compilation start date/time as Unix time - pseudo constant
Value
Config Macro immediate visible CConfig Forth 18xxx2
( -- ) [ 1674, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Processor configuration word
Value
  CONFIG    $aValue$
  <!
    #defined AddConfigToDocs
    #if
      AddConfigToDocs 0 = not
      #if
        AddDoc' config $aValue$'
      #endIf
    #endIf
  >
Constant Pascal visible CConstant Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a constant :: 12 Constant Joop
Value
cr Pascal visible Ccr Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
type a crlf to the outputfile, also see "cr.
Value
Create Pascal visible CCreate Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
: joop create ... Does> ... ;
Value
d- Primitive visible Cd2D Forth 18xxx2
( wu1 wu2 -- wu3 ) [ 4350, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
1d- ]   [ sd< ]   [ sp-! ]  
Documentation
Value
    PopReg  tmp1                    ; // Pop hi2 into tmp1, leaving lo2 in wreg
    decf    fsr0l                   ; // point to lo1
    subwf   postinc0                ; // Sub lo bytes (lo3), point to hi1
    movf    tmp1, w                 ; // get hi2
    subwfb  postdec0, w             ; // Sub hi bytes into w, point to lo3
    return
d! Primitive visible Cd21 Forth 18xxx2
( w wRamAddress -- ) [ 3875, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
q! ]   [ spSave! ]   [ t! ]  
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    PopReg  tmp1
    PopReg  postinc2
    movff   tmp1, indf2
    return
d* Primitive visible Cd2A Forth 18xxx2
( u1 u2 -- w ) [ 4664, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
8*8->16
Value
    PopReg  tmp1
    mulwf   tmp1
    movf    prodl, w
    PushReg prodh

    return
d@ Primitive visible Cd40 Forth 18xxx2
( wRamAddress -- w ) [ 3385, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
q@ ]   [ spSave@ ]   [ t@ ]  
Documentation
[DFetch]
Value
    PopReg  fsr2h                   ; // Get bank selector into fsr2h
    PopReg  fsr2l
    PushReg postinc2
    PushReg indf2
    return
d+ Primitive visible Cd2B Forth 18xxx2
( wu1 wu2 -- wu3 ) [ 4337, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(>2field) ]   [ (s>2field) ]   [ (s>field) ]   [ 1d+ ]   [ sp+! ]  
Documentation
Value
    PopReg  tmp1                    ; // Pop hi2 into tmp1, leaving lo2 in wreg
    decf    fsr0l                   ; // point to lo1
    addwf   postinc0                ; // Add lo bytes (lo3), point to hi1
    movf    tmp1, w                 ; // get hi2
    addwfc  postdec0, w             ; // Add hi bytes into w, point to lo3
    return
d< Primitive visible Cd3C Forth 18xxx2
( wu1 wu2 -- f ) [ 4551, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
d>= ]  
Documentation
Value
                                    ; // Return True if N1 (u1,u2) < N2 (u3,u4)   (or N2 > N1)
    PopReg  tmp3
    PopReg  tmp4
    PopReg  tmp1
    movwf   tmp2

    cpfslt16  tmp2, tmp4
    retlw   False
    retlw   True
d<= Colon visible Cd3C3D Forth 18xxx2
( w1 w2 -- f ) [ 5457, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(not) ]   [ (semi) ]   [ d> ]  
Used in
Documentation
Value
00250 | d>                                           | ( wu1 wu2 -- f )
00251 | (not)                                        | ( b -- b ) ( )
00252 | (semi)                                       | ( -- ) ( )
d= Primitive visible Cd3D Forth 18xxx2
( w1 w2 -- f ) [ 4519, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
-1d= ]   [ sp? ]  
Documentation
Value
    PopReg  tmp1                    ; // u4
    PopReg  tmp2                    ; // u3
    PopReg  tmp3                    ; // u2

    cpfseq  tmp2
    retlw   False

    movf    tmp3, w
    cpfseq  tmp1
    retlw   False
    retlw   True
d> Primitive visible Cd3E Forth 18xxx2
( wu1 wu2 -- f ) [ 4536, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
d<= ]   [ d0> ]  
Documentation
Value
                                    ; // Return True if N1 (u1,u2) > N2 (u3,u4)   (or N2 < N1)
    PopReg  tmp3                    ; // Pop N2
    PopReg  tmp4
    PopReg  tmp1                    ; // Pop N1
    movwf   tmp2

    cpfslt16  tmp4, tmp2            ; // S/     N2 < N1
    retlw   False                   ; // Assumptionwrong, return false
    retlw   True
d>= Colon visible Cd3E3D Forth 18xxx2
( w1 w2 -- f ) [ 5450, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(not) ]   [ (semi) ]   [ d< ]  
Used in
Documentation
Value
00247 | d<                                           | ( wu1 wu2 -- f )
00248 | (not)                                        | ( b -- b ) ( )
00249 | (semi)                                       | ( -- ) ( )
d>q Primitive visible Cd3Eq Forth 18xxx2
( w -- q ) [ 4651, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
with sign extension
Value
    PushLit D'0'
    btfsc   indf0, 7
    movlw   D'255'
    PushLit D'0'
    btfsc   indf0, 7
    movlw   D'255'
    return
d>r Colon visible Cd3Er Forth 18xxx2
( d -- ) [ 4132, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(>R) ]   [ (semi) ]   [ (swap) ]  
Used in
q>r ]  
Documentation
Value
00066 | (swap)                                       | ( b1 b2 -- b2 b1 )
00067 | (>R)                                         | ( b -- ) [ -- b ]
00068 | (>R)                                         | ( b -- ) [ -- b ]
00069 | (semi)                                       | ( -- ) ( )
d0 Colon visible Cd0 Forth 18xxx2
( -- w ) [ 4993, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(dlit) ]   [ (semi) ]  
Used in
d0> ]  
Documentation
Value
00124 | (dlit)                                       | ( -- w ) ( Arg Sign )
00125 |                                              |  [0]
00126 |                                              |  []
00127 | (semi)                                       | ( -- ) ( )
d0< Colon visible Cd03C Forth 18xxx2
( d -- f ) [ 5464, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(and) ]   [ (lit) ]   [ (semi) ]   [ 0<> ]   [ SwapDrop ]  
Used in
Documentation
Value
00253 | SwapDrop                                     | ( b b -- b ) ( )
00254 | (lit)                                        | ( -- b ) ( Arg Sign )
00255 |                                              |  [128]
00256 |                                              |  []
00257 | (and)                                        | ( u1 u2 -- u3 ) ( )
00258 | 0<>                                          | ( b -- f )
00259 | (semi)                                       | ( -- ) ( )
d0= Colon visible Cd03D Forth 18xxx2
( w -- f ) [ 5007, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(or) ]   [ (semi) ]   [ 0= ]  
Used in
Documentation
Value
00131 | (or)                                         | ( u1 u2 -- u3 ) ( )
00132 | 0=                                           | ( b -- f )
00133 | (semi)                                       | ( -- ) ( )
d0> Colon visible Cd03E Forth 18xxx2
( w -- f ) [ 5000, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ d> ]   [ d0 ]  
Used in
Documentation
Value
00128 | d0                                           | ( -- w ) [124]
00129 | d>                                           | ( wu1 wu2 -- f )
00130 | (semi)                                       | ( -- ) ( )
dabs Primitive visible Cdabs Forth 18xxx2
( d -- ud ) [ 3396, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    ; // 16 bits Abs

    btfss   wreg, 7
    bra     dabs_done

	  comf    indf0, f
	  incf    indf0, f
	  btfsc   Status, z
	  decf    wreg, f
	  comf    wreg, f

dabs_done

    Return
Data Pascal visible CData Forth
( string-token -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a data constant XXXX, also see String. RawData, " and ''
Value
Decimal Pascal visible CDecimal Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
&10 Base !
Value
Default Pascal immediate visible CDefault Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
( n ) Case .. Of .. EndOf .. default .. EndCase
Value
Defer Pascal visible CDefer Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Defer XXXX
Value
Definitions Pascal visible CDefinitions Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
To set the current compile voc
Value
Deprecated Pascal visible CDeprecated Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Set the deprecated bit for the last defined word
Value
Disable Macro immediate used visible CDisable Forth 18xxx2
( -- ) [ 3369, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@0! ]   [ @ff! ]  
Documentation
Value
                                    ; // Disable ( -- ), disable interrupts
    Disable
Divisor 4Variable visible CDivisor Forth 18xxx2
( -- wRamAddr ) [ 244, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(/Mod) ]   [ *_8_32 ]   [ /mod16 ]   [ /mod32 ]   [ q* ]  
Documentation
Division divisor   input  variable, and General Purpose
Value
address: 0:145, offset: 0, size: 4
DLiteral Pascal immediate visible CDLiteral Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Compile TOS as a double  byte literal
Value
dNegative? Primitive visible CdNegative3F Forth 18xxx2
( d -- f ) [ 3425, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Negative? ]  
Used in
qNegative? ]   [ sd< ]  
Documentation
Value
    SwapDrop
    bra     <@" Negative?">
Do Pascal immediate visible CDo Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
n1 n2 Do .. Leave .. Loop or n +Loop
Value
Does> Pascal immediate visible CDoes3E Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
, see Create
Value
done' Pascal immediate visible Cdone27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate a runtime done msg with inline specified text.
Value
dr> Colon visible Cdr3E Forth 18xxx2
( d -- ) [ 4140, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(R>) ]   [ (semi) ]   [ (swap) ]  
Used in
qr> ]  
Documentation
Value
00070 | (R>)                                         | ( -- b ) [ b -- ]
00071 | (R>)                                         | ( -- b ) [ b -- ]
00072 | (swap)                                       | ( b1 b2 -- b2 b1 )
00073 | (semi)                                       | ( -- ) ( )
drop Pascal immediate visible Cdrop Forth
( n1 -- ) [ 0, 1] ""
Uses
Used in
Documentation
drop top stack element
Value
DropFalse Macro immediate visible CDropFalse Forth 18xxx2
( b -- f ) [ 5120, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    movlw   False                   ; // Drop False ( b -- f )
DropTrue Macro immediate visible CDropTrue Forth 18xxx2
( b -- f ) [ 5113, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    movlw   True                    ; // Drop True ( b -- f )
DropVocabulary Pascal visible CDropVocabulary Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Removes top of search order
Value
dSwap Primitive visible CdSwap Forth 18xxx2
( w1 w2 -- w2 w1 ) [ 3440, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(2Swap) ]   [ aSwap ]   [ q! ]   [ q@ ]   [ q>r ]   [ qr> ]   [ sd> ]   [ t@ ]  
Documentation
Value
    PopReg  tmp4
    PopReg  tmp3
    PopReg  tmp2
    PopReg  tmp1

    PushReg tmp3
    PushReg tmp4
    PushReg tmp1
    PushReg tmp2

    return
dup Pascal immediate visible Cdup Forth
( n1 -- n1 n1 ) [ 0, 1] ""
Uses
Used in
Documentation
duplicate top stack element
Value
Dup! Primitive visible CDup21 Forth 18xxx2
( b wRamAddress -- b ) [ 3920, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    movwf   indf2
    return
Else Pascal immediate visible CElse Forth
( n -- n ) [ 0, 1] ""
Uses
Used in
Documentation
n If .. Else .. Then or EndIf
Value
Enable Macro immediate used visible CEnable Forth 18xxx2
( -- ) [ 3377, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@0! ]   [ @ff! ]  
Documentation
Value
                                    ; // Enable ( -- ) // enable interrupts
    Enable
EndCase Pascal immediate visible CEndCase Forth
( n0 n1 .. nn-1 0 4 -- ) [ 0, 1] ""
Uses
Used in
Documentation
( n ) Case .. Of .. EndOf .. Default .. endCase
Value
EndCode Pascal visible CEndCode Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
End a Code definition
Value
EndEnum Pascal visible CEndEnum Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Ends Enum and InitEnum
Value
EndGroup Pascal visible CEndGroup Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
End memory grouping
Value
EndIf Pascal immediate visible CEndIf Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n If .. Else .. Then or endIf
Value
EndMacro Pascal visible CEndMacro Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
End a Macro definition to be ended with EndMacro
Value
EndModule Pascal visible CEndModule Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Module end   tag, Module Private Public Uses Export EndModule
Value
EndOf Pascal immediate visible CEndOf Forth
( n1 5 -- n1 n2 ) [ 0, 1] ""
Uses
Used in
Documentation
( n ) Case .. Of .. endOf .. Default .. EndCase
Value
EndStruct Pascal visible CEndStruct Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
End structure offset defs, see Struct
Value
EndTry Pascal immediate visible CEndTry Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Try .. Except, Catch or Finally .. endTry
Value
Enum Pascal visible CEnum Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Enum x y z EndEnum, start eneumeration at 0. See InitEnum
Value
Evaluate Pascal visible CEvaluate Forth
( <strinbg-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
evaluate string token as 4th code
Value
Except Pascal immediate visible CExcept Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Try .. except .. EndTry
Value
Execute Pascal visible CExecute Forth
( -- exec-token ) [ 0, 1] ""
Uses
Used in
Documentation
execute exec-token
Value
Exit Pascal immediate visible CExit Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Immediately leave the current colon word returning to the caller
Value
Export Pascal visible CExport Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Find/remove word from Context and link into Current, Module Private Public Uses Export EndModule
Value
ExtendStruct Pascal visible CExtendStruct Forth
( n -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Extend structure offsets, see Struct
Value
False Pascal immediate visible CFalse Forth
( -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Push boolean false
Value
False! Primitive visible CFalse21 Forth 18xxx2
( wRamAddress -- ) [ 3942, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
0! ]  
Documentation
Value
    PopReg  fsr2h
    movwf   fsr2l
    movlw   False
    movwf   indf2
    Drop
    return
FalseFalse 2Constant visible CFalseFalse Forth 18xxx2
( -- w ) [ 219, 17] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
0
FalseTrue 2Constant visible CFalseTrue Forth 18xxx2
( -- w ) [ 217, 18] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
65280
FbDecimation Pascal visible CFbDecimation Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n FbFecimation, feedback decimation
Value
ff! Alias visible Cff21 Forth 18xxx2
( wRamAddress -- ) [ 3955, 11] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
True! ]  
Used in
@ff! ]  
Documentation
Value
True!
ffffd 2Constant visible Cffffd Forth 18xxx2
( -- w ) [ 214, 22] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
65535
Field Pascal visible CField Forth
( n m -- n+m ) [ 0, 1] ""
Uses
Used in
Documentation
Defines a field in a structure, see Struct
Value
FillUpWithRandom Macro immediate used visible CFillUpWithRandom Forth 18xxx2
( -- ) [ 5736, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
FlashPageSize ]  
Used in
Build ]  
Documentation
Value
; // Fill out program space with random numbers until
; // a modulo <@" FlashPageSize"> boundary is hit.

    variable Seed = 12345

Random macro
Seed = ( Seed * 1103515245) + 12345
      dw    ( Seed >> 5) & 0xffff
  endm

  while $ % <@" FlashPageSize"> != 0
    Random
  endw

Finalization Macro immediate used visible CFinalization Forth 18xxx2
( -- ) [ 329, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Build ]  
Documentation
Value
; // ;;;;;;;;;;;;;;;;;;;; Finalization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    End

Finally Pascal immediate visible CFinally Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Try .. finally .. EndTry
Value
FlashPageSize Constant used visible CFlashPageSize Forth 18xxx2
( -- b ) [ 124, 14] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
FillUpWithRandom ]  
Documentation
Value
64
ForceRomBank Pascal visible CForceRomBank Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n ForceRomBank :: selects rom bank n
Value
Forth Vocabulary visible CForth Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Value
18xxx2
FlashPageSize
AdminStart
StatusTmp
PCHTmp
FSRTmpL
FSRTmpH
BSRTmp
RamPtr
Quotient
Finalization
Initialization
AsmConfig
HexFormat
Title
Disable
Enable
2a+
RamPtr++
RamPtr--
u>ud
SwapDrop
FillUpWithRandom
main
FSRTmpH Variable used visible CFSRTmpH Forth 18xxx2
( -- wRamAddr ) [ 234, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Initialization ]  
Documentation
Temporary for FSR0H
Value
address: 0:131, offset: 0, size: 1
FSRTmpL Variable used visible CFSRTmpL Forth 18xxx2
( -- wRamAddr ) [ 233, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Initialization ]  
Documentation
Temporary for FSR0L
Value
address: 0:130, offset: 0, size: 1
GenerateCode Pascal visible CGenerateCode Forth
( -- ) [ 0, 1] ""
Uses
Used in
Build ]  
Documentation
Generate the output file
Value
GenerateDebug Pascal visible CGenerateDebug Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Include some debug stuff in the output file
Value
Group Pascal visible CGroup Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Start memory grouping for the allocations that follow
Value
Here Pascal visible CHere Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Location in meta data space
Value
Hex Pascal visible CHex Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
&16 Base !
Value
HexFormat Macro immediate used visible CHexFormat Forth 18xxx2
( -- ) [ 1650, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Control the default assembler radix
Value
  LIST        F=$aFormat$
Hide Pascal visible CHide Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Clear the visible bit for the last defined word
Value
I Pascal immediate visible CI Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Get inner most Loop index
Value
IdLoc Macro immediate visible CIdLoc Forth 18xxx2
( -- ) [ 1690, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Processor ID location byte
Value
  __IDLOCS    _IDLOC$aNum$, $aParams$
If Pascal immediate visible CIf Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
n If .. Else .. Then or EndIf
Value
Immediate Pascal visible CImmediate Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Toggle the immediate  bit for the last defined word
Value
Implements Pascal visible CImplements Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
LastDefind Is XXXX
Value
Include Pascal visible CInclude Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Include a 4th file from the source directory
Value
Include' Pascal visible CInclude27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Include a 4th file from the source directory
Value
InitEnum Pascal visible CInitEnum Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
InitEnum x y z EndEnum, start enumeration at n. See Enum
Value
Initialization Macro immediate used visible CInitialization Forth 18xxx2
( -- ) [ 344, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
AdminStart ]   [ BSRTmp ]   [ FSRTmpH ]   [ FSRTmpL ]   LowPriorityInterrupt[ PCHTmp ]   Pin_SCL Pin_SDA[ Quotient ]   [ StatusTmp ]  
Used in
Build ]  
Documentation
Value

; // ////////////////////////////////////////////////////////////////////////////
; // Forth memory layout

False   equ  0
True    equ -1

MaxRam  equ 0x07f                   ; // Shared memory over all banks,
                                    ; //   locate it in bank 0.
                                    ; //   using the Access bank mechanism

LDP     equ MaxRam - 0              ; // Base pointer for local variable access
                                    ; //  Local Data Pointer
EFP     equ MaxRam - 2              ; // word : Except Frame Pointer,
                                    ; //        used for exception handling
tmp0    equ MaxRam - 3              ; // First temporary register
tmp1    equ MaxRam - 4              ; // First temporary register
tmp2    equ MaxRam - 5
tmp3    equ MaxRam - 6
tmp4    equ MaxRam - 7
tmp5    equ MaxRam - 8              ; // Last temporary register
WTMP    equ MaxRam - 9              ; // Temporary Wreg save for interrupts

; // Some locations left free (above, after WTMP), can go to -15 ( - 0x0f)

LZero   equ MaxRam - 0x010 + 1      ; // Top of Return/Loop Stack + 1
                                    ; // 32 bytes of loop stack, 8 nested DO loops's
                                    ; // The loop stack grows downward into the data stack
                                    ; //
                                    ; // The data stack grows upwards into the loop stack
SZero   equ 0x000 - 1               ; // Top of data stack + 1, bank 0, 80 bytes stack


// ==================================
// AsmHelpers ( ) Some helper macro's
//
fBranch macro aLabel
    bz      aLabel                  ; // B/ zero flag set : fBranch
  endm
//
// ===============================================
// // Parameter Stack macro's
// ===============================================
//
PopReg macro Reg
    movwf   (Reg)                   ; // PopReg ( b -- )
    movf    postdec0, w
  endm
//
//
// ===============================================
//
Drop macro
    movf    postdec0, w             ; // drop ( b -- )
  endm
//
//
// ===============================================
//
SwapDrop macro
    decf    fsr0l, f                ; // SwapDrop ( b1 b2 -- b2 )
  endm
//
//
// ===============================================
//
PushLit macro Arg
    movwf   preinc0                 ; // Push Arg ( -- b )
    movlw   (Arg)
  endm
//
//
// ===============================================
//
PushReg macro Reg
    movwf   preinc0                 ; // Push Reg ( -- b )
    movf    (Reg), w
  endm
//
//
// ===============================================
//
PushNothing macro
    movwf   preinc0                 ; // Push nothing, free wreg
  endm
//
//
// ===============================================
//
Dup macro
    movwf   preinc0                 ; // Dup ( b1 -- b1 b1 )
  endm
//
//
// ===============================================
// Return (loop) Stack macro's
// ===============================================
//
LsPushReg macro Reg
    decf    fsr1l                   ; // Push Reg [ -- b ]
    movff   (Reg), indf1
  endm
//
//
// ===============================================
//
LsPushLit macro Arg
                                ; // LsPushLit (Arg)
    PushNothing                 ; // Free wreg to be used
    movlw   (Arg)               ; // Arg into wreg
    decf    fsr1l               ; // Push Arg [ -- b ] to loop stack
    movwf   indf1
    Drop                        ; // Restore wreg
  endm
//
//
// ===============================================
//
LsDrop macro
    incf    fsr1l               ; // drop [ b -- ] from loop stack
  endm
//
//
// ===============================================
//
LsFree macro item_count
    PushNothing
    movlw   item_count
    addwf   fsr1l, f            ; // drop [ n1 .. nn -- ] from loop stack
    Drop
  endm
//
//
// ===============================================
//
LsPopReg macro Reg
    movff   postinc1, (Reg)         ; // Pop Reg [ b -- ]
  endm
//
//
// ; ===============================================
//
AddExceptionFrame macro
                                ; // AddExceptionFrame : link in a new exception frame
    LsPushReg ( EFP + 0)        ; // Push Except Frame Pointer
    LsPushReg ( EFP + 1)

    movff     fsr1l, EFP + 0    ; // And set up a new Except Frame Pointer
    movff     fsr1h, EFP + 1
  endm
//
//
// ===============================================
//
RemoveExceptionFrame macro
                                ; // RemoveExceptionFrame, unwind one exception level
    movff   EFP + 0, fsr1l      ; // Set loop stack back to EFP
    movff   EFP + 1, fsr1h

    LSPopReg  ( EFP + 1)        ; // Pop back old Exception Frame Pointer
    LsPopReg  ( EFP + 0)
  endm
//
// ===============================================
// Ram select macro's
// ===============================================
//
SetBSR macro aRegister
    movlb   (aRegister >> 8) & 0xff  ; // SetBsr
  endm
//
//
// ===============================================
//
SetBSRDefault macro
    movlb   0x00                    ; // Select the default rambank
  endm
//
//
// ===============================================
//
AddressToFsr0 macro aRegister
    movlw   (aRegister >> 0) & 0xff ; // AddressToFsr0
    movwf   fsr0l
    movlw   (aRegister >> 8) & 0xff
    movwf   fsr0h
  endm
//
//
// ===============================================
//
AddressToFsr1 macro aRegister
    movlw   (aRegister >> 0) & 0xff ; // AddressToFsr1
    movwf   fsr1l
    movlw   (aRegister >> 8) & 0xff
    movwf   fsr1h
  endm
//
//
// ===============================================
//
AddressToFsr2 macro aRegister
    movlw   (aRegister >> 0) & 0xff ; // AddressToFsr2
    movwf   fsr2l
    movlw   (aRegister >> 8) & 0xff
    movwf   fsr2h
  endm
//
//
// ===============================================
// Utility macro's
// ===============================================
//
PushNextRomAddress macro
  local   BeyondMe

    ; // PushNextRomAddress ( -- wRomAddress )

    PushLit (BeyondMe >> 0) & 0xff  ; // Push low  byte
    PushLit (BeyondMe >> 8) & 0xff  ; // Push high byte
    return

BeyondMe:

  endm
//
//
// ===============================================
//
incf16  macro   freg
    incf    freg, f                 ; // incf16
    btfsc   Status, C
    incf    freg + 1, f
  endm
//
//
// ===============================================
//
incf32  macro   freg
    incf    freg + 0, f             ; // incf32
    btfsc   Status, C
    incf    freg + 1, f
    btfsc   Status, C
    incf    freg + 2, f
    btfsc   Status, C
    incf    freg + 3, f
  endm
//
//
// ===============================================
//
incf24  macro   freg
    incf    freg + 0, f             ; // incf24
    btfsc   Status, C
    incf    freg + 1, f
    btfsc   Status, C
    incf    freg + 2, f
  endm
//
//
// ===============================================
//
decf16  macro   freg
    decf    freg + 0, f             ; // decf16
    btfss   Status, C
    decf    freg + 1, f
  endm
//
//
// ===============================================
//
decf16sz  macro   freg
    decf    freg + 0, f             ; // decf16sz S if Zero - kills wreg
    btfss   Status, C
    decf    freg + 1, f
    movf    freg + 0, w
    iorwf   freg + 1, w
    btfss   Status, Z               ; // S/ result was zero
  endm
//
//
// ===============================================
//
addl16  macro   dst16, lit16
    movlw   (lit16 >> 0) & 0xff     ; // addl16
    addwf   dst16, f
    movlw   (lit16 >> 8) & 0xff
    addwfc  dst16 + 1, f
  endm
//
//
// ===============================================
//
shl16   macro   reg16
    bcf     Status, C               ; // shl16
    rlcf    reg16 + 0, f
    rlcf    reg16 + 1, f
  endm
//
//
// ===============================================
//
rrc16   macro   reg16               ; // Same as shrc16
    rrcf    reg16 + 1, f            ; // rrc16
    rrcf    reg16    , f
  endm
//
//
// ===============================================
//
shlc16  macro   reg16
    rlcf    reg16    , f            ; // shlc16
    rlcf    reg16 + 1, f
  endm
//
//
// ===============================================
//
shr16   macro   reg16
    bcf     Status, c               ; // shr16
    rrcf    reg16 + 1, f
    rrcf    reg16 + 0, f
  endm
//
//
// ===============================================
//
shrc16  macro   reg16               ; // Same as rrc16
    rrcf    reg16 + 1, f            ; // shrc16
    rrcf    reg16, f
  endm
//
//
// ===============================================
//
xorl16  macro   dst16, lit16
    movlw   (lit16 >> 0) & 0xff     ; // xorl16
    xorwf   dst16, f
    movlw   (lit16 >> 8) & 0xff
    xorwf   dst16 + 1, f
  endm
//
// ===============================================
//
shlc32  macro   reg32
    rlcf    reg32    , f            ; // shlc32
    rlcf    reg32 + 1, f
    rlcf    reg32 + 2, f
    rlcf    reg32 + 3, f
  endm
//
//
// ===============================================
//
xorf16  macro   dst16, src16
    movf    src16  , w              ; // xorf16
    xorwf   dst16  , f
    movf    src + 1, w
    xorwf   dst + 1, f
  endm
//
//
// ===============================================
//
xorf16d macro   src16_1, src16_2, dst16
    movf    src16_1 + 0, w          ; // xorf16d
    xorwf   src16_2 + 0, w
    movwf   dst16   + 0
    movf    src16_1 + 1, w
    xorwf   src16_2 + 1, w
    movwf   dst16   + 1
  endm
//
//
// ===============================================
//
clrf16  macro reg16
    clrf    reg16                   ; // clrf16
    clrf    reg16 + 1
  endm
//
//
// ===============================================
//
clrf32  macro reg32
    clrf    reg32                   ; // clrf32
    clrf    reg32 + 1
    clrf    reg32 + 2
    clrf    reg32 + 3
  endm
//
//
// ===============================================
//
cpfslt16    macro  reg16_1, reg16_2

    ; // Skip the next instruction if N1 < N2 (unsigned)
    ; //  or skip if N1 - N2 < 0

    local CheckHiUnEq, N1SmallerN2, N1NotSmallerN2

    movwf   <@" Quotient">          ; // Save wreg

    movf    reg16_1 + 1, w
    subwf   reg16_2 + 1, w
    bnz     CheckHiUnEq             ; // B/ N1 + 1 <> N2 + 1, test hi bytes

    ; // N1 + 1 == N2 + 1, test low bytes

    movf    reg16_2, w              ; // N2 to w
    subwf   reg16_1, w              ; // calc N1 - N2 :: negative -> N1 - N2 < 0 -> N1 < N2
    movff   <@" Quotient">, WREG    ; // Restore wreg || NOT affecting flags
    bc      N1NotSmallerN2

    ; // N1 < N2

    bra     N1SmallerN2

CheckHiUnEq

    ; // Hi bytes are not equal, test 'm

    movf    reg16_2 + 1, w          ; // N2 == reg16_2 + 1
    subwf   reg16_1 + 1, w          ; // Sub N1:: negative -> N1 - N2 < 0 -> N1 < N2
    movff   <@" Quotient">, WREG    ; // Restore wreg || NOT affecting flags
    bc      N1NotSmallerN2

N1SmallerN2

    bra     N1NotSmallerN2 + 2      ; // Skip next

N1NotSmallerN2

  endm
//
//
// ===============================================
//
cpfseq16    macro reg16_1, reg16_2

    ; // Skip the next instruction if N1 = N2

    local N1NotEqualN2

    movf    reg16_2 + 1, w
    subwf   reg16_1 + 1, w
    bnz     N1NotEqualN2            ; // Hi bytes not equal

    ; // N1 + 1 equals N2 + 1

    movf    reg16_2, w
    subwf   reg16_1, w
    btfss   Status, Z               ; // S/ N1 = N2 :: so skip next instruction

N1NotEqualN2

  endm
//
//
// ===============================================
//
// A delay utility, the argument should be in the range [6..860]
// Delay is in microseconds.
//
// Must be tuned for processor speed !
// which it IS for project c\002\progger
//
Delay   macro aMuSecs

  local _DlyLp

  if aMuSecs < 3 | aMuSecs > 307
    error "Argument for delay (aMuSecs) : out of range [3..307]"
  endif

    movlw   (1000 * (aMuSecs) / (3 * 408)) - 1  ; // 1 cycles
    movwf   _Quotient                           ; // 1 cycles

_DlyLp

    decfsz  <@" Quotient">, f       ; // 1 cycles total : ( n * 3 + 3) * 102 ns
    goto    _DlyLp                  ; // 2 cycles
                                    ; // 1 cycles

  endm
//
//
// ===============================================
//
jr_f    macro   reg
                                    ; // jr_f
  local   table

    movlw   (table >> 8) & 0xff     ; // Setup pclath with table address high byte
    movwf   pclath
    movlw   table & 0xff            ; // Table address low byte into wreg

    addwf   reg, w                  ; // Add ofset for the first time to pclath_w register pair
    btfsc   status, c
    incf    pclath, f

    addwf   reg, w                  ; // Add offset again (table entries are two bytes in size)
    btfsc   status, c
    incf    pclath, f

    movwf   pcl                     ; // set new pc (dispatch)

table

  endm
//
// End of AsmHelpers
// =========================================
//
//
; // ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; // ;;; Start of code area ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; // Boot loader stuff

; // Fill in start and interrupt vectors, interrupts just jump through to the
; // APPLICATION. Reset must check eeprom and decide whether to jump into the
; // APPLICATION or reprogram the flash from an image present in EEPROM.
; //
; // The EEPROM has been changed to a size of 64 KByte (it was 64 Kbit) so it can
; // hold a new software image. The EEPROM layout has been changed as well the
; // appliction data starts at an offset 0x400 so that the first KByte can be used
; // for the loader software.
; //
; // EEPROM layout :
; //
; //   $0000 .. $00ff : Bootloader memory
; //
; //     $0000 : byte : loader_state
; //
; //       $00 - Loading flash image from host, not a valid image yet
; //       $01 - Valid image in EEPROM, must program FLASH
; //       $02 - Programmed mew image into flash must contact host ASAP
; //               the APPLICATION should check this state and act on it
; //       $ff - FLASH programmed, host contacted, normal operation.
; //
; //       all other values - run image in flash (normal operation).
; //
; //         the APPLICATION should check for these cases and correct the value to $ff
; //
; //
; //     $0001 : byte : inverse value of loader_state (1's complement).
; //
; //       when this byte is not equal to the 1's complement of
; //       loader_state : run image in flash (normal operation).
; //
; //
; //     $0002 : word : image_length
; //
; //       valid incremental length when loader_State is $00.
; //       valid total length when loader_state is $01 or $02
; //
; //
; //     $0004 : word : checksum
; //
; //       CRC-16 over preceding bytes, startvalue 0 is used for the CRC
; //       when the CRC is in error : run image in flash (normal operation).
; //
; //
; //     $0006 .. $00ff : not used, can have any value.
; //
; //
; //   $0100 .. $ffff : application storage or flash image
; //
; //     Depends upon loader_state what is present :
; //
; //       $00 - invalid image, partial FLASH image present
; //       $01 - valid FLASH image with length image_length
; //       $02 - valid FLASH image with length image_length
; //       $ff - APPLICATION data
; //       All other values, invalid checksum or invalid loader_state :
; //         APPLICATON data, but possibly invalid.



LoaderVersion equ 1                         ; // Loaders version number


; // RAM layout during boot process

EE_ADDR     equ   0x000                     ; // Two bytes EEProm address
EE_DATA     equ   0x002                     ; // Two bytes EEProm data buffer
EE_PTR      equ   0x004                     ; // Two bytes pointer in EEProm
EE_ACK      equ   0x006                     ; // One byte ACK / NAK received after write
FLASH_CNT   equ   0x007                     ; // Two bytes, nr of bytes to flash
FLASH_PTR   equ   0x009                     ; // Two bytes pointer in FLASH
COUNTER     equ   0x00b                     ; // Two bytes counter
BSTATE      equ   0x00d                     ; // One byte  loader_state
CRC_16      equ   0x00e                     ; // Two bytes CRC


; // Physical vectors.

  org   0x0000

    bra     BootLoader                        ; // Jump into the bootloader


; // ---------------------------------------------------------------------------
; // CalcCrc16 : calculate CRC-16 checksum from CRC and value passed in wreg

CalcCrc16

    movwf   tmp1                ; // Get bData into tmp1

    movlw   8                   ; // Handle 8 bits
    bra     Crc16_goon          ; // B/ into the 'real thing'


  org   0x0008

    bra     HighPriorityInterruptVector       ; // Jump into the application interrupt handler


; // ---------------------------------------------------------------------------
; // SetupRegs :  Setup registers to be able to access external eeprom
; //
; // Application dependent : must at least setup some physical IO ok

SetupRegs
    movlw   B'01001110'             ; // Setup most port pins as digital I/O
    movwf   ADCON1
                                    ; // Initialize i2c port
    bsf     I2C_LAT , <@" Pin_SCL"> ; // Set SCL high
    bcf     I2C_TRIS, <@" Pin_SCL"> ; // Put SCL line in output state
    return


; // ---------------------------------------------------------------------------
; // LoaderGetVersion : returns the loader version into wreg

LoaderGetVersion

    movlw   LoaderVersion
    return


  org   0x0018

    bra     LowPriorityInterruptVector        ; // Jump into the application interrupt handler



; // Helpers for boot loader

; // ---------------------------------------------------------------------------
; // CalcCrc16 : calculate CRC-16 checksum from CRC and value passed in wreg

; // Moved some code into 'vector gaps'

Crc16_goon

    movwf   tmp2

BLCC16_Loop

    movf    tmp1, w             ; // Data into wreg
    xorwf   CRC_16, w           ; // Xor with old crc -> wreg
    movwf   tmp3                ; // Keep bit 0 in flag for later
    bcf     Status, c           ; // Clear carry, make a right SHIFT
    rrc16   CRC_16
    rrcf    tmp1, f             ; // drop a bit of Data

    rrcf    tmp3, f             ; // rotate bit 0 of tmp3 into carry
    btfss   Status, c           ; // skip next if carry set
    bra     BLCC16_WasZero      ; // B/ carry was not set

                                ; // Xor OldCrc with shifted polynomial
    xorl16  CRC_16, 0xa001      ; // This leaves the carry unchanged

BLCC16_WasZero

    decfsz  tmp2, f             ; // djnz EC_COUNTER, EC_CC_Loop
    bra     BLCC16_Loop

    return


; // ---------------------------------------------------------------------------
; // i2cTxByte : transmit wreg to the i2c device

i2cTxByte

    movwf   tmp1                    ; // Store TxBuf

    movlw   8                       ; // Init counter, 8 bits to do
    movwf   tmp2

TXi2cLp

    bcf     I2C_LAT, <@" Pin_SCL">  ; // Clock low
    bcf     I2C_LAT, <@" Pin_SDA">  ; // Output bit 0 (0)
    btfsc   tmp1, 7
    bsf     I2C_LAT, <@" Pin_SDA">  ; // Output bit 0 (1)

    bsf     I2C_LAT, <@" Pin_SCL">  ; // Clock to high

    rlncf   tmp1, f                 ; // Rotate TxBuf left (not through carry)
    decfsz  tmp2, f                 ; // 8 bits done ?
    bra     TXi2cLp                 ; // No.

    ; // Bit in, reads ACK / NAK

    bcf     I2C_LAT , <@" Pin_SCL"> ; // Return SCL to low
    bcf     I2C_LAT , <@" Pin_SDA"> ; // Make SDA low
    bsf     I2C_TRIS, <@" Pin_SDA"> ; // Put SDA line in input state
    bsf     I2C_LAT , <@" Pin_SCL"> ; // Clock high

    setf    EE_ACK                  ; // Assume ACK
    btfsc   I2C_PORT, <@" Pin_SDA"> ; // Read SDA pin / S/ on ack
    clrf    EE_ACK                  ; // No ack

    bcf     I2C_LAT , <@" Pin_SCL"> ; // Return SCL to low
    bcf     I2C_TRIS, <@" Pin_SDA"> ; // Put SDA line in output state

    return

; // ---------------------------------------------------------------------------
; // i2cStart : transmit a bus start

i2cStart

    bsf     I2C_LAT, <@" Pin_SDA">
    bsf     I2C_LAT, <@" Pin_SCL">
                                    ; // SDA goes low during SCL high
i2cToggle

    nop
    nop
    btg     I2C_LAT, <@" Pin_SDA">

    return


; // ---------------------------------------------------------------------------
; // i2cStop : transmit a bus stop

i2cStop

    bcf     I2C_LAT, <@" Pin_SDA">
    bsf     I2C_LAT, <@" Pin_SCL">
                                    ; // SDA goes high during SCL high
    bra     i2cToggle


; // ---------------------------------------------------------------------------
; // i2cTxAddress : transmit the 16 bit address contained in EE_ADDR
; //                preceded by START and DeviceAddress/Write

i2cTxAddress

    rcall   i2cStart
    movlw   0xa0                    ; // Device address + write
    rcall   i2cTxByte
    movf    EE_ADDR + 1, w
    rcall   i2cTxByte
    movf    EE_ADDR + 0, w
    bra     i2cTxByte


; // ---------------------------------------------------------------------------
; // i2cRxByte : read a byte from i2c into wreg

i2cRxByte

    bsf     I2C_TRIS, <@" Pin_SDA"> ; // Put SDA line in input state

    movlw   8                       ; // 8 bits of data
    movwf   tmp2

i2cRxLp

    rlncf   tmp3, f                 ; // Shift data to buffer

    ; // Bit in

    bsf     I2C_LAT,  <@" Pin_SCL"> ; // Clock high
    bcf     tmp3, 0                 ; // Assume data bit is 0
    btfsc   I2C_PORT, <@" Pin_SDA"> ; // Read SDA pin
    bsf     tmp3, 0                 ; // Data bit is 1 instead

    bcf     I2C_LAT,  <@" Pin_SCL"> ; // Return SCL to low

    decfsz  tmp2, f                 ; // 8 bits done ?
    bra     i2cRxLp

    bsf     I2C_LAT,  <@" Pin_SDA"> ; // Send NAK
    bcf     I2C_TRIS, <@" Pin_SDA"> ; // Put SDA line in output state
    bsf     I2C_LAT,  <@" Pin_SCL"> ; // Clock high
    movf    tmp3, w                 ; // Data into wreg
    bcf     I2C_LAT,  <@" Pin_SCL"> ; // Return SCL to low
    return


; // ---------------------------------------------------------------------------
; // PreReadEEByte : read byte from EE_ADDR into wreg

PreReadEEByte

    rcall   i2cTxAddress            ; // Send address prefix stuff

    rcall   i2cStart                ; // re-issue start
    movlw   0xa1                    ; // Device address + read
    rcall   i2cTxByte
    rcall   i2cRxByte               ; // Read byte into
    bra     i2cStop                 ; // Issue bus STOP


; // ---------------------------------------------------------------------------
; // incEeAddr : Increment EE_ADDR
; //             Keeps wreg intact

incEeAddr

    incf16  EE_ADDR
    return

; // ---------------------------------------------------------------------------
; // ReadEEByte : read a byte from eeprom address EE_ADDR into EE_DATA and into wreg
; //              increments EE_ADDR

ReadEEByte

    rcall   PreReadEEByte
    movwf   EE_DATA + 0             ; // Store byte
    bra     incEeAddr               ; // Leaves wreg intact


; // ---------------------------------------------------------------------------
; // WriteEEByte : Write a byte from EE_DATA to eeprom address EE_ADDR
; //               increments EE_ADDR

WriteEEByte

    rcall   i2cTxAddress            ; // Send address prefix stuff
    movf    EE_DATA, w

WriteEEByteAgain

    rcall   i2cTxByte               ; // Write byte to bus
    rcall   i2cStop                 ; // Issue bus STOP, starts programming

    ; // Wait for device to respond again after programming

    clrwdt                          ; // Give us some time

WriteEEByteWait

    rcall   i2cStart                ; // Send bus start
    movlw   0xa0                    ; // start write op
    rcall   i2cTxByte

    ; // Check for ACK

    btfss   EE_ACK, 0               ; // S/ Ack seen
    bra     WriteEEByteWait         ; // B/ no ack seen yet (dog might terminate this)

    rcall   i2cStop                 ; // Terminate bus activity

    bra     incEeAddr               ; // Advance EE device address and return


; // ---------------------------------------------------------------------------
; // WriteEEWord : Write a word from EE_DATA to eeprom address EE_ADDR
; //               increments EE_ADDR by two

WriteEEWord

    rcall   WriteEEByte
    rcall   i2cTxAddress            ; // Send address prefix stuff
    movf    EE_DATA + 1, w
    bra     WriteEEByteAgain        ; // Advance EE device address and return


; // ---------------------------------------------------------------------------
; // @@@@ to be removed later for a real 18f452

; // EEADR   EQU  H'0FA9'
; // EEDATA  EQU  H'0FA8'
; // EECON2  EQU  H'0FA7'
; // EECON1  EQU  H'0FA6'
; // EEPGD   EQU  H'0007'
; // CFGS    EQU  H'0006'
; // FREE    EQU  H'0004'
; // WRERR   EQU  H'0003'
; // WREN    EQU  H'0002'
; // WR      EQU  H'0001'
; // RD      EQU  H'0000'

; // END @@@@ to be removed later

; // ---------------------------------------------------------------------------
; // StartWrite - starts a write or erase operation

StartWrite

    clrwdt
    movlw   0x55
    movwf   eecon2
    movlw   0xaa
    movwf   eecon2
    bsf     eecon1, wr
    nop
    return

; // ---------------------------------------------------------------------------
; // BootLoader - does it all

BootLoader

    ; // Determine what to do based upon eeprom contents
    ; //
    ; // Either :
    ; //
    ; //  - load new software from eeprom into flash
    ; //  - jump into existing software

    ; // ICE BUG FIX
    ;
    movlw   0xb0                    ; // To make table reads work correctly in MPLAB ICE 2000
    movwf   0xf9c                   ; // Not needed in production code (but it doesn't harm)
    ;
    ; // ICE BUG FIX - END

    bcf     intcon, gie             ; // Disable all interrupts
    SetBSRDefault                   ; // Setup BSR register

    rcall   SetupRegs               ; // Initialize  some registers

    bsf     I2C_LAT , <@" Pin_SDA"> ; // Set SCL high
    bcf     I2C_TRIS, <@" Pin_SDA"> ; // Put SCL line in output state

    ; // Check EEPROM

    clrf    EE_ADDR + 0             ; // Set address pointer to zero
    clrf    EE_ADDR + 1

    clrf    CRC_16 + 0              ; // Clear CRC
    clrf    CRC_16 + 1

    movlw   6                       ; // Check six bytes
    movwf   COUNTER

BootCrcCheck

    rcall   ReadEEByte              ; // Read next byte into EE_DATA and into wreg
    rcall   CalcCrc16

    decfsz  COUNTER
    bra     BootCrcCheck

    movf    CRC_16 + 0, w
    iorwf   CRC_16 + 1, w
    bnz     ResetVector             ; // B/ CRC error, perform no load

    ; // CRC OK, read state

    clrf    EE_ADDR                 ; // Read state
    rcall   ReadEEByte              ; // Read byte into EE_DATA and into wreg
    movwf   BSTATE
    rcall   ReadEEByte              ; // Read control byte
    xorlw   0xff
    cpfseq  BSTATE                  ; // S/ control byte OK
    bra     ResetVector             ; // B/ error in control byte, normal operation

    ; // CRC OK, control byte OK, check state
    ; // State 1 is the only state of interest to us, we must flash a new image then



    ; // bra     ProgOk             ; // Skip programming, comment out/in as needed

    movlw   0x01                    ; // Check 0x01
    cpfseq  BSTATE                  ; // S/ state = 1
    bra     ResetVector             ; // B/ state <> 1, not interested, normal operation

BootLoaderDoIt

    ; // State = 1, valid FLASH image with length image_length
    ; //
    ; // Perform FLASH programming, copy EEPROM to FLASH

    movlw   0x02                    ; // Read byte count
    movwf   EE_ADDR

    rcall   ReadEEByte              ; // was : read eeword
    rcall   PreReadEEByte
    movwf   EE_DATA + 1             ; // Store byte

    movlw   61                      ; // Add 61 to byte count to round up
    addwf   EE_DATA + 0, f          ; // should be 63, but use 61 to skip the CRC
    clrf    wreg                    ; // The image builder must cooperate by making
    addwfc  EE_DATA + 1, f          ; // images a multiple of 64 bytes + 2 for the CRC

    movlw   6                       ; // Divide byte count by 64, erase page count
    movwf   COUNTER

BL_DL

    shr16   EE_DATA                 ; // Shift right one bit
    decfsz  COUNTER                 ; // S/ done
    bra     BL_DL                   ; // B. not done yet

    movff   EE_DATA + 0, FLASH_CNT + 0  ; // Store erase page count into FLASH_CNT
    movff   EE_DATA + 1, FLASH_CNT + 1

    clrf    tblptru                 ; // Setup table latch
    movlw   ( ResetVector >> 8) & 0xff
    movwf   tblptrh
    movlw   ( ResetVector >> 0) & 0xff
    movwf   tblptrl

    movlw   ( <@" AdminStart"> >> 0) & 0xff ; // Setup EEProm address
    movwf   EE_ADDR + 0
    movlw   ( <@" AdminStart"> >> 8) & 0xff
    movwf   EE_ADDR + 1

BL_loop_erase

    ; // Erase page

    bsf     eecon1, eepgd           ; // point to FLASH program memory
    bcf     eecon1, cfgs            ; // access FLAH program memory
    bsf     eecon1, wren            ; // enable FLASH writes
    bsf     eecon1, free            ; // Enable row erase

    rcall   StartWrite              ; // Unlock sequence, start erase, stall CPU

    tblrd   *-                      ; // Dummy read

    movlw   8                       ; // Setup erase page byte counter, 8 write pages in 1 erase page
    movwf   COUNTER + 0

BL_loop_outer

    movlw   8                       ; // Setup write page byte counter, 8 bytes in  a write page
    movwf   COUNTER + 1

BL_loop_inner

    rcall   ReadEEByte              ; // Read data byte into EE_DATA and into wreg
    movwf   tablat                  ; // into tablat
    tblwt   +*                      ; // Short data write to buffer

    decfsz  COUNTER + 1
    bra     BL_loop_inner

    ; // Flash 8 bytes

    bsf     eecon1, eepgd           ; // Point to FLASH program memory
    bcf     eecon1, cfgs            ; // Access FLASH program memory
    bcf     eecon1, free            ; // Disable erase ops
    bsf     eecon1, wren            ; // Enable write to memory

    rcall   StartWrite              ; // Unlock sequence, start write, stall CPU

    ; // Write verification

    movlw   8                       ; // Set EE_ADDR 8 location back
    movwf   COUNTER + 1             ; // Setup read page byte counter, 8 bytes in a page
    subwf   EE_ADDR
    movlw   0
    subwfb  EE_ADDR + 1

    movlw   8                       ; // Set TBLPTR 8 location back
    subwf   TBLPTRL
    movlw   0
    subwfb  TBLPTRH

BL_Loop_check

    rcall   ReadEEByte              ; // Read next EE byte into EE_DATA and into wreg
    tblrd   +*                      ; // Read FLASH byte into TABLAT
    cpfseq  tablat                  ; // S/ FLASH contents OK
    reset                           ; // B/ error detected, just reboot.

    decfsz  COUNTER + 1             ; // S/ done verifying 8 bytes
    bra     BL_Loop_check           ; // B/ not done

    decfsz  COUNTER + 0             ; // S/ all 8 write pages in erase page done
    bra     BL_loop_outer           ; // B/ more write pages in this erase page

    tblrd   +*                      ; // Dummy read to set erase pointer OK

    movlw   1                       ; // Decrement erase page counter
    subwf   FLASH_CNT + 0
    movlw   0
    subwfb  FLASH_CNT + 1
    movf    FLASH_CNT + 1, w
    iorwf   FLASH_CNT + 0, w
    bnz     BL_loop_erase           ; // B/ more erase pages to do

    ; // All programming OK, proceed

ProgOk                              ; // Label for debugging.

    bcf     eecon1, wren            ; // Disable FLASH writes

    clrf    EE_ADDR + 0             ; // Set loader stater OK
    clrf    EE_ADDR + 1
    movlw   2
    movwf   EE_DATA
    xorlw   0xff
    movwf   EE_DATA + 1
    rcall   WriteEEWord

    ; // Fix CRC

    clrf    CRC_16 + 0              ; // Clear CRC
    clrf    CRC_16 + 1

    movlw   4                       ; // Process 4 bytes
    movwf   COUNTER
    clrf    EE_ADDR                 ; // Start at 0

FixCrcLp

    rcall   ReadEEByte              ; // Read next byte into EE_DATA and into wreg
    rcall   CalcCrc16

    decfsz  COUNTER
    bra     FixCrcLp

    movff   CRC_16 + 0, EE_DATA + 0
    movff   CRC_16 + 1, EE_DATA + 1

  ; // The following two instructions are not needed, ReadEEByte will do it
  ; //
  ; //  movlw   0x04
  ; //  movwf   EE_ADDR

    rcall   WriteEEWord

    Reset                           ; // Reboot the controller, let APLLICATION handle the rest.


; // End of boot loader




; // ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; // APPLICATION ///////////////////////////////////////////////////////////////

  org     0x0200                    ; // RESET

ResetVector
    bra     ValueInit               ; // Go initialize Value defined words.
                                    ; // !! a compiler generated entry point !!



HighPriorityInterruptVector

    nop                             ; // No priority support, just fall through

LowPriorityInterruptVector

    ; // Save processor status

    movwf   WTMP                    ; // Copy W to WTMP register !! in ACCESS bank !!
    movff   bsr   , <@" BSRTmp">    ; // Save BSR
    SetBSRDefault                   ; // Clear BSR to default
    movff   status, <@" StatusTmp"> ; // Save Status
    movff   fsr0l , <@" FSRTmpL">   ; // Save fsr0l
    movff   fsr0h , <@" FSRTmpH">   ; // Save fsr0h
    movff   pclath, <@" PCHTmp">    ; // Save pclath
    goto    <@" LowPriorityInterrupt">

HighPriorityInterruptReturn

    nop                               ; // No priority support, just fall through

LowPriorityInterruptReturn

    ; // Restore processor status

    movff   <@" PCHTmp">   , pclath ; // Restore pclath
    movff   <@" FSRTmpH">  , fsr0h  ; // Restore fsr0h
    movff   <@" FSRTmpL">  , fsr0l  ; // Restore fsr0l
    movff   <@" BSRTmp">   , bsr    ; // Restore bsr
    movf    WTMP      , w           ; // Restore wreg
    movff   <@" StatusTmp">, status ; // Restore status

    retfie


;  // ;;;;;;;;;;;;;;;;;;;; End of startup code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; // ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

InitReg Macro immediate visible CInitReg Forth 18xxx2
( -- ) [ 1625, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
                                ; // Initialize '$aName$'
    movlw   <@" $aName$">_IniVal
    movwf   $aName$
Is Pascal immediate visible CIs Forth
( <exec-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Resolve a Deferred XXXX
Value
J Pascal immediate visible CJ Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Get 2nd level Loop index
Value
K Pascal immediate visible CK Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Get 3rd level Loop index
Value
LabelPrefix' Pascal visible CLabelPrefix27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define prefix to use for assembly labels
Value
lastDefined Pascal visible ClastDefined Forth
( -- ExecutionToken ) [ 0, 1] ""
Uses
Used in
Documentation
Get the execution token for the last defined word
Value
Leave Pascal immediate visible CLeave Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Leave a Do .. Leave .. Loop
Value
LibraryPath' Pascal visible CLibraryPath27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Alternative path for library - overrides the setting from EditLibPath
Value
List Macro immediate visible CList Forth 18xxx2
( -- ) [ 1643, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Control assembly macro listings
Value
  LIST        $aFormat$
Literal Pascal immediate visible CLiteral Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Compile TOS as a single  byte literal
Value
Loc2Var Pascal immediate visible CLoc2Var Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a local 2Variable
Value
Loc3Var Pascal immediate visible CLoc3Var Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a local 3Variable
Value
Loc4Var Pascal immediate visible CLoc4Var Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a local 4Variable
Value
LocalBank Pascal visible CLocalBank Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n LocalBank :: selects ram bank n for local variables.
Value
LocVar Pascal immediate visible CLocVar Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a local variable
Value
Loop Pascal immediate visible CLoop Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n1 n2 Do .. Leave .. Loop
Value
lshift Pascal immediate visible Clshift Forth
( n1 -- n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Shift the top stack item to the left, bit wise
Value
Macro Pascal visible CMacro Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Start a macro definition to be ended with EndMacro
Value
main Colon used visible Cmain Forth
( -- ) [ 47, 2] "D:\PrjD7\x4th\work\glossary\glossary.4th"
Uses
(semi) ]  
Used in
ValueEnd ]  
Documentation
Value
00352 | (semi)                                       | ( -- ) ( )
MakeDocs Pascal visible CMakeDocs Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate html auto documentation, use as "afile.ext" MakeDocs, also see #doc etc.
Value
MakeDocs' Pascal visible CMakeDocs27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate html auto documentation, use as MakeDocs' afile.ext', also see #doc etc.
Value
Mangle Pascal visible CMangle Forth
( <string-token> -- <string-token>) [ 0, 1] ""
Uses
Used in
Documentation
Mangle string token to be a valid assembler identifier
Value
ManglePrefix' Pascal visible CManglePrefix27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define prefix to use for assembly symbols other than labels
Value
MarkAllUsed Pascal visible CMarkAllUsed Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Treat all defined words as if being used.
Value
Max Pascal immediate visible CMax Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
Get the maximum of the top two stack elements
Value
message Pascal visible Cmessage Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
.info ]   [ .infoTime ]  
Documentation
Generate a warning with text on stack, also see Message'.
Value
Message' Pascal immediate visible CMessage27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate a runtime error with inline specified text, also see message.
Value
Meta Pascal visible CMeta Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Set the meta bit for the last defined word
Value
MetaOff Pascal visible CMetaOff Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Switch off meta compiler, also see MetaOn, { and }
Value
MetaOn Pascal visible CMetaOn Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Switch on  meta compiler, also see MetaOff, { and }
Value
Min Pascal immediate visible CMin Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
Get the minimum of the top two stack elements
Value
Module Pascal visible CModule Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Module start tag, Module Private Public Export EndModule
Value
Negate Pascal immediate visible CNegate Forth
( n1 -- n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Unary minus performed on top stack element
Value
Negative? Primitive visible CNegative3F Forth 18xxx2
( b -- f ) [ 3417, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
dNegative? ]  
Documentation
Value
    btfss   wreg, 7
    retlw   False
    retlw   True
NewLabel Pascal visible CNewLabel Forth
( -- <string-token>) [ 0, 1] ""
Uses
Used in
Documentation
Create a new and unique label name
Value
Nop Macro immediate visible CNop Forth 18xxx2
( -- ) [ 3341, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    nop                             ; // Nop ( -- )
noreturn; Pascal immediate visible Cnoreturn3B Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
End a colon definition without return, see  and ;
Value
Not Pascal immediate visible CNot Forth
( n1 -- n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Logic inversion performed on top stack element
Value
Now Pascal immediate visible CNow Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Get current date/time as Unix time - pseudo constant
Value
Of Pascal immediate visible COf Forth
( -- n 5 ) [ 0, 1] ""
Uses
Used in
Documentation
( n ) Case .. of .. EndOf .. Default .. EndCase
Value
Only Pascal visible COnly Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Pseudo Vocabulary containing basic vocabulary control words:
 Also, Vocabulary, Definitions, ShowVocs, DropVocabulary, XVersion
Value
or Pascal immediate visible Cor Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
bitwise or
Value
Or! Primitive visible COr21 Forth 18xxx2
( b wRamAddress -- ) [ 3898, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    iorwf   indf2
    Drop
    return
OutputFile' Pascal visible COutputFile27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define the file into which to generate code
Value
OutputPath Pascal visible COutputPath Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Alternative path for generated output file - overrides the setting from EditOutPath
Value
OutputPath' Pascal visible COutputPath27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Alternative path for generated output file - overrides the setting from EditOutPath
Value
Over Pascal immediate visible COver Forth
( n1 n2 -- n1 n2 n1 ) [ 0, 1] ""
Uses
Used in
Documentation
Duplicate the second stack element and make it the top item
Value
Page Macro immediate visible CPage Forth 18xxx2
( -- ) [ 1667, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Ejects a page in the assmbler output list file
Value
  PAGE
PCHTmp Variable used visible CPCHTmp Forth 18xxx2
( -- wRamAddr ) [ 232, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Initialization ]  
Documentation
Temporary for PCLATH
Value
address: 0:129, offset: 0, size: 1
pick Pascal immediate visible Cpick Forth
( n1 -- n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Duplicate the nth stack entry
Value
Popq1 Primitive visible CPopq1 Forth 18xxx2
( q -- ) [ 4164, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
4over ]   [ 4rot ]   [ 4swap ]  
Documentation
Value
    PopReg  tmp4                    ; // Pop q
    PopReg  tmp3
    PopReg  tmp2
    PopReg  tmp1

    return
Popq2 Primitive visible CPopq2 Forth 18xxx2
( q -- ) [ 4188, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Quotient ]  
Used in
4over ]   [ 4rot ]   [ 4swap ]  
Documentation
Value
    PopReg  <@" Quotient"> + 3      ; // Pop q
    PopReg  <@" Quotient"> + 2
    PopReg  <@" Quotient"> + 1
    PopReg  <@" Quotient"> + 0

    return
Popq3 Primitive visible CPopq3 Forth 18xxx2
( q -- ) [ 4214, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Remainder ]  
Used in
4rot ]  
Documentation
Value
    PopReg  <@" Remainder"> + 3     ; // Pop q
    PopReg  <@" Remainder"> + 2
    PopReg  <@" Remainder"> + 1
    PopReg  <@" Remainder"> + 0

    return
Postpone Pascal immediate visible CPostpone Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Compile next inline token, also see [Compile] and Compile
Value
Private Pascal visible CPrivate Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Creates ModuleNama.Private vocabulary; sets it as curent , , Module Private Public Uses Export EndModule
Value
Public Pascal visible CPublic Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Creates ModuleNama.Public vocabulary; sets it as curent, , Module Private Uses Public Export EndModule
Value
Pushq1 Primitive visible CPushq1 Forth 18xxx2
( -- q ) [ 4176, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
4over ]   [ 4rot ]   [ 4swap ]  
Documentation
Value
    PushReg tmp1
    PushReg tmp2
    PushReg tmp3
    PushReg tmp4

    return
Pushq2 Primitive visible CPushq2 Forth 18xxx2
( -- q ) [ 4201, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Quotient ]  
Used in
4over ]   [ 4rot ]   [ 4swap ]  
Documentation
Value
    PushReg <@" Quotient"> + 0
    PushReg <@" Quotient"> + 1
    PushReg <@" Quotient"> + 2
    PushReg <@" Quotient"> + 3

    return
Pushq3 Primitive visible CPushq3 Forth 18xxx2
( -- q ) [ 4227, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Remainder ]  
Used in
4rot ]  
Documentation
Value
    PushReg <@" Remainder"> + 0
    PushReg <@" Remainder"> + 1
    PushReg <@" Remainder"> + 2
    PushReg <@" Remainder"> + 3

    return
put Pascal immediate visible Cput Forth
( n1 n2 -- ) [ 0, 1] ""
Uses
Used in
Documentation
Change the nth stack entry
Value
q- Primitive visible Cq2D Forth 18xxx2
( uq1 uq2 -- uq3 ) [ 5507, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Quotient ]   [ Remainder ]  
Used in
q-$80And>r3Dropr> ]   [ q= ]  
Documentation
Value
    PopReg  <@" Quotient">  + 3
    PopReg  <@" Quotient">  + 2
    PopReg  <@" Quotient">  + 1
    PopReg  <@" Quotient">  + 0

    PopReg  <@" Remainder"> + 3
    PopReg  <@" Remainder"> + 2
    PopReg  <@" Remainder"> + 1
    movwf   <@" Remainder"> + 0

    ; // Now calculate Remainder - Quotient -> Remainder

DoQMin

    movf    <@" Quotient">  + 0, w
    subwf   <@" Remainder"> + 0, f
    movf    <@" Quotient">  + 1, w
    subwfb  <@" Remainder"> + 1, f
    movf    <@" Quotient">  + 2, w
    subwfb  <@" Remainder"> + 2, f
    movf    <@" Quotient">  + 3, w
    subwfb  <@" Remainder"> + 3, f

    ; // Done

    movf    <@" Remainder"> + 0, w
    PushReg <@" Remainder"> + 1
    PushReg <@" Remainder"> + 2
    PushReg <@" Remainder"> + 3

    return
q! Colon visible Cq21 Forth 18xxx2
( q wRamAddress -- ) [ 5046, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 2a+ ]   [ aOver ]   [ d! ]   [ dSwap ]  
Used in
Documentation
Value
00159 | dSwap                                        | ( w1 w2 -- w2 w1 )
00160 | aOver                                        | ( w1 w2 -- w1 w2 w1 )
00161 | 2a+                                          | ( wRamAddr -- wRamAddr ) ( )
00162 | d!                                           | ( w wRamAddress -- )
00163 | d!                                           | ( w wRamAddress -- )
00164 | (semi)                                       | ( -- ) ( )
q-$80And>r3Dropr> Colon visible Cq2D2480And3Er3Dropr3E Forth 18xxx2
( q1 q2 -- b ) [ 5563, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(>R) ]   [ (and) ]   [ (lit) ]   [ (R>) ]   [ (semi) ]   [ 3Drop ]   [ q- ]  
Used in
q< ]   [ q>= ]  
Documentation
Helper for q comparison words
Value
00260 | q-                                           | ( uq1 uq2 -- uq3 )
00261 | (lit)                                        | ( -- b ) ( Arg Sign )
00262 |                                              |  [128]
00263 |                                              |  []
00264 | (and)                                        | ( u1 u2 -- u3 ) ( )
00265 | (>R)                                         | ( b -- ) [ -- b ]
00266 | 3Drop                                        | ( t -- ) [30]
00267 | (R>)                                         | ( -- b ) [ b -- ]
00268 | (semi)                                       | ( -- ) ( )
q* Primitive visible Cq2A Forth 18xxx2
( w1 w2 -- q ) [ 4677, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Divisor ]  
Used in
Documentation
16*16->32
Value
    PopReg  tmp4                    ; // b
    PopReg  tmp3
    PopReg  tmp2                    ; // a
    movwf   tmp1

    movlw   17
    movwf   tmp5

    clrf16  <@" Divisor">

    bcf     Status, C

qstar_1

    rrcf    <@" Divisor"> + 1, f
    rrcf    <@" Divisor"> + 0, f
    rrcf    tmp2        , f
    rrcf    tmp1        , f
    bnc     qstar_2                 ; // B/ Carry clear, skip add

    ; Carry set, add

    movf    tmp3, w
    addwf   <@" Divisor"> + 0, f
    movf    tmp4, w
    addwfc  <@" Divisor"> + 1, f

qstar_2

    decfsz  tmp5, f
    bra     qstar_1

    movf    tmp1, w
    PushReg tmp2
    PushReg <@" Divisor"> + 0
    PushReg <@" Divisor"> + 1

    return
q@ Colon visible Cq40 Forth 18xxx2
( wRamAddress -- q ) [ 5035, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 2a+ ]   [ aDup ]   [ d@ ]   [ dSwap ]  
Used in
2q@ ]  
Documentation
Value
00153 | aDup                                         | ( w -- w w ) [9]
00154 | d@                                           | ( wRamAddress -- w ) [DFetch]
00155 | dSwap                                        | ( w1 w2 -- w2 w1 )
00156 | 2a+                                          | ( wRamAddr -- wRamAddr ) ( )
00157 | d@                                           | ( wRamAddress -- w ) [DFetch]
00158 | (semi)                                       | ( -- ) ( )
q+ Primitive visible Cq2B Forth 18xxx2
( uq1 uq2 -- uq3 ) [ 5471, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Quotient ]   [ Remainder ]  
Used in
Documentation
Value
    PopReg  <@" Quotient">  + 3
    PopReg  <@" Quotient">  + 2
    PopReg  <@" Quotient">  + 1
    PopReg  <@" Quotient">  + 0

    PopReg  <@" Remainder"> + 3
    PopReg  <@" Remainder"> + 2
    PopReg  <@" Remainder"> + 1
    movwf   <@" Remainder"> + 0

    ; // Now calculate Remainder + Quotient -> Remainder

    movf    <@" Quotient">  + 0, w
    addwf   <@" Remainder"> + 0, f
    movf    <@" Quotient">  + 1, w
    addwfc  <@" Remainder"> + 1, f
    movf    <@" Quotient">  + 2, w
    addwfc  <@" Remainder"> + 2, f
    movf    <@" Quotient">  + 3, w
    addwfc  <@" Remainder"> + 3, f

    ; // Done

    movf    <@" Remainder"> + 0, w
    PushReg <@" Remainder"> + 1
    PushReg <@" Remainder"> + 2
    PushReg <@" Remainder"> + 3

    return
q< Colon visible Cq3C Forth 18xxx2
( q1 q2 -- f ) [ 5573, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 0<> ]   [ q-$80And>r3Dropr> ]  
Used in
q> ]  
Documentation
True when q1 < q2
Value
00269 | q-$80And>r3Dropr>                            | ( q1 q2 -- b ) Helper for q comparison words [260]
00270 | 0<>                                          | ( b -- f )
00271 | (semi)                                       | ( -- ) ( )
q<= Colon visible Cq3C3D Forth 18xxx2
( q1 q2 -- f ) [ 5596, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 4swap ]   [ q>= ]  
Used in
Documentation
True when q1 <= q2
Value
00278 | 4swap                                        | ( q1 q2 -- q2 q1 ) [95]
00279 | q>=                                          | ( q1 q2 -- f ) True when q1 >= q2 [272]
00280 | (semi)                                       | ( -- ) ( )
q= Colon visible Cq3D Forth 18xxx2
( q1 q2 -- f ) [ 5610, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ q- ]   [ q0= ]  
Used in
Documentation
True when q1 = q2
Value
00286 | q-                                           | ( uq1 uq2 -- uq3 )
00287 | q0=                                          | ( q -- f ) True when q = 0 [281]
00288 | (semi)                                       | ( -- ) ( )
q> Colon visible Cq3E Forth 18xxx2
( q1 q2 -- f ) [ 5589, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 4swap ]   [ q< ]  
Used in
Documentation
True when q1 > q2
Value
00275 | 4swap                                        | ( q1 q2 -- q2 q1 ) [95]
00276 | q<                                           | ( q1 q2 -- f ) True when q1 < q2 [269]
00277 | (semi)                                       | ( -- ) ( )
q>= Colon visible Cq3E3D Forth 18xxx2
( q1 q2 -- f ) [ 5581, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 0= ]   [ q-$80And>r3Dropr> ]  
Used in
q<= ]  
Documentation
True when q1 >= q2
Value
00272 | q-$80And>r3Dropr>                            | ( q1 q2 -- b ) Helper for q comparison words [260]
00273 | 0=                                           | ( b -- f )
00274 | (semi)                                       | ( -- ) ( )
q>r Colon visible Cq3Er Forth 18xxx2
( q -- ) [ 4148, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ d>r ]   [ dSwap ]  
Used in
Documentation
Value
00074 | dSwap                                        | ( w1 w2 -- w2 w1 )
00075 | d>r                                          | ( d -- ) [66]
00076 | d>r                                          | ( d -- ) [66]
00077 | (semi)                                       | ( -- ) ( )
q0<> Colon visible Cq03C3E Forth 18xxx2
( q -- f ) [ 5616, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(or) ]   [ (semi) ]   [ 0<> ]  
Used in
qNotAnd0<> ]  
Documentation
True when q <> 0
Value
00289 | (or)                                         | ( u1 u2 -- u3 ) ( )
00290 | (or)                                         | ( u1 u2 -- u3 ) ( )
00291 | (or)                                         | ( u1 u2 -- u3 ) ( )
00292 | 0<>                                          | ( b -- f )
00293 | (semi)                                       | ( -- ) ( )
q0= Colon visible Cq03D Forth 18xxx2
( q -- f ) [ 5603, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(or) ]   [ (semi) ]   [ 0= ]  
Used in
q= ]  
Documentation
True when q = 0
Value
00281 | (or)                                         | ( u1 u2 -- u3 ) ( )
00282 | (or)                                         | ( u1 u2 -- u3 ) ( )
00283 | (or)                                         | ( u1 u2 -- u3 ) ( )
00284 | 0=                                           | ( b -- f )
00285 | (semi)                                       | ( -- ) ( )
qAnd Colon visible CqAnd Forth 18xxx2
( qu1 qu2 -- qu3 ) [ 5676, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 4Drop ]   [ 4pickAnd>r ]   [ qr> ]  
Used in
qNotAnd ]  
Documentation
Quad value bitwise and
Value
00306 | 4pickAnd>r                                   | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [294]
00307 | 4pickAnd>r                                   | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [294]
00308 | 4pickAnd>r                                   | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [294]
00309 | 4pickAnd>r                                   | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [294]
00310 | 4Drop                                        | ( q -- ) [33]
00311 | qr>                                          | ( q -- ) [78]
00312 | (semi)                                       | ( -- ) ( )
QLiteral Pascal immediate visible CQLiteral Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Compile TOS as a quad    byte literal
Value
qnegate Primitive visible Cqnegate Forth 18xxx2
( q -- -q ) [ 4108, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp4
    PopReg  tmp3
    PopReg  tmp2
    sublw   D'0'
    movwf   tmp1

    movlw   0
    subwfb  tmp2, f
    subwfb  tmp3, f
    subwfb  tmp4, f

    movf    tmp1, w
    PushReg tmp2
    PushReg tmp3
    PushReg tmp4

    return
qNegative? Primitive visible CqNegative3F Forth 18xxx2
( q -- f ) [ 3432, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
dNegative? ]  
Used in
Documentation
Value
    SwapDrop
    SwapDrop
    bra     <@" dNegative?">
qNot Colon visible CqNot Forth 18xxx2
( qu1 -- qu2 ) [ 5712, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ -1q ]   [ qXor ]  
Used in
qNotAnd ]  
Documentation
Quad value bitwise invert
Value
00327 | -1q                                          | ( -- q ) [-1]
00328 | qXor                                         | ( qu1 qu2 -- qu3 ) Quad value bitwise xor [320]
00329 | (semi)                                       | ( -- ) ( )
qNotAnd Colon visible CqNotAnd Forth 18xxx2
( qu1 qu2 -- qu3 ) [ 5720, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ qAnd ]   [ qNot ]  
Used in
qNotAnd0<> ]  
Documentation
bitwise: ! qu2 and qu1
Value
00330 | qNot                                         | ( qu1 -- qu2 ) Quad value bitwise invert [327]
00331 | qAnd                                         | ( qu1 qu2 -- qu3 ) Quad value bitwise and [306]
00332 | (semi)                                       | ( -- ) ( )
qNotAnd0<> Colon visible CqNotAnd03C3E Forth 18xxx2
( qu1 qu2 -- f ) [ 5728, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ q0<> ]   [ qNotAnd ]  
Used in
Documentation
Value
00333 | qNotAnd                                      | ( qu1 qu2 -- qu3 ) bitwise: ! qu2 and qu1 [330]
00334 | q0<>                                         | ( q -- f ) True when q <> 0 [289]
00335 | (semi)                                       | ( -- ) ( )
qOr Colon visible CqOr Forth 18xxx2
( qu1 qu2 -- qu3 ) [ 5688, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 4Drop ]   [ 4pickOr>r ]   [ qr> ]  
Used in
Documentation
Quad value bitwise or
Value
00313 | 4pickOr>r                                    | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [298]
00314 | 4pickOr>r                                    | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [298]
00315 | 4pickOr>r                                    | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [298]
00316 | 4pickOr>r                                    | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [298]
00317 | 4Drop                                        | ( q -- ) [33]
00318 | qr>                                          | ( q -- ) [78]
00319 | (semi)                                       | ( -- ) ( )
qr> Colon visible Cqr3E Forth 18xxx2
( q -- ) [ 4156, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ dr> ]   [ dSwap ]  
Used in
qAnd ]   [ qOr ]   [ qXor ]  
Documentation
Value
00078 | dr>                                          | ( d -- ) [70]
00079 | dr>                                          | ( d -- ) [70]
00080 | dSwap                                        | ( w1 w2 -- w2 w1 )
00081 | (semi)                                       | ( -- ) ( )
Quotient 4Variable used visible CQuotient Forth 18xxx2
( -- wRamAddr ) [ 242, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(/Mod) ]   [ *_8_32 ]   [ /mod16 ]   [ /mod32 ]   [ Initialization ]   [ Popq2 ]   [ Pushq2 ]   [ q- ]   [ q+ ]   [ revq- ]  
Documentation
Division quotient  result variable, and General Purpose
Value
address: 0:137, offset: 0, size: 4
qXor Colon visible CqXor Forth 18xxx2
( qu1 qu2 -- qu3 ) [ 5700, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ 4Drop ]   [ 4pickXor>r ]   [ qr> ]  
Used in
qNot ]  
Documentation
Quad value bitwise xor
Value
00320 | 4pickXor>r                                   | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [302]
00321 | 4pickXor>r                                   | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [302]
00322 | 4pickXor>r                                   | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [302]
00323 | 4pickXor>r                                   | ( b0 b1 b2 b3 b4 -- b0 b1 b2 b3 | -- b ) Helper for quad operations [302]
00324 | 4Drop                                        | ( q -- ) [33]
00325 | qr>                                          | ( q -- ) [78]
00326 | (semi)                                       | ( -- ) ( )
R> Pascal immediate visible CR3E Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Move a value from the loop to the data stack
Value
Raise Pascal immediate visible CRaise Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Raise an exception, same as Throw
Value
Ram! Colon visible CRam21 Forth 18xxx2
( b -- ) [ 3827, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(!) ]   [ (semi) ]   [ RamPtr@ ]  
Used in
++Ram! ]   [ Ram!-- ]   [ Ram!++ ]  
Documentation
Value
00054 | RamPtr@                                      | ( -- wRamAddress )
00055 | (!)                                          | ( b wRamAddress -- ) [Store]
00056 | (semi)                                       | ( -- ) ( )
Ram!-- Colon visible CRam212D2D Forth 18xxx2
( b -- ) [ 3848, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Ram! ]   [ RamPtr-- ]  
Used in
Documentation
Value
00063 | Ram!                                         | ( b -- ) [54]
00064 | RamPtr--                                     | ( -- ) ( )
00065 | (semi)                                       | ( -- ) ( )
Ram!++ Colon visible CRam212B2B Forth 18xxx2
( b -- ) [ 3834, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Ram! ]   [ RamPtr++ ]  
Used in
Documentation
Value
00057 | Ram!                                         | ( b -- ) [54]
00058 | RamPtr++                                     | ( -- ) ( )
00059 | (semi)                                       | ( -- ) ( )
Ram@ Colon visible CRam40 Forth 18xxx2
( -- b ) [ 3792, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ RamPtr@ ]  
Used in
++Ram@ ]   [ Ram@-- ]   [ Ram@++ ]  
Documentation
Value
00039 | RamPtr@                                      | ( -- wRamAddress )
00040 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00041 | (semi)                                       | ( -- ) ( )
Ram@-- Colon visible CRam402D2D Forth 18xxx2
( -- b ) [ 3820, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Ram@ ]   [ RamPtr-- ]  
Used in
Documentation
Value
00051 | Ram@                                         | ( -- b ) [39]
00052 | RamPtr--                                     | ( -- ) ( )
00053 | (semi)                                       | ( -- ) ( )
Ram@++ Colon visible CRam402B2B Forth 18xxx2
( -- b ) [ 3806, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ Ram@ ]   [ RamPtr++ ]  
Used in
Documentation
Value
00045 | Ram@                                         | ( -- b ) [39]
00046 | RamPtr++                                     | ( -- ) ( )
00047 | (semi)                                       | ( -- ) ( )
RamBank Pascal visible CRamBank Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n RamBank #1 #2 ... End
Value
RamPtr 2Variable used visible CRamPtr Forth 18xxx2
( -- wRamAddr ) [ 240, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
RamPtr-- ]   [ RamPtr! ]   [ RamPtr@ ]   [ RamPtr++ ]  
Documentation
Used for Ram operations like Ram@, equivalent to Rom ops.
Value
address: 0:133, offset: 0, size: 2
RamPtr-- Macro immediate used visible CRamPtr2D2D Forth 18xxx2
( -- ) [ 3785, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
RamPtr ]  
Used in
Ram!-- ]   [ Ram@-- ]  
Documentation
Value
    decf     <@" RamPtr"> + 0       ; // RamPtr-- ( -- )
RamPtr! Primitive visible CRamPtr21 Forth 18xxx2
( wRamAddress -- ) [ 3760, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
RamPtr ]  
Used in
2q@ ]  
Documentation
Value
    PopReg  <@" RamPtr"> + 1
    Popreg  <@" RamPtr"> + 0
    return
RamPtr@ Primitive visible CRamPtr40 Forth 18xxx2
( -- wRamAddress ) [ 3769, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
RamPtr ]  
Used in
[]Ram@ ]   [ 2q@ ]   [ Ram! ]   [ Ram@ ]  
Documentation
Value
    Pushreg <@" RamPtr"> + 0
    PushReg <@" RamPtr"> + 1
    return
RamPtr++ Macro immediate used visible CRamPtr2B2B Forth 18xxx2
( -- ) [ 3778, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
RamPtr ]  
Used in
++Ram! ]   [ ++Ram@ ]   [ Ram!++ ]   [ Ram@++ ]  
Documentation
Value
    incf    <@" RamPtr"> + 0        ; // RamPtr++ ( -- )
RawData Pascal visible CRawData Forth
( string-token -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a raw data constant XXXX, also see String. Data, " and ''
Value
Remainder 4Variable visible CRemainder Forth 18xxx2
( -- wRamAddr ) [ 243, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
(/Mod) ]   [ /mod16 ]   [ /mod32 ]   [ Popq3 ]   [ Pushq3 ]   [ q- ]   [ q+ ]   [ revq- ]  
Documentation
Division remainder result variable, and General Purpose
Value
address: 0:141, offset: 0, size: 4
Repeat Pascal immediate visible CRepeat Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Begin .. While .. Repeat
Value
RequestNoRamBank Pascal visible CRequestNoRamBank Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Clear Ram bank preference
Value
RequestRamBank Pascal visible CRequestRamBank Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n RequestRamBank :: Set a prefered ram bank for allot.
Value
Reset Macro immediate visible CReset Forth 18xxx2
( -- ) [ 3362, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    Reset                           ; // Reset ( -- )
Resources Pascal visible CResources Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
<definition> resources <word-list> enResources, sets the words in <word-list> to be used when <definition> gets used
Value
Reveal Pascal visible CReveal Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Set the visible bit for the last defined word
Value
revq- Primitive visible Crevq2D Forth 18xxx2
( uq1 uq2 -- uq3 ) [ 5545, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Quotient ]   [ Remainder ]  
Used in
Documentation
uq2 - uq1 -> uq2, reversed q-
Value
    PopReg  <@" Remainder"> + 3
    PopReg  <@" Remainder"> + 2
    PopReg  <@" Remainder"> + 1
    PopReg  <@" Remainder"> + 0

    PopReg  <@" Quotient">  + 3
    PopReg  <@" Quotient">  + 2
    PopReg  <@" Quotient">  + 1
    movwf   <@" Quotient">  + 0

    bra     DoQMin
Rom! Primitive visible CRom21 Forth 18xxx2
( b -- ) [ 3724, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tablat
    tblwt*
    return
Rom!-- Primitive visible CRom212D2D Forth 18xxx2
( b -- ) [ 3751, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tablat
    tblwt*-
    return
Rom!++ Primitive visible CRom212B2B Forth 18xxx2
( b -- ) [ 3733, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tablat
    tblwt*+
    return
Rom@ Primitive visible CRom40 Forth 18xxx2
( -- b ) [ 3672, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    tblrd*
    PushReg tablat
    return
Rom@-- Primitive visible CRom402D2D Forth 18xxx2
( -- ) [ 3715, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    tblrd*-
    PushReg tablat
    return
Rom@++ Primitive visible CRom402B2B Forth 18xxx2
( -- b ) [ 3697, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    tblrd*+
    PushReg tablat
    return
RomBank Pascal visible CRomBank Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n RomBank #1 #2 ... End
Value
RomPtr! Primitive visible CRomPtr21 Forth 18xxx2
( wRomAddress -- ) [ 3647, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tblptrh
    Popreg  tblptrl
    return
RomPtr@ Primitive visible CRomPtr40 Forth 18xxx2
( -- wRomAddress ) [ 3656, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    Pushreg tblptrl
    PushReg tblptrh
    return
RomPtr++ Macro immediate visible CRomPtr2B2B Forth 18xxx2
( -- ) [ 3665, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    tblrd*+                         ; // RomPtr++ ( -- )
rot Pascal immediate visible Crot Forth
( n1 n2 n3 -- n2 n3 n1 ) [ 0, 1] ""
Uses
Used in
Documentation
rotate the 3rd stack element to the top
Value
-rot Pascal immediate visible C2Drot Forth
( n1 n2 n3 -- n3 n1 n2 ) [ 0, 1] ""
Uses
Used in
Documentation
rotate the top stack element to the 3rd position
Value
rshift Pascal immediate visible Crshift Forth
( n1 -- n2 ) [ 0, 1] ""
Uses
Used in
Documentation
Shift the top stack item to the right, bitwise
Value
RunError Pascal visible CRunError Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate a runtime error with text on stack, also see RunError'.
Value
RunError' Pascal immediate visible CRunError27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate a runtime error with inline specified text, also see RunError.
Value
s>d Primitive visible Cs3Ed Forth 18xxx2
( b -- w ) [ 4636, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
with sign extension
Value
    PushNothing
    btfsc   indf0, 7
    retlw   D'255'
    retlw   D'0'
sd< Colon visible Csd3C Forth 18xxx2
( sd sd -- f ) [ 4566, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ d- ]   [ dNegative? ]  
Used in
sd> ]   [ sd>= ]  
Documentation
Value
00100 | d-                                           | ( wu1 wu2 -- wu3 )
00101 | dNegative?                                   | ( d -- f )
00102 | (semi)                                       | ( -- ) ( )
sd<= Colon visible Csd3C3D Forth 18xxx2
( sd sd -- f ) [ 4587, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(not) ]   [ (semi) ]   [ sd> ]  
Used in
Documentation
Value
00109 | sd>                                          | ( sd sd -- f ) [103]
00110 | (not)                                        | ( b -- b ) ( )
00111 | (semi)                                       | ( -- ) ( )
sd> Colon visible Csd3E Forth 18xxx2
( sd sd -- f ) [ 4573, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ dSwap ]   [ sd< ]  
Used in
sd<= ]  
Documentation
Value
00103 | dSwap                                        | ( w1 w2 -- w2 w1 )
00104 | sd<                                          | ( sd sd -- f ) [100]
00105 | (semi)                                       | ( -- ) ( )
sd>= Colon visible Csd3E3D Forth 18xxx2
( sd sd -- f ) [ 4580, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(not) ]   [ (semi) ]   [ sd< ]  
Used in
Documentation
Value
00106 | sd<                                          | ( sd sd -- f ) [100]
00107 | (not)                                        | ( b -- b ) ( )
00108 | (semi)                                       | ( -- ) ( )
SearchPath Pascal visible CSearchPath Forth
( -- <string-token>) [ 0, 1] ""
Uses
Used in
Documentation
Get  the current search path
Value
SetBreak Pascal visible CSetBreak Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Set a Pascal break (for compiler debuging)
Value
SetMeta Pascal visible CSetMeta Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Set the meta bit for the token following inline
Value
SetUnMeta Pascal visible CSetUnMeta Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Clear the meta bit for the token following inline
Value
SetUnUsed Pascal visible CSetUnUsed Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Clear the used bit for the token following inline
Value
SetUsed Pascal visible CSetUsed Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Set the used bit for the token following inline
Value
ShowAllocations Pascal visible CShowAllocations Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Make a dump of all RAM allocations
Value
ShowCallCounts Pascal visible CShowCallCounts Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Show some compile stastistics
Value
ShowCallTree Pascal visible CShowCallTree Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Show some compile stastistics
Value
ShowStatistics Pascal visible CShowStatistics Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Show some compile stastistics
Value
ShowVocs Pascal visible CShowVocs Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Show a list of all defined vocs.
Value
Sleep Macro immediate visible CSleep Forth 18xxx2
( -- ) [ 3355, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    sleep                           ; // Sleep ( -- )
sp! Colon visible Csp21 Forth 18xxx2
( -- ) [ 5396, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ sp@ ]   [ spSave! ]  
Used in
Documentation
Value
00215 | sp@                                          | ( -- w )
00216 | spSave!                                      | ( w -- ) [212]
00217 | (semi)                                       | ( -- ) ( )
sp-! Colon visible Csp2D21 Forth 18xxx2
( b -- ) [ 5411, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(>R) ]   [ (R>) ]   [ (semi) ]   [ d- ]   [ spSave! ]   [ spSave@ ]   [ u>ud ]  
Used in
Documentation
Value
00223 | (>R)                                         | ( b -- ) [ -- b ]
00224 | spSave@                                      | ( -- w ) [209]
00225 | (R>)                                         | ( -- b ) [ b -- ]
00226 | u>ud                                         | ( b -- w ) ( )
00227 | d-                                           | ( wu1 wu2 -- wu3 )
00228 | spSave!                                      | ( w -- ) [212]
00229 | (semi)                                       | ( -- ) ( )
sp? Colon visible Csp3F Forth 18xxx2
( -- f ) [ 5422, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ d= ]   [ sp@ ]   [ spSave@ ]  
Used in
Documentation
Value
00230 | sp@                                          | ( -- w )
00231 | spSave@                                      | ( -- w ) [209]
00232 | d=                                           | ( w1 w2 -- f )
00233 | (semi)                                       | ( -- ) ( )
sp@ Primitive visible Csp40 Forth 18xxx2
( -- w ) [ 5339, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
sp! ]   [ sp? ]  
Documentation
Value
    PushReg fsr0l
    PushReg fsr0h
    return

sp+! Colon visible Csp2B21 Forth 18xxx2
( b -- ) [ 5403, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ d+ ]   [ spSave! ]   [ spSave@ ]   [ u>ud ]  
Used in
Documentation
Value
00218 | u>ud                                         | ( b -- w ) ( )
00219 | spSave@                                      | ( -- w ) [209]
00220 | d+                                           | ( wu1 wu2 -- wu3 )
00221 | spSave!                                      | ( w -- ) [212]
00222 | (semi)                                       | ( -- ) ( )
sp0 Primitive visible Csp0 Forth 18xxx2
( -- w ) [ 5349, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PushLit ( SZero >> 0) & 0xff
    PushLit ( SZero >> 8) & 0xff
    return

sp0? Primitive visible Csp03F Forth 18xxx2
( -- f ) [ 5359, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
True on stack error
Value
    PushReg tmp1
    movlw   (( SZero + 1) >> 0) & 0xff
    cpfseq  fsr0l                   ; // S/ stack not in error
    retlw   True                    ; // ----> stack error -> True

    movlw   (( SZero + 1) >> 8) & 0xff
    cpfseq  fsr0h                   ; // S/ stack Ok
    retlw   True                    ; // ----> stack error -> True
    retlw   False                   ; // ----> stack ok    -> False

Space Pascal immediate visible CSpace Forth
( -- n ) [ 0, 1] ""
Uses
Used in
Documentation
Push a space character
Value
spSave 2Variable visible CspSave Forth 18xxx2
( -- wRamAddr ) [ 241, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
@spSave ]  
Documentation
Temporary storage for SP checks
Value
address: 0:135, offset: 0, size: 2
spSave! Colon visible CspSave21 Forth 18xxx2
( w -- ) [ 5389, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ @spSave ]   [ d! ]  
Used in
sp! ]   [ sp-! ]   [ sp+! ]  
Documentation
Value
00212 | @spSave                                      | ( -- wRamAddress ) [207]
00213 | d!                                           | ( w wRamAddress -- )
00214 | (semi)                                       | ( -- ) ( )
spSave@ Colon visible CspSave40 Forth 18xxx2
( -- w ) [ 5382, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(semi) ]   [ @spSave ]   [ d@ ]  
Used in
sp-! ]   [ sp? ]   [ sp+! ]  
Documentation
Value
00209 | @spSave                                      | ( -- wRamAddress ) [207]
00210 | d@                                           | ( wRamAddress -- w ) [DFetch]
00211 | (semi)                                       | ( -- ) ( )
StatusTmp Variable used visible CStatusTmp Forth 18xxx2
( -- wRamAddr ) [ 231, 12] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Initialization ]  
Documentation
Temporary for processor status register
Value
address: 0:128, offset: 0, size: 1
String Pascal visible CString Forth
( string-token -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a string constant XXXX, also see Data. RawData, " and ''
Value
Struct Pascal visible CStruct Forth
( -- 0 ) [ 0, 1] ""
Uses
Used in
Documentation
Define structure offsets Struct or ExtendStruct, Field or 2Field, EndStruct
Value
swap Pascal immediate visible Cswap Forth
( n1 n2 -- n2 n1 ) [ 0, 1] ""
Uses
Used in
Documentation
swap top and sub top stack elements
Value
SwapDrop Macro immediate used visible CSwapDrop Forth 18xxx2
( b b -- b ) [ 5332, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
d0< ]  
Documentation
Value
    SwapDrop                        ; // SwapDrop ( b1 b2 -- b2 )
system.Execute Pascal visible Csystem2EExecute Only
( <string-token> <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
" Program" " args" system.Execute"
Value
system.reset Pascal visible Csystem2Ereset Only
( <> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Clear complete x4th system and go interpreting
Value
system.ShowResults Pascal visible Csystem2EShowResults Only
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Let application dump it's user feedback to a file, name popped from stack
Value
SystemDump' Pascal visible CSystemDump27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Make a debug dump to a file, use as Dump' afile.ext'
Value
t! Colon visible Ct21 Forth 18xxx2
( w b wRamAddress -- ) [ 5024, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(!) ]   [ (+rot) ]   [ (lit) ]   [ (pick) ]   [ (semi) ]   [ 2a+ ]   [ d! ]  
Used in
Documentation
Value
00140 | (+rot)                                       | ( b1 b2 b3 -- b2 b3 b1 )
00141 | (lit)                                        | ( -- b ) ( Arg Sign )
00142 |                                              |  [2]
00143 |                                              |  []
00144 | (pick)                                       | ( u1 -- u2 )
00145 | (lit)                                        | ( -- b ) ( Arg Sign )
00146 |                                              |  [2]
00147 |                                              |  []
00148 | (pick)                                       | ( u1 -- u2 )
00149 | 2a+                                          | ( wRamAddr -- wRamAddr ) ( )
00150 | (!)                                          | ( b wRamAddress -- ) [Store]
00151 | d!                                           | ( w wRamAddress -- )
00152 | (semi)                                       | ( -- ) ( )
t@ Colon visible Ct40 Forth 18xxx2
( wRamAddress -- w b ) [ 5013, 2] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
(@) ]   [ (semi) ]   [ 2a+ ]   [ aDup ]   [ d@ ]   [ dSwap ]  
Used in
Documentation
Value
00134 | aDup                                         | ( w -- w w ) [9]
00135 | d@                                           | ( wRamAddress -- w ) [DFetch]
00136 | dSwap                                        | ( w1 w2 -- w2 w1 )
00137 | 2a+                                          | ( wRamAddr -- wRamAddr ) ( )
00138 | (@)                                          | ( wRamAddress -- b ) [Fetch]
00139 | (semi)                                       | ( -- ) ( )
Then Pascal immediate visible CThen Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
n If .. Else .. Then or EndIf
Value
Throw Pascal immediate visible CThrow Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Throw an exception, same as Raise
Value
Title Macro immediate used visible CTitle Forth 18xxx2
( -- ) [ 1657, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Sets a title for the assembler
Value
  TITLE       $aTitle$
  <!
    AddDoc' Title=$aTitle$'
  >
TLiteral Pascal immediate visible CTLiteral Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Compile TOS as a tripple byte literal
Value
To Pascal immediate visible CTo Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Place a value into a Value word, same as =.
Value
todo' Pascal immediate visible Ctodo27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate a runtime todo msg with inline specified text.
Value
token Pascal visible Ctoken Forth
( bSep -- <string-token> ) [ 0, 1] ""
Uses
Used in
Documentation
Read bSep separated token from input stream
Value
True Pascal immediate visible CTrue Forth
( -- f ) [ 0, 1] ""
Uses
Used in
Documentation
Push boolean true
Value
True! Primitive visible CTrue21 Forth 18xxx2
( wRamAddress -- ) [ 3930, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
ff! ]  
Documentation
Value
    PopReg  fsr2h
    movwf   fsr2l
    movlw   True
    movwf   indf2
    Drop
    return
TrueFalse 2Constant visible CTrueFalse Forth 18xxx2
( -- w ) [ 218, 18] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
255
TrueTrue 2Constant visible CTrueTrue Forth 18xxx2
( -- w ) [ 216, 19] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
65535
Try Pascal immediate visible CTry Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
try .. Except, Catch or Finally .. EndTry
Value
Type Pascal visible CType Forth
( string-token -- ) [ 0, 1] ""
Uses
Used in
Documentation
Type string token to console
Value
u>ud Macro immediate used visible Cu3Eud Forth 18xxx2
( b -- w ) [ 4629, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
sp-! ]   [ sp+! ]  
Documentation
Value
    PushLit D'0'                    ; // u>ud ( u -- wu )
ud>uq Alias visible Cud3Euq Forth 18xxx2
( -- w ) [ 4646, 8] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
0d ]  
Used in
Documentation
Value
0d
UnBug Pascal visible CUnBug Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Stop debug processing (for compiler debugging)
Value
unix>str Pascal visible Cunix3Estr Forth
( n -- <string-token>) [ 0, 1] ""
Uses
Used in
.infoTime ]  
Documentation
Convert n to an ISO date time string
Value
Until Pascal immediate visible CUntil Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Begin .. ( f ) Until
Value
untoken Pascal visible Cuntoken Forth
(<string-token> bSep -- ) [ 0, 1] ""
Uses
Used in
Documentation
Push back string token separated by bSep into input stream
Value
Used Pascal visible CUsed Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Set the used bit for the last defined word
Value
Uses Pascal visible CUses Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Uses modulenames EndUses, Module Private Public Uses Export EndModule
Value
Value Pascal visible CValue Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a Value (using the To concept)
Value
ValueBegin Macro immediate visible CValueBegin Compiler 18xxx2
( -- ) [ 1706, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
  ; // ===========================================
  ; // ======== Value initialization code ========

ValueInit                           ; // Value initialization code is compiled here
                                    ; // Followed by the rest of ValueBegin ( )
    SetBSRDefault                   ; // Setup BSR
    AddressToFsr0 SZero             ; // Setup data stack
    AddressToFsr1 LZero             ; // Setup loop stack
ValueEnd Macro immediate visible CValueEnd Compiler 18xxx2
( -- ) [ 1723, 6] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Main ]  
Used in
Documentation
Value
    goto    <@" Main">              ; // Jump into the 4th main function.

  ; // ======== End of value initialization code ========
  ; // ==================================================
Variable Pascal visible CVariable Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Define a variable :: Variable Truus
Value
Vocabulary Pascal visible CVocabulary Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
To be able to define new vocs
Value
warning Pascal visible Cwarning Forth
( <string-token> -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate a warning with text on stack, also see Warning'.
Value
Warning' Pascal immediate visible CWarning27 Forth
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
Generate a runtime error with inline specified text, also see warning.
Value
While Pascal immediate visible CWhile Forth
( n -- ) [ 0, 1] ""
Uses
Used in
Documentation
Begin .. While .. Repeat
Value
xor Pascal immediate visible Cxor Forth
( n1 n2 -- n3 ) [ 0, 1] ""
Uses
Used in
Documentation
bitwise xor
Value
Xor! Primitive visible CXor21 Forth 18xxx2
( b wRamAddress -- ) [ 3909, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  fsr2h
    PopReg  fsr2l
    xorwf   indf2
    Drop
    return
Xor32 Primitive visible CXor32 Forth 18xxx2
( q q -- q ) [ 4025, 5] "D:\PrjD7\x4th\work\Lib\18xxx2\18xxx2.4th"
Uses
Used in
Documentation
Value
    PopReg  tmp1
    PopReg  tmp2
    PopReg  tmp3
    PopReg  tmp4

    xorwf   tmp1, f
    Drop
    xorwf   tmp2, f
    Drop
    xorwf   tmp3, f
    Drop
    xorwf   tmp4, w

    PushReg tmp3
    PushReg tmp2
    PushReg tmp1

    return
XVersion" Pascal visible CXVersion22 Only
( -- ) [ 0, 1] ""
Uses
Used in
Documentation
To check versions
Value