LPC8xx Forth in assembler, from a Kiel user Starting point for a Work In Progress
Fork of ENORA-Forth by
Original author reports this (original file) compiled with Kiel tools. It is for an NXP LPC812 processor on the 800MAX board. It is considered a Table Token Forth. ARM compiler/assembler is not as robust as the Kiel - per the original author.
Forth.s@1:d7744c74e50f, 2015-12-06 (annotated)
- Committer:
- olzeke51
- Date:
- Sun Dec 06 05:18:41 2015 +0000
- Revision:
- 1:d7744c74e50f
- Parent:
- 0:df922596d756
basic copy of original
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Recifarium | 0:df922596d756 | 1 | ; |
Recifarium | 0:df922596d756 | 2 | ; Continuer a coder interpret.... |
Recifarium | 0:df922596d756 | 3 | ;U/MOD a peut-être des soucis... |
Recifarium | 0:df922596d756 | 4 | ; Impression numeriques KO |
Recifarium | 0:df922596d756 | 5 | ; |
Recifarium | 0:df922596d756 | 6 | ; : call >r ; |
Recifarium | 0:df922596d756 | 7 | ; : twice: r> dup call call ; |
Recifarium | 0:df922596d756 | 8 | ; : quadruple twice: dup + ; |
Recifarium | 0:df922596d756 | 9 | ; |
Recifarium | 0:df922596d756 | 10 | ; Voir pb des caractères de contrôle |
Recifarium | 0:df922596d756 | 11 | ; TESTER WORD |
Recifarium | 0:df922596d756 | 12 | ; |
Recifarium | 0:df922596d756 | 13 | EXPORT Reset_Handler |
Recifarium | 0:df922596d756 | 14 | EXPORT __initial_sp |
Recifarium | 0:df922596d756 | 15 | AREA |.text|, CODE |
Recifarium | 0:df922596d756 | 16 | ; IMPORT __Vectors |
Recifarium | 0:df922596d756 | 17 | THUMB |
olzeke51 | 1:d7744c74e50f | 18 | ;grz added this incluce |
olzeke51 | 1:d7744c74e50f | 19 | #include "lpc8xx.s" |
olzeke51 | 1:d7744c74e50f | 20 | |
Recifarium | 0:df922596d756 | 21 | BuffSize EQU 64 |
Recifarium | 0:df922596d756 | 22 | ;---------------------------------- |
Recifarium | 0:df922596d756 | 23 | ; Values that can be customise |
Recifarium | 0:df922596d756 | 24 | ; Data stack & Return Stack are @ the begining |
Recifarium | 0:df922596d756 | 25 | ; of Data Memory area |
Recifarium | 0:df922596d756 | 26 | |
Recifarium | 0:df922596d756 | 27 | DataStackLength EQU 32 * 4 ; 32 cells |
Recifarium | 0:df922596d756 | 28 | |
olzeke51 | 1:d7744c74e50f | 29 | ; grz error correction - cjouldn't access the chip.s file for this value |
olzeke51 | 1:d7744c74e50f | 30 | RAMForIAP EQU 128 |
olzeke51 | 1:d7744c74e50f | 31 | |
Recifarium | 0:df922596d756 | 32 | ; Then follow the return stack for a length of: |
Recifarium | 0:df922596d756 | 33 | |
Recifarium | 0:df922596d756 | 34 | ReturnStackLength EQU 32 * 4 ; 32 cells |
Recifarium | 0:df922596d756 | 35 | |
Recifarium | 0:df922596d756 | 36 | ; Then follow internal values |
Recifarium | 0:df922596d756 | 37 | ; UserVar EQU 64 * 4 ; 64 cells |
Recifarium | 0:df922596d756 | 38 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 39 | ; Registers allocation | |
Recifarium | 0:df922596d756 | 40 | ; They are in this way to allow | |
Recifarium | 0:df922596d756 | 41 | ; the use of r0 r1 r2 r3 | |
Recifarium | 0:df922596d756 | 42 | ; to call subroutine | |
Recifarium | 0:df922596d756 | 43 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 44 | ALIAS r0, WRK0 ; WoRK0 register |
Recifarium | 0:df922596d756 | 45 | ALIAS r1, WRK1 ; WoRK1 register |
Recifarium | 0:df922596d756 | 46 | ALIAS r2, WRK2 ; WoRK2 register |
Recifarium | 0:df922596d756 | 47 | ALIAS r3, WRK ; WoRK register |
Recifarium | 0:df922596d756 | 48 | ALIAS r4, IPTR ; Instruction PoinTeR |
Recifarium | 0:df922596d756 | 49 | ALIAS r5, NXT ; Contain the NeXT routine address |
Recifarium | 0:df922596d756 | 50 | ALIAS r6, TOS ; Top Of Stack , stack managed by sp |
Recifarium | 0:df922596d756 | 51 | ALIAS r7, RPTR ; Return stack PoinTeR |
Recifarium | 0:df922596d756 | 52 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 53 | ; Flag used in dictionary | |
Recifarium | 0:df922596d756 | 54 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 55 | Cmponly EQU 0x20 ; Can't be interpreted |
Recifarium | 0:df922596d756 | 56 | Inline EQU 0x40 ; Indicate a word can be inline (future !) |
Recifarium | 0:df922596d756 | 57 | Immed EQU 0x80 ; Indicate the word must be run immediatly |
Recifarium | 0:df922596d756 | 58 | |
Recifarium | 0:df922596d756 | 59 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 60 | ; Token equivalence |
Recifarium | 0:df922596d756 | 61 | ; |
Recifarium | 0:df922596d756 | 62 | ; If you know a better way |
Recifarium | 0:df922596d756 | 63 | ; to define this with µVision |
Recifarium | 0:df922596d756 | 64 | ; let me know |
Recifarium | 0:df922596d756 | 65 | ; The order of the definition |
Recifarium | 0:df922596d756 | 66 | ; of the EQU don't matter |
Recifarium | 0:df922596d756 | 67 | ; only the value itself is important |
Recifarium | 0:df922596d756 | 68 | ; If you add a token don't forget |
Recifarium | 0:df922596d756 | 69 | ; to add an entry in the token's addresses |
Recifarium | 0:df922596d756 | 70 | ;----------------------------------------------------- |
Recifarium | 0:df922596d756 | 71 | ;Token name ; Word |
Recifarium | 0:df922596d756 | 72 | |
Recifarium | 0:df922596d756 | 73 | Tick EQU (TokTab-wxTick)/4 ; . |
Recifarium | 0:df922596d756 | 74 | Dot EQU (TokTab-wxDot)/4 ; . |
Recifarium | 0:df922596d756 | 75 | UDot EQU (TokTab-wxUDot)/4 ; U. |
Recifarium | 0:df922596d756 | 76 | Sign EQU (TokTab-wxSign)/4 ; SIGN |
Recifarium | 0:df922596d756 | 77 | NumStr EQU (TokTab-wxNumStr)/4 ; #S |
Recifarium | 0:df922596d756 | 78 | StrPic EQU (TokTab-wxStrPic)/4 ; <# |
Recifarium | 0:df922596d756 | 79 | Numb EQU (TokTab-wxNumb)/4 ; # |
Recifarium | 0:df922596d756 | 80 | EndPic EQU (TokTab-wxEndPic)/4 ; #> |
Recifarium | 0:df922596d756 | 81 | Abs EQU (TokTab-wxAbs)/4 ; ABS |
Recifarium | 0:df922596d756 | 82 | Str EQU (TokTab-wxStr)/4 ; STR |
Recifarium | 0:df922596d756 | 83 | Hold EQU (TokTab-wxHold)/4 ; HOLD |
Recifarium | 0:df922596d756 | 84 | Extract EQU (TokTab-wxExtract)/4 ; EXTRACT |
Recifarium | 0:df922596d756 | 85 | Hld EQU (TokTab-wxHld)/4 ; HLD |
Recifarium | 0:df922596d756 | 86 | Pad EQU (TokTab-wxPad)/4 ; PAD |
Recifarium | 0:df922596d756 | 87 | UMSMod EQU (TokTab-wxUMSMod)/4 ; UM/MOD |
Recifarium | 0:df922596d756 | 88 | MSMod EQU (TokTab-wxMSMod)/4 ; M/MOD |
Recifarium | 0:df922596d756 | 89 | SMod EQU (TokTab-wxSMod)/4 ; /MOD |
Recifarium | 0:df922596d756 | 90 | Neg EQU (TokTab-wxNeg)/4 ; NEGATE |
Recifarium | 0:df922596d756 | 91 | RAt EQU (TokTab-wxRAt)/4 ; R@ |
Recifarium | 0:df922596d756 | 92 | IsNull EQU (TokTab-wxIsNull)/4 ; 0= |
Recifarium | 0:df922596d756 | 93 | ULess EQU (TokTab-wxUless)/4 ; U< |
Recifarium | 0:df922596d756 | 94 | Mul EQU (TokTab-wxMul)/4 ; * |
Recifarium | 0:df922596d756 | 95 | DotS EQU (TokTab-wxDotS)/4 ; .S |
Recifarium | 0:df922596d756 | 96 | Inter EQU (TokTab-wxInter)/4 ; INTERPRET |
Recifarium | 0:df922596d756 | 97 | Word EQU (TokTab-wxWord)/4 ; WORD |
Recifarium | 0:df922596d756 | 98 | toIn EQU (TokTab-wxtoIn)/4 ; >IN |
Recifarium | 0:df922596d756 | 99 | nTib EQU (TokTab-wxnTib)/4 ; #TIB |
Recifarium | 0:df922596d756 | 100 | State EQU (TokTab-wxState)/4 ; STATE |
Recifarium | 0:df922596d756 | 101 | RS0 EQU (TokTab-wxFalse)/4 ; not a user token |
Recifarium | 0:df922596d756 | 102 | False EQU (TokTab-wxFalse)/4 ; FALSE |
Recifarium | 0:df922596d756 | 103 | True EQU (TokTab-wxTrue)/4 ; TRUE |
Recifarium | 0:df922596d756 | 104 | DNeg EQU (TokTab-wxDNeg)/4 ; DNEGATE |
Recifarium | 0:df922596d756 | 105 | DPlus EQU (TokTab-wxDPlus)/4 ; D+ |
Recifarium | 0:df922596d756 | 106 | DMinus EQU (TokTab-wxDMinus)/4 ; D- |
Recifarium | 0:df922596d756 | 107 | IsNeg EQU (TokTab-wxIsNeg)/4 ; <0 |
Recifarium | 0:df922596d756 | 108 | TDup EQU (TokTab-wxTDup)/4 ; 2DUP |
Recifarium | 0:df922596d756 | 109 | UMPlus EQU (TokTab-wxUMPlus)/4 ; UM+ |
Recifarium | 0:df922596d756 | 110 | TDrop EQU (TokTab-wx2Drop)/4 ; 2DROP |
Recifarium | 0:df922596d756 | 111 | Fill EQU (TokTab-wxFill)/4 ; FILL |
Recifarium | 0:df922596d756 | 112 | Foursta EQU (TokTab-wxFoursta)/4 ; 4* |
Recifarium | 0:df922596d756 | 113 | MRot EQU (TokTab-wxMRot)/4 ; -ROT |
Recifarium | 0:df922596d756 | 114 | Rot EQU (TokTab-wxRot)/4 ; ROT |
Recifarium | 0:df922596d756 | 115 | Dec EQU (TokTab-wxDec)/4 ; DECIMAL |
Recifarium | 0:df922596d756 | 116 | Base EQU (TokTab-wxBase)/4 ; BASE |
Recifarium | 0:df922596d756 | 117 | Toupp EQU (TokTab-wxToupp)/4 ; TOUPPER |
Recifarium | 0:df922596d756 | 118 | Find EQU (TokTab-wxFind)/4 ; FIND |
Recifarium | 0:df922596d756 | 119 | Upper EQU (TokTab-wxUpper)/4 ; UPPER |
Recifarium | 0:df922596d756 | 120 | Count EQU (TokTab-wxCount)/4 ; COUNT |
Recifarium | 0:df922596d756 | 121 | Type EQU (TokTab-wxType)/4 ; TYPE |
Recifarium | 0:df922596d756 | 122 | Words EQU (TokTab-wxWords)/4 ; WORDS |
Recifarium | 0:df922596d756 | 123 | CAt EQU (TokTab-wxCAt)/4 ; C@ |
Recifarium | 0:df922596d756 | 124 | At EQU (TokTab-wxAt)/4 ; @ |
Recifarium | 0:df922596d756 | 125 | Bl EQU (TokTab-wxBl)/4 ; BL |
Recifarium | 0:df922596d756 | 126 | Space EQU (TokTab-wxSpace)/4 ; SPACE |
Recifarium | 0:df922596d756 | 127 | Spaces EQU (TokTab-wxSpaces)/4 ; SPACES |
Recifarium | 0:df922596d756 | 128 | CStore EQU (TokTab-wxCStore)/4 ; C! |
Recifarium | 0:df922596d756 | 129 | Store EQU (TokTab-wxStore)/4 ; ! |
Recifarium | 0:df922596d756 | 130 | Swap EQU (TokTab-wxSwap)/4 ; SWAP |
Recifarium | 0:df922596d756 | 131 | Accept EQU (TokTab-wxAccept)/4 ; ACCEPT |
Recifarium | 0:df922596d756 | 132 | Key EQU (TokTab-wxKey)/4 ; KEY |
Recifarium | 0:df922596d756 | 133 | BCode EQU (TokTab-wxBCode)/4 |
Recifarium | 0:df922596d756 | 134 | Ten EQU (TokTab-wxTen)/4 ; #10 |
Recifarium | 0:df922596d756 | 135 | Two EQU (TokTab-wxTwo)/4 ; #2 |
Recifarium | 0:df922596d756 | 136 | One EQU (TokTab-wxOne)/4 ; 1 |
Recifarium | 0:df922596d756 | 137 | Zero EQU (TokTab-wxZero)/4 ; 0 |
Recifarium | 0:df922596d756 | 138 | Within EQU (TokTab-wxWithin)/4 ; WITHIN |
Recifarium | 0:df922596d756 | 139 | FromR EQU (TokTab-wxFromR)/4 ; R> |
Recifarium | 0:df922596d756 | 140 | ToR EQU (TokTab-wxToR)/4 ; >R |
Recifarium | 0:df922596d756 | 141 | Digit EQU (TokTab-wxDigit)/4 ; DIGIT |
Recifarium | 0:df922596d756 | 142 | Not EQU (TokTab-wxNot)/4 ; NOT |
Recifarium | 0:df922596d756 | 143 | Xor EQU (TokTab-wxXor)/4 ; XOR |
Recifarium | 0:df922596d756 | 144 | Or EQU (TokTab-wxOr)/4 ; OR |
Recifarium | 0:df922596d756 | 145 | And EQU (TokTab-wxAnd)/4 ; AND |
Recifarium | 0:df922596d756 | 146 | Eq EQU (TokTab-wxEq)/4 ; = |
Recifarium | 0:df922596d756 | 147 | Gt EQU (TokTab-wxGt)/4 ; > |
Recifarium | 0:df922596d756 | 148 | Lt EQU (TokTab-wxLt)/4 ; < |
Recifarium | 0:df922596d756 | 149 | Over EQU (TokTab-wxOver)/4 ; OVER |
Recifarium | 0:df922596d756 | 150 | Cr EQU (TokTab-wxCr)/4 ; CR |
Recifarium | 0:df922596d756 | 151 | Max EQU (TokTab-wxMax)/4 ; MAX |
Recifarium | 0:df922596d756 | 152 | Min EQU (TokTab-wxMin)/4 ; MIN |
Recifarium | 0:df922596d756 | 153 | Plus1 EQU (TokTab-wxPlus1)/4 ; 1+ |
Recifarium | 0:df922596d756 | 154 | Minus1 EQU (TokTab-wxMinus1)/4 ; 1- |
Recifarium | 0:df922596d756 | 155 | Snap EQU (TokTab-wxSnap)/4 |
Recifarium | 0:df922596d756 | 156 | DupNZ EQU (TokTab-wxDupNZ)/4 ; ?DUP |
Recifarium | 0:df922596d756 | 157 | Dup EQU (TokTab-wxDup)/4 ; DUP |
Recifarium | 0:df922596d756 | 158 | Minus EQU (TokTab-wxMinus)/4 ; - |
Recifarium | 0:df922596d756 | 159 | Lit8 EQU (TokTab-wxdoLit8)/4 |
Recifarium | 0:df922596d756 | 160 | Lit16 EQU (TokTab-wxdoLit16)/4 |
Recifarium | 0:df922596d756 | 161 | Lit32 EQU (TokTab-wxdoLit32)/4 |
Recifarium | 0:df922596d756 | 162 | Plus EQU (TokTab-wxPlus)/4 ; + |
Recifarium | 0:df922596d756 | 163 | Exit EQU (TokTab-wxExit)/4 ; EXIT |
Recifarium | 0:df922596d756 | 164 | Bra EQU (TokTab-wxBra)/4 |
Recifarium | 0:df922596d756 | 165 | ZBra EQU (TokTab-wxZBra)/4 |
Recifarium | 0:df922596d756 | 166 | Emit EQU (TokTab-wxEmit)/4 ; EMIT |
Recifarium | 0:df922596d756 | 167 | SpAt EQU (TokTab-wxSpAt)/4 ; SP@ |
Recifarium | 0:df922596d756 | 168 | Sp0 EQU (TokTab-wxSp0)/4 ; SP0 |
Recifarium | 0:df922596d756 | 169 | Slash4 EQU (TokTab-wxSlash4)/4 ; /4 |
Recifarium | 0:df922596d756 | 170 | ;USMod EQU (TokTab-wxUSMod)/4 ; U/MOD ????? |
Recifarium | 0:df922596d756 | 171 | Drop EQU (TokTab-wxDrop)/4 ; DROP |
Recifarium | 0:df922596d756 | 172 | Execute EQU (TokTab-wxExecute)/4 ; EXECUTE |
Recifarium | 0:df922596d756 | 173 | Depth EQU (TokTab-wxDepth)/4 ; DEPTH |
Recifarium | 0:df922596d756 | 174 | Lf EQU (TokTab-wxLf)/4 ; LF |
Recifarium | 0:df922596d756 | 175 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 176 | ;Not so usefull macro...to be change |
Recifarium | 0:df922596d756 | 177 | MACRO |
Recifarium | 0:df922596d756 | 178 | $lab LINK $p |
Recifarium | 0:df922596d756 | 179 | $lab DCD $p |
Recifarium | 0:df922596d756 | 180 | MEND |
Recifarium | 0:df922596d756 | 181 | |
Recifarium | 0:df922596d756 | 182 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 183 | ;Handy way to code the Next routine |
Recifarium | 0:df922596d756 | 184 | MACRO |
Recifarium | 0:df922596d756 | 185 | $lab RET |
Recifarium | 0:df922596d756 | 186 | $lab BX NXT |
Recifarium | 0:df922596d756 | 187 | MEND |
Recifarium | 0:df922596d756 | 188 | |
Recifarium | 0:df922596d756 | 189 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 190 | ; These macro compute the displacement |
Recifarium | 0:df922596d756 | 191 | ; which is store in a halfword aligned |
Recifarium | 0:df922596d756 | 192 | MACRO |
Recifarium | 0:df922596d756 | 193 | $label Branch $target |
Recifarium | 0:df922596d756 | 194 | $label DCB Bra |
Recifarium | 0:df922596d756 | 195 | DCW $target-. |
Recifarium | 0:df922596d756 | 196 | MEND |
Recifarium | 0:df922596d756 | 197 | |
Recifarium | 0:df922596d756 | 198 | MACRO |
Recifarium | 0:df922596d756 | 199 | $label ZBranch $target |
Recifarium | 0:df922596d756 | 200 | $label DCB ZBra |
Recifarium | 0:df922596d756 | 201 | DCW $target-. |
Recifarium | 0:df922596d756 | 202 | MEND |
Recifarium | 0:df922596d756 | 203 | |
Recifarium | 0:df922596d756 | 204 | ;-----------------------------------???????????????????????? |
Recifarium | 0:df922596d756 | 205 | ; These macro Create Counted string |
Recifarium | 0:df922596d756 | 206 | MACRO |
Recifarium | 0:df922596d756 | 207 | $label String $String |
Recifarium | 0:df922596d756 | 208 | $label DCB $String |
Recifarium | 0:df922596d756 | 209 | MEND |
Recifarium | 0:df922596d756 | 210 | m0 DCB m2-m1 |
Recifarium | 0:df922596d756 | 211 | m1 DCB "TOTO" |
Recifarium | 0:df922596d756 | 212 | m2 EQU . |
Recifarium | 0:df922596d756 | 213 | |
Recifarium | 0:df922596d756 | 214 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 215 | ; High level routine doCol/Enter (save IPTR) |
Recifarium | 0:df922596d756 | 216 | ; 8 bytes long for each high level word |
Recifarium | 0:df922596d756 | 217 | MACRO |
Recifarium | 0:df922596d756 | 218 | $lab doCol ; !!! We come here from a BX WRK2 in the next routine see below |
Recifarium | 0:df922596d756 | 219 | $lab STR IPTR,[RPTR] ; Save Instruction pointer to the return Stack |
Recifarium | 0:df922596d756 | 220 | ADDS RPTR, RPTR, #4 ; Update Return stack pointer |
Recifarium | 0:df922596d756 | 221 | ADDS IPTR, WRK2, #7 ; Warning! adjusted to point after the RET Macro. Point to the first byte/token in the byte/token list |
Recifarium | 0:df922596d756 | 222 | RET |
Recifarium | 0:df922596d756 | 223 | MEND |
Recifarium | 0:df922596d756 | 224 | |
Recifarium | 0:df922596d756 | 225 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 226 | ; The long next routine |
Recifarium | 0:df922596d756 | 227 | ; we jump into it with a BX NXT |
Recifarium | 0:df922596d756 | 228 | ; where NXT is the register which contain |
Recifarium | 0:df922596d756 | 229 | ; the doNext address |
Recifarium | 0:df922596d756 | 230 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 231 | doNext LDR WRK2,=(TokTab) ; Last Table Entry address (Tok=0) |
Recifarium | 0:df922596d756 | 232 | LDRB WRK, [IPTR] ; Get the token to be execute in the thread |
Recifarium | 0:df922596d756 | 233 | CMP WRK, #255 ; Is it a one byte token or a multiple' one? |
Recifarium | 0:df922596d756 | 234 | BEQ high ; go to next token (NOT IMPLEMENTED ) |
Recifarium | 0:df922596d756 | 235 | LSLS WRK, #2 ; Token number * 4 (word length) |
Recifarium | 0:df922596d756 | 236 | SUBS WRK2, WRK2, WRK ; Compute the entry table address |
Recifarium | 0:df922596d756 | 237 | ADDS IPTR, #1 ; Point to next token before running the actual one |
Recifarium | 0:df922596d756 | 238 | LDR WRK2, [WRK2] ; Get the run address |
Recifarium | 0:df922596d756 | 239 | BX WRK2 ; Go to it! |
Recifarium | 0:df922596d756 | 240 | high B high ; To be update latter when i will use 2 bytes tokens |
Recifarium | 0:df922596d756 | 241 | |
Recifarium | 0:df922596d756 | 242 | |
Recifarium | 0:df922596d756 | 243 | |
Recifarium | 0:df922596d756 | 244 | Reset_Handler |
Recifarium | 0:df922596d756 | 245 | LDR RPTR, =Begin |
Recifarium | 0:df922596d756 | 246 | LDR NXT, =doNext |
Recifarium | 0:df922596d756 | 247 | BL UartConfig |
Recifarium | 0:df922596d756 | 248 | LDR IPTR, =test18 |
Recifarium | 0:df922596d756 | 249 | BX NXT |
Recifarium | 0:df922596d756 | 250 | |
Recifarium | 0:df922596d756 | 251 | |
Recifarium | 0:df922596d756 | 252 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 253 | ; Dictionary start here |
Recifarium | 0:df922596d756 | 254 | ;-(EXIT)---------------------------- |
Recifarium | 0:df922596d756 | 255 | LExit LINK 0 ; Link |
Recifarium | 0:df922596d756 | 256 | DCB 4, "EXIT" |
Recifarium | 0:df922596d756 | 257 | xExit SUBS RPTR, RPTR, #4 ; Adjust the return stack pointer |
Recifarium | 0:df922596d756 | 258 | LDR IPTR,[RPTR] ; Collect the value |
Recifarium | 0:df922596d756 | 259 | RET |
Recifarium | 0:df922596d756 | 260 | |
Recifarium | 0:df922596d756 | 261 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 262 | ; All specific code for a chip |
Recifarium | 0:df922596d756 | 263 | ; Must be put in a separate file |
Recifarium | 0:df922596d756 | 264 | ; see lpc8xx.s as an example |
Recifarium | 0:df922596d756 | 265 | ; INCLUDE yourfavoritechip.s |
Recifarium | 0:df922596d756 | 266 | |
Recifarium | 0:df922596d756 | 267 | |
olzeke51 | 1:d7744c74e50f | 268 | ; GET ./lpc8xx.s |
olzeke51 | 1:d7744c74e50f | 269 | |
Recifarium | 0:df922596d756 | 270 | |
Recifarium | 0:df922596d756 | 271 | |
Recifarium | 0:df922596d756 | 272 | ;-(0)-------------------------------( -- 0 ) |
Recifarium | 0:df922596d756 | 273 | LZero LINK LKey ; Link to LKey which is in the included file |
Recifarium | 0:df922596d756 | 274 | DCB 1+Inline, "0" |
Recifarium | 0:df922596d756 | 275 | xZero PUSH {TOS} |
Recifarium | 0:df922596d756 | 276 | MOVS TOS, #0 |
Recifarium | 0:df922596d756 | 277 | RET |
Recifarium | 0:df922596d756 | 278 | |
Recifarium | 0:df922596d756 | 279 | ;-(1)-------------------------------( -- 1 ) |
Recifarium | 0:df922596d756 | 280 | LOne LINK LZero ; Link |
Recifarium | 0:df922596d756 | 281 | DCB 1+Inline,"1" |
Recifarium | 0:df922596d756 | 282 | xOne PUSH {TOS} |
Recifarium | 0:df922596d756 | 283 | MOVS TOS, #1 |
Recifarium | 0:df922596d756 | 284 | RET |
Recifarium | 0:df922596d756 | 285 | |
Recifarium | 0:df922596d756 | 286 | ;-(#2)-------------------------------( -- 2 ) |
Recifarium | 0:df922596d756 | 287 | LTwo LINK LOne ; Link |
Recifarium | 0:df922596d756 | 288 | DCB 2+Inline,"#2" |
Recifarium | 0:df922596d756 | 289 | xTwo PUSH {TOS} |
Recifarium | 0:df922596d756 | 290 | MOVS TOS, #2 |
Recifarium | 0:df922596d756 | 291 | RET |
Recifarium | 0:df922596d756 | 292 | |
Recifarium | 0:df922596d756 | 293 | ;-(#10)------------------------------( -- 10 ) |
Recifarium | 0:df922596d756 | 294 | LTen LINK LTwo ; Link |
Recifarium | 0:df922596d756 | 295 | DCB 3+Inline, "#10" |
Recifarium | 0:df922596d756 | 296 | xTen PUSH {TOS} |
Recifarium | 0:df922596d756 | 297 | MOVS TOS, #10 |
Recifarium | 0:df922596d756 | 298 | RET |
Recifarium | 0:df922596d756 | 299 | |
Recifarium | 0:df922596d756 | 300 | ;-(Plus1)---------------------------( n -- n+1 ) |
Recifarium | 0:df922596d756 | 301 | LPlus1 LINK LTen ; Link |
Recifarium | 0:df922596d756 | 302 | DCB 2+Inline, "1+" |
Recifarium | 0:df922596d756 | 303 | xPlus1 ADDS TOS, TOS, #1 ; Add 1 to TOS |
Recifarium | 0:df922596d756 | 304 | RET |
Recifarium | 0:df922596d756 | 305 | |
Recifarium | 0:df922596d756 | 306 | ;-(Minus1)--------------------------( n -- n-1 ) |
Recifarium | 0:df922596d756 | 307 | LMinus1 LINK LPlus1 ; Link |
Recifarium | 0:df922596d756 | 308 | DCB 2+Inline, "1-" |
Recifarium | 0:df922596d756 | 309 | xMinus1 SUBS TOS, TOS, #1 ; Substract 1 to TOS |
Recifarium | 0:df922596d756 | 310 | RET |
Recifarium | 0:df922596d756 | 311 | |
Recifarium | 0:df922596d756 | 312 | ;-(DUP)-----------------------------(x -- x,x) |
Recifarium | 0:df922596d756 | 313 | LDup LINK LMinus1 ; Link |
Recifarium | 0:df922596d756 | 314 | DCB 3+Inline, "DUP" |
Recifarium | 0:df922596d756 | 315 | xDup PUSH {TOS} ; Push Top of stack onto the stack (sp pointing) |
Recifarium | 0:df922596d756 | 316 | RET |
Recifarium | 0:df922596d756 | 317 | |
Recifarium | 0:df922596d756 | 318 | ;-(2DUP)----------------------------(x2,x1 -- x2,x1,x2,x1) |
Recifarium | 0:df922596d756 | 319 | L2Dup LINK LDup ; Link |
Recifarium | 0:df922596d756 | 320 | DCB 4, "2DUP" |
Recifarium | 0:df922596d756 | 321 | x2Dup POP {WRK} ; Get second element |
Recifarium | 0:df922596d756 | 322 | PUSH {WRK} ; Put second element |
Recifarium | 0:df922596d756 | 323 | PUSH {TOS} ; Put first element |
Recifarium | 0:df922596d756 | 324 | PUSH {WRK} ; Put second element |
Recifarium | 0:df922596d756 | 325 | RET ; First is still in TOS |
Recifarium | 0:df922596d756 | 326 | |
Recifarium | 0:df922596d756 | 327 | ;-(doLit8)--------------------------( -- n ) |
Recifarium | 0:df922596d756 | 328 | LdoLit8 LINK L2Dup ; Link |
Recifarium | 0:df922596d756 | 329 | DCB 5, "Lit8" ; For value between -128,+127 |
Recifarium | 0:df922596d756 | 330 | doLit8 PUSH {TOS} ; Make room |
Recifarium | 0:df922596d756 | 331 | LDRB TOS,[IPTR] ; Collect the byte just after the token (IPTR pointing to it) |
Recifarium | 0:df922596d756 | 332 | SXTB TOS, TOS ; Extent the sign |
Recifarium | 0:df922596d756 | 333 | ADDS IPTR, #1 ; Jump over the byte |
Recifarium | 0:df922596d756 | 334 | RET |
Recifarium | 0:df922596d756 | 335 | |
Recifarium | 0:df922596d756 | 336 | ;-(doLit16)-------------------------( -- n ) |
Recifarium | 0:df922596d756 | 337 | LdoLit16 LINK LdoLit8 ; Link |
Recifarium | 0:df922596d756 | 338 | DCB 5, "Lit16" |
Recifarium | 0:df922596d756 | 339 | doLit16 PUSH {TOS} ; Make room |
Recifarium | 0:df922596d756 | 340 | ADDS IPTR, IPTR, #1 ; Point to |
Recifarium | 0:df922596d756 | 341 | LSRS IPTR, IPTR, #1 ; the next halfword |
Recifarium | 0:df922596d756 | 342 | LSLS IPTR, IPTR, #1 ; boundary |
Recifarium | 0:df922596d756 | 343 | LDRH TOS, [IPTR] ; Collect the halfword |
Recifarium | 0:df922596d756 | 344 | SXTH TOS, TOS ; Extend the sign |
Recifarium | 0:df922596d756 | 345 | ADDS IPTR, #2 ; Jump over the halfword |
Recifarium | 0:df922596d756 | 346 | RET |
Recifarium | 0:df922596d756 | 347 | |
Recifarium | 0:df922596d756 | 348 | ;-(doLit32)-------------------------( -- n ) |
Recifarium | 0:df922596d756 | 349 | LdoLit32 LINK LdoLit16 ; Link |
Recifarium | 0:df922596d756 | 350 | DCB 5, "Lit32" |
Recifarium | 0:df922596d756 | 351 | doLit32 PUSH {TOS} |
Recifarium | 0:df922596d756 | 352 | ADDS IPTR, IPTR, #3 ; point to |
Recifarium | 0:df922596d756 | 353 | LSRS IPTR, IPTR, #2 ; the next word |
Recifarium | 0:df922596d756 | 354 | LSLS IPTR, IPTR, #2 ; boundary |
Recifarium | 0:df922596d756 | 355 | LDR TOS, [IPTR] |
Recifarium | 0:df922596d756 | 356 | ADDS IPTR, #4 ; Jump over the word |
Recifarium | 0:df922596d756 | 357 | RET |
Recifarium | 0:df922596d756 | 358 | |
Recifarium | 0:df922596d756 | 359 | ;-(OR)------------------------------( x1 x2 -- x3 ) |
Recifarium | 0:df922596d756 | 360 | LOr LINK LdoLit32 ; Link |
Recifarium | 0:df922596d756 | 361 | DCB 2,"OR" |
Recifarium | 0:df922596d756 | 362 | xOr POP {WRK} ; Get second parameter |
Recifarium | 0:df922596d756 | 363 | ORRS TOS, TOS, WRK ; Or |
Recifarium | 0:df922596d756 | 364 | RET |
Recifarium | 0:df922596d756 | 365 | |
Recifarium | 0:df922596d756 | 366 | ;-(AND)-----------------------------( x1 x2 -- x3 ) |
Recifarium | 0:df922596d756 | 367 | LAnd LINK LOr ; Link |
Recifarium | 0:df922596d756 | 368 | DCB 3,"AND" |
Recifarium | 0:df922596d756 | 369 | xAnd POP {WRK} ; Get second parameter |
Recifarium | 0:df922596d756 | 370 | ANDS TOS, TOS, WRK ; And |
Recifarium | 0:df922596d756 | 371 | RET |
Recifarium | 0:df922596d756 | 372 | |
Recifarium | 0:df922596d756 | 373 | ;-(XOR)-----------------------------( x1 x2 -- x3 ) |
Recifarium | 0:df922596d756 | 374 | LXor LINK LAnd ; Link |
Recifarium | 0:df922596d756 | 375 | DCB 3, "XOR" |
Recifarium | 0:df922596d756 | 376 | xXor POP {WRK} ; Get second parameter |
Recifarium | 0:df922596d756 | 377 | EORS TOS, TOS, WRK ; Xor |
Recifarium | 0:df922596d756 | 378 | RET |
Recifarium | 0:df922596d756 | 379 | |
Recifarium | 0:df922596d756 | 380 | ;-(0<)------------------------------( n -- f) |
Recifarium | 0:df922596d756 | 381 | LIsNeg LINK LXor ; Link |
Recifarium | 0:df922596d756 | 382 | DCB 2+Inline, "0<" |
Recifarium | 0:df922596d756 | 383 | xIsNeg ASRS TOS, TOS, #31 ; Extend the sign True=FFFFFFFF False=00000000 |
Recifarium | 0:df922596d756 | 384 | RET |
Recifarium | 0:df922596d756 | 385 | |
Recifarium | 0:df922596d756 | 386 | ;-(0=)------------------------------( n -- f ) |
Recifarium | 0:df922596d756 | 387 | LIsNull LINK LIsNeg ; Link |
Recifarium | 0:df922596d756 | 388 | DCB 2, "0=" |
Recifarium | 0:df922596d756 | 389 | xIsNull MOVS TOS,TOS ; test the value |
Recifarium | 0:df922596d756 | 390 | BEQ Isnull1 |
Recifarium | 0:df922596d756 | 391 | SUBS TOS, TOS ; False |
Recifarium | 0:df922596d756 | 392 | B IsNull2 |
Recifarium | 0:df922596d756 | 393 | Isnull1 SUBS TOS,TOS,#1 ; True |
Recifarium | 0:df922596d756 | 394 | IsNull2 RET |
Recifarium | 0:df922596d756 | 395 | |
Recifarium | 0:df922596d756 | 396 | ;-(0>)------------------------------( n -- f ) |
Recifarium | 0:df922596d756 | 397 | LIsPos LINK LIsNull ; Link |
Recifarium | 0:df922596d756 | 398 | DCB 2, "0>" |
Recifarium | 0:df922596d756 | 399 | xIsPos MOVS TOS,TOS |
Recifarium | 0:df922596d756 | 400 | LDR TOS,=0x0 ; False |
Recifarium | 0:df922596d756 | 401 | BNE IsPos1 |
Recifarium | 0:df922596d756 | 402 | BPL IsPos1 |
Recifarium | 0:df922596d756 | 403 | SUBS TOS,TOS,#1 ; True |
Recifarium | 0:df922596d756 | 404 | IsPos1 RET |
Recifarium | 0:df922596d756 | 405 | |
Recifarium | 0:df922596d756 | 406 | LTORG |
Recifarium | 0:df922596d756 | 407 | ;-(EXECUTE)-------------------------( xt -- ) |
Recifarium | 0:df922596d756 | 408 | LExec LINK LIsPos ; Link |
Recifarium | 0:df922596d756 | 409 | DCB 7+Inline, "EXECUTE" |
Recifarium | 0:df922596d756 | 410 | xExec ADDS WRK2, TOS, #1 ; Because of Thumb |
Recifarium | 0:df922596d756 | 411 | POP {TOS} ; Update TOS |
Recifarium | 0:df922596d756 | 412 | BX WRK2 ; We need to use WRK2 at the entry of a high level word. See doCol comment |
Recifarium | 0:df922596d756 | 413 | |
Recifarium | 0:df922596d756 | 414 | ;-(DROP)-----------------------------(x -- ) |
Recifarium | 0:df922596d756 | 415 | LDrop LINK LExec ; Link |
Recifarium | 0:df922596d756 | 416 | DCB 4+Inline, "DROP" |
Recifarium | 0:df922596d756 | 417 | xDrop POP {TOS} ; Get previous element |
Recifarium | 0:df922596d756 | 418 | RET |
Recifarium | 0:df922596d756 | 419 | |
Recifarium | 0:df922596d756 | 420 | ;-(2DROP)---------------------------( x1 x2 -- ) |
Recifarium | 0:df922596d756 | 421 | L2Drop LINK LDrop ; Link |
Recifarium | 0:df922596d756 | 422 | DCB 5+Inline, "2DROP" |
Recifarium | 0:df922596d756 | 423 | x2Drop POP {TOS} ; Get previous element |
Recifarium | 0:df922596d756 | 424 | POP {TOS} ; Get previous element |
Recifarium | 0:df922596d756 | 425 | RET |
Recifarium | 0:df922596d756 | 426 | |
Recifarium | 0:df922596d756 | 427 | ;-(SWAP)----------------------------( x1 x2 -- x2 x1 ) |
Recifarium | 0:df922596d756 | 428 | LSwap LINK L2Drop ; Link |
Recifarium | 0:df922596d756 | 429 | DCB 4, "SWAP" |
Recifarium | 0:df922596d756 | 430 | xSwap POP {WRK} ; Get x1 |
Recifarium | 0:df922596d756 | 431 | PUSH {TOS} ; Put x2 |
Recifarium | 0:df922596d756 | 432 | MOVS TOS,WRK ; Put x1 |
Recifarium | 0:df922596d756 | 433 | RET |
Recifarium | 0:df922596d756 | 434 | |
Recifarium | 0:df922596d756 | 435 | ;-(OVER)----------------------------( x1 x2 -- x1 x2 x1 ) |
Recifarium | 0:df922596d756 | 436 | LOver LINK LSwap ; Link |
Recifarium | 0:df922596d756 | 437 | DCB 4+Inline, "OVER" |
Recifarium | 0:df922596d756 | 438 | xOver PUSH {TOS} ; Put x2 |
Recifarium | 0:df922596d756 | 439 | LDR TOS,[sp,#4] ; Get x1 |
Recifarium | 0:df922596d756 | 440 | RET |
Recifarium | 0:df922596d756 | 441 | |
Recifarium | 0:df922596d756 | 442 | ;-(ROT)-----------------------------( x1 x2 x3 -- x2 x3 x1 ) |
Recifarium | 0:df922596d756 | 443 | LRot LINK LOver ; Link |
Recifarium | 0:df922596d756 | 444 | DCB 3, "ROT" |
Recifarium | 0:df922596d756 | 445 | xRot POP {WRK} ; Get x2 |
Recifarium | 0:df922596d756 | 446 | POP {WRK2} ; Get x1 |
Recifarium | 0:df922596d756 | 447 | PUSH {WRK} ; Put x2 |
Recifarium | 0:df922596d756 | 448 | PUSH {TOS} ; Put x3 |
Recifarium | 0:df922596d756 | 449 | MOV TOS,WRK2 ; Put x1 |
Recifarium | 0:df922596d756 | 450 | RET |
Recifarium | 0:df922596d756 | 451 | |
Recifarium | 0:df922596d756 | 452 | ;-(-ROT)-----------------------------( x1 x2 x3 -- x3 x1 x2 ) |
Recifarium | 0:df922596d756 | 453 | LMRot LINK LRot ; Link |
Recifarium | 0:df922596d756 | 454 | DCB 4, "-ROT" |
Recifarium | 0:df922596d756 | 455 | xMRot POP {WRK} ; Get x2 |
Recifarium | 0:df922596d756 | 456 | POP {WRK2} ; Get x1 |
Recifarium | 0:df922596d756 | 457 | PUSH {TOS} ; Put x3 |
Recifarium | 0:df922596d756 | 458 | PUSH {WRK2} ; Put x1 |
Recifarium | 0:df922596d756 | 459 | MOV TOS,WRK ; Put x2 |
Recifarium | 0:df922596d756 | 460 | RET |
Recifarium | 0:df922596d756 | 461 | |
Recifarium | 0:df922596d756 | 462 | ;-(NIP)-----------------------------( x1 x2 -- x2 ) |
Recifarium | 0:df922596d756 | 463 | LNip LINK LMRot ; Link |
Recifarium | 0:df922596d756 | 464 | DCB 3+Inline, "NIP" |
Recifarium | 0:df922596d756 | 465 | xNip POP {WRK} ; Discard x1 |
Recifarium | 0:df922596d756 | 466 | RET |
Recifarium | 0:df922596d756 | 467 | |
Recifarium | 0:df922596d756 | 468 | ;-(TUCK)-----------------------------( x1 x2 -- x2 x1 x2 ) |
Recifarium | 0:df922596d756 | 469 | LTuck LINK LNip ; Link |
Recifarium | 0:df922596d756 | 470 | DCB 4, "TUCK" |
Recifarium | 0:df922596d756 | 471 | xTuck POP {WRK} ; Get x1 |
Recifarium | 0:df922596d756 | 472 | PUSH {TOS} ; Put x2 |
Recifarium | 0:df922596d756 | 473 | PUSH {WRK} ; Put x1 |
Recifarium | 0:df922596d756 | 474 | RET |
Recifarium | 0:df922596d756 | 475 | |
Recifarium | 0:df922596d756 | 476 | ;-(+)-------------------------------( n1|u1 n2|u2 -- n3|u3 ) |
Recifarium | 0:df922596d756 | 477 | LPlus LINK LTuck ; Link |
Recifarium | 0:df922596d756 | 478 | DCB 1+Inline, "+" |
Recifarium | 0:df922596d756 | 479 | xPlus POP {WRK} ; Get n1|u1 |
Recifarium | 0:df922596d756 | 480 | ADDS TOS, TOS, WRK ; Add n2|u2 |
Recifarium | 0:df922596d756 | 481 | RET |
Recifarium | 0:df922596d756 | 482 | |
Recifarium | 0:df922596d756 | 483 | ;-(-)-------------------------------( n1|u1 n2|u2 -- n3|u3 ) |
Recifarium | 0:df922596d756 | 484 | LMinus LINK LPlus ; Link |
Recifarium | 0:df922596d756 | 485 | DCB 1+Inline, "-" |
Recifarium | 0:df922596d756 | 486 | xMinus POP {WRK} ; Get n1|u1 |
Recifarium | 0:df922596d756 | 487 | SUBS TOS, WRK, TOS ; Substract from TOS |
Recifarium | 0:df922596d756 | 488 | RET |
Recifarium | 0:df922596d756 | 489 | |
Recifarium | 0:df922596d756 | 490 | ;-(2*)------------------------------ |
Recifarium | 0:df922596d756 | 491 | LTwosta LINK LMinus ; Link |
Recifarium | 0:df922596d756 | 492 | DCB 2+Inline, "2*" |
Recifarium | 0:df922596d756 | 493 | xTwoStar LSLS TOS, TOS, #1 ; Shift one bit |
Recifarium | 0:df922596d756 | 494 | RET |
Recifarium | 0:df922596d756 | 495 | |
Recifarium | 0:df922596d756 | 496 | ;-(2/)------------------------------ |
Recifarium | 0:df922596d756 | 497 | LTwosla LINK LTwosta ; Link |
Recifarium | 0:df922596d756 | 498 | DCB 2+Inline, "2/" |
Recifarium | 0:df922596d756 | 499 | xTwoSla ASRS TOS, TOS, #1 ; Shift one bit |
Recifarium | 0:df922596d756 | 500 | RET |
Recifarium | 0:df922596d756 | 501 | |
Recifarium | 0:df922596d756 | 502 | ;-(4*)------------------------------ |
Recifarium | 0:df922596d756 | 503 | LFoursta LINK LTwosla ; Link |
Recifarium | 0:df922596d756 | 504 | DCB 2+Inline, "4*" |
Recifarium | 0:df922596d756 | 505 | xFoursta LSLS TOS, TOS, #2 ; Shift two bits |
Recifarium | 0:df922596d756 | 506 | RET |
Recifarium | 0:df922596d756 | 507 | |
Recifarium | 0:df922596d756 | 508 | ;-(4/)------------------------------ |
Recifarium | 0:df922596d756 | 509 | L4Slash LINK LFoursta ; Link |
Recifarium | 0:df922596d756 | 510 | DCB 2+Inline, "4/" |
Recifarium | 0:df922596d756 | 511 | xSlash4 ASRS TOS, TOS, #2 ; Shift two bits |
Recifarium | 0:df922596d756 | 512 | RET |
Recifarium | 0:df922596d756 | 513 | |
Recifarium | 0:df922596d756 | 514 | ;-(LSHIFT)--------------------------(x1,u --- x2) |
Recifarium | 0:df922596d756 | 515 | LShift LINK L4Slash ; Link |
Recifarium | 0:df922596d756 | 516 | DCB 6+Inline, "LSHIFT" |
Recifarium | 0:df922596d756 | 517 | xSixtn POP {WRK} ; Get x1 |
Recifarium | 0:df922596d756 | 518 | LSLS WRK, WRK, TOS ; Shift x1 u place to the left |
Recifarium | 0:df922596d756 | 519 | MOVS TOS, WRK |
Recifarium | 0:df922596d756 | 520 | RET |
Recifarium | 0:df922596d756 | 521 | |
Recifarium | 0:df922596d756 | 522 | ;-(RSHIFT)--------------------------(x1,u --- x2) |
Recifarium | 0:df922596d756 | 523 | LRShift LINK LShift ; Link |
Recifarium | 0:df922596d756 | 524 | DCB 6+Inline, "RSHIFT" |
Recifarium | 0:df922596d756 | 525 | POP {WRK} ; Get x1 |
Recifarium | 0:df922596d756 | 526 | LSRS WRK, WRK, TOS ; Shift x1 u place to the right |
Recifarium | 0:df922596d756 | 527 | MOVS TOS, WRK |
Recifarium | 0:df922596d756 | 528 | RET |
Recifarium | 0:df922596d756 | 529 | |
Recifarium | 0:df922596d756 | 530 | ;-(@)-------------------------------( a -- x ) |
Recifarium | 0:df922596d756 | 531 | LAt LINK LRShift ; Link |
Recifarium | 0:df922596d756 | 532 | DCB 1+Inline, "@" |
Recifarium | 0:df922596d756 | 533 | xAt LDR TOS, [TOS] ; Get the value pointed by TOS |
Recifarium | 0:df922596d756 | 534 | RET |
Recifarium | 0:df922596d756 | 535 | |
Recifarium | 0:df922596d756 | 536 | ;-(C@)------------------------------( a -- c ) |
Recifarium | 0:df922596d756 | 537 | LCAt LINK LAt ; Link |
Recifarium | 0:df922596d756 | 538 | DCB 2+Inline, "C@" |
Recifarium | 0:df922596d756 | 539 | xCAt LDRB TOS, [TOS] ; Get the caracter pointed by TOS |
Recifarium | 0:df922596d756 | 540 | RET |
Recifarium | 0:df922596d756 | 541 | |
Recifarium | 0:df922596d756 | 542 | ;-(H@)------------------------------( a -- h ) |
Recifarium | 0:df922596d756 | 543 | LHAt LINK LCAt ; Link |
Recifarium | 0:df922596d756 | 544 | DCB 2+Inline, "H@" |
Recifarium | 0:df922596d756 | 545 | xHAt LDRH TOS, [TOS] ; Get the halfword pointed by TOS |
Recifarium | 0:df922596d756 | 546 | RET |
Recifarium | 0:df922596d756 | 547 | |
Recifarium | 0:df922596d756 | 548 | ;-(!)-------------------------------(word,address --) |
Recifarium | 0:df922596d756 | 549 | LStore LINK LHAt ; Link |
Recifarium | 0:df922596d756 | 550 | DCB 1+Inline, "!" |
Recifarium | 0:df922596d756 | 551 | xStore POP {WRK} ; Get value to store |
Recifarium | 0:df922596d756 | 552 | STR WRK, [TOS] ; Store word where TOS point to |
Recifarium | 0:df922596d756 | 553 | POP {TOS} ; Update TOS |
Recifarium | 0:df922596d756 | 554 | RET |
Recifarium | 0:df922596d756 | 555 | |
Recifarium | 0:df922596d756 | 556 | ;-(C!)------------------------------(char,addr--) |
Recifarium | 0:df922596d756 | 557 | LCStore LINK LStore ; Link |
Recifarium | 0:df922596d756 | 558 | DCB 2+Inline, "C!" |
Recifarium | 0:df922596d756 | 559 | xCStore POP {WRK} ; Get value to store |
Recifarium | 0:df922596d756 | 560 | STRB WRK, [TOS] ; Store Character value where TOS point to |
Recifarium | 0:df922596d756 | 561 | POP {TOS} ; Update TOS |
Recifarium | 0:df922596d756 | 562 | RET |
Recifarium | 0:df922596d756 | 563 | |
Recifarium | 0:df922596d756 | 564 | ;-(H!)------------------------------(halfword,address --) |
Recifarium | 0:df922596d756 | 565 | LHStore LINK LCStore ; Link |
Recifarium | 0:df922596d756 | 566 | DCB 2 ; Length |
Recifarium | 0:df922596d756 | 567 | DCB "H!" |
Recifarium | 0:df922596d756 | 568 | xHStore POP {WRK} ; Get value to store |
Recifarium | 0:df922596d756 | 569 | STRH WRK, [TOS] ; Store Halfword where TOS point to |
Recifarium | 0:df922596d756 | 570 | POP {TOS} |
Recifarium | 0:df922596d756 | 571 | RET |
Recifarium | 0:df922596d756 | 572 | |
Recifarium | 0:df922596d756 | 573 | ;-(>R)------------------------------( n -- R:n) |
Recifarium | 0:df922596d756 | 574 | LToR LINK LHStore ; Link |
Recifarium | 0:df922596d756 | 575 | DCB 2+Inline+Cmponly, ">R" |
Recifarium | 0:df922596d756 | 576 | xToR STR TOS,[RPTR] ; Put TOS on return stack |
Recifarium | 0:df922596d756 | 577 | ADDS RPTR, #4 ; Adjust Stack pointer |
Recifarium | 0:df922596d756 | 578 | POP {TOS} ; update TOS |
Recifarium | 0:df922596d756 | 579 | RET |
Recifarium | 0:df922596d756 | 580 | |
Recifarium | 0:df922596d756 | 581 | ;-(R>)------------------------------(R:n -- n) |
Recifarium | 0:df922596d756 | 582 | LFromR LINK LToR ; Link |
Recifarium | 0:df922596d756 | 583 | DCB 2, "R>" |
Recifarium | 0:df922596d756 | 584 | xFromR PUSH {TOS} ; Make room |
Recifarium | 0:df922596d756 | 585 | SUBS RPTR, RPTR, #4 ; Prepare to collect |
Recifarium | 0:df922596d756 | 586 | LDR TOS, [RPTR] ; Collect value |
Recifarium | 0:df922596d756 | 587 | RET |
Recifarium | 0:df922596d756 | 588 | ;-(R@)------------------------------ |
Recifarium | 0:df922596d756 | 589 | LRAt LINK LFromR ; Link |
Recifarium | 0:df922596d756 | 590 | DCB 2, "R@" |
Recifarium | 0:df922596d756 | 591 | xRAt PUSH {TOS} ; Make room |
Recifarium | 0:df922596d756 | 592 | MOVS TOS, RPTR ; Collect value |
Recifarium | 0:df922596d756 | 593 | SUBS TOS, #4 ; Point to previous word |
Recifarium | 0:df922596d756 | 594 | LDR TOS,[TOS] ; Get value |
Recifarium | 0:df922596d756 | 595 | RET |
Recifarium | 0:df922596d756 | 596 | ;-(NOT)----------------------------- |
Recifarium | 0:df922596d756 | 597 | LNot LINK LRAt ; Link |
Recifarium | 0:df922596d756 | 598 | DCB 3+Inline, "NOT" |
Recifarium | 0:df922596d756 | 599 | xNot MVNS TOS, TOS ; move not |
Recifarium | 0:df922596d756 | 600 | RET |
Recifarium | 0:df922596d756 | 601 | |
Recifarium | 0:df922596d756 | 602 | ;-(branch)-------------------------- Branch & ZBranch use a halfword align displacement |
Recifarium | 0:df922596d756 | 603 | Lbranch LINK LNot ; Link |
Recifarium | 0:df922596d756 | 604 | DCB 3, "BRA" |
Recifarium | 0:df922596d756 | 605 | xBra ADDS IPTR, #1 ; Point to |
Recifarium | 0:df922596d756 | 606 | LSRS IPTR, IPTR, #1 ; the next halfword |
Recifarium | 0:df922596d756 | 607 | LSLS IPTR, IPTR, #1 ; boundary |
Recifarium | 0:df922596d756 | 608 | LDRH WRK, [IPTR] ; Get the displacement |
Recifarium | 0:df922596d756 | 609 | SXTH WRK, WRK ; Extend the sign |
Recifarium | 0:df922596d756 | 610 | ADDS IPTR, IPTR, WRK ; Compute destination address |
Recifarium | 0:df922596d756 | 611 | RET |
Recifarium | 0:df922596d756 | 612 | |
Recifarium | 0:df922596d756 | 613 | ;-(Zbranch)------------------------- |
Recifarium | 0:df922596d756 | 614 | LZbranch LINK Lbranch ; Link |
Recifarium | 0:df922596d756 | 615 | DCB 4, "0BRA" |
Recifarium | 0:df922596d756 | 616 | xZBra TST TOS,TOS ; Update flags |
Recifarium | 0:df922596d756 | 617 | POP {TOS} ; |
Recifarium | 0:df922596d756 | 618 | BEQ xBra ; Take the branch if TOS = 0 |
Recifarium | 0:df922596d756 | 619 | ADDS IPTR, #1 ; Else compute |
Recifarium | 0:df922596d756 | 620 | LSRS IPTR, IPTR, #1 ; the next halfword |
Recifarium | 0:df922596d756 | 621 | LSLS IPTR, IPTR, #1 ; boundary |
Recifarium | 0:df922596d756 | 622 | ADDS IPTR, #2 ; and jump over the halfword displacement |
Recifarium | 0:df922596d756 | 623 | RET |
Recifarium | 0:df922596d756 | 624 | |
Recifarium | 0:df922596d756 | 625 | ;-(NEGATE)--------------------------(n -- -n) |
Recifarium | 0:df922596d756 | 626 | LNegate LINK LZbranch ; Link |
Recifarium | 0:df922596d756 | 627 | DCB 6+Inline, "NEGATE" |
Recifarium | 0:df922596d756 | 628 | xNeg MVNS TOS, TOS ; Move NOT signed |
Recifarium | 0:df922596d756 | 629 | ADDS TOS, #1 |
Recifarium | 0:df922596d756 | 630 | RET |
Recifarium | 0:df922596d756 | 631 | |
Recifarium | 0:df922596d756 | 632 | ;-(ABS)-----------------------------(n -- |n|) |
Recifarium | 0:df922596d756 | 633 | LAbs LINK LNegate ; Link |
Recifarium | 0:df922596d756 | 634 | DCB 3, "ABS" |
Recifarium | 0:df922596d756 | 635 | xAbs TST TOS, TOS ; Test TOS |
Recifarium | 0:df922596d756 | 636 | BPL Abs1 ; If positive do nothing |
Recifarium | 0:df922596d756 | 637 | MOVS WRK, #0 |
Recifarium | 0:df922596d756 | 638 | SUBS TOS, WRK, TOS ; TOS = 0 - TOS |
Recifarium | 0:df922596d756 | 639 | Abs1 RET |
Recifarium | 0:df922596d756 | 640 | |
Recifarium | 0:df922596d756 | 641 | ;-(MAX)-----------------------------(n1, n2 -- Max(n1,n2)) |
Recifarium | 0:df922596d756 | 642 | LMax LINK LAbs ; Link |
Recifarium | 0:df922596d756 | 643 | DCB 3, "MAX" |
Recifarium | 0:df922596d756 | 644 | xMax POP {WRK} |
Recifarium | 0:df922596d756 | 645 | CMP WRK, TOS |
Recifarium | 0:df922596d756 | 646 | BLT xMax1 |
Recifarium | 0:df922596d756 | 647 | MOVS TOS, WRK |
Recifarium | 0:df922596d756 | 648 | xMax1 RET |
Recifarium | 0:df922596d756 | 649 | |
Recifarium | 0:df922596d756 | 650 | ;-(MIN)-----------------------------(n1, n2 -- Min(n1,n2)) |
Recifarium | 0:df922596d756 | 651 | LMin LINK LMax ; Link |
Recifarium | 0:df922596d756 | 652 | DCB 3, "MIN" |
Recifarium | 0:df922596d756 | 653 | xMin POP {WRK} |
Recifarium | 0:df922596d756 | 654 | CMP WRK, TOS |
Recifarium | 0:df922596d756 | 655 | BGT xMin1 |
Recifarium | 0:df922596d756 | 656 | MOVS TOS, WRK |
Recifarium | 0:df922596d756 | 657 | xMin1 RET |
Recifarium | 0:df922596d756 | 658 | |
Recifarium | 0:df922596d756 | 659 | ;-(WITHIN)-------------------------- |
Recifarium | 0:df922596d756 | 660 | LWithin LINK LMin ; Link |
Recifarium | 0:df922596d756 | 661 | DCB 6, "WITHIN" |
Recifarium | 0:df922596d756 | 662 | xWithin doCol |
Recifarium | 0:df922596d756 | 663 | DCB Over, Minus, ToR ; : Within Over - >R - R> U< ; |
Recifarium | 0:df922596d756 | 664 | DCB Minus, FromR, ULess ; |
Recifarium | 0:df922596d756 | 665 | DCB Exit |
Recifarium | 0:df922596d756 | 666 | |
Recifarium | 0:df922596d756 | 667 | ;-(=)------------------------------- |
Recifarium | 0:df922596d756 | 668 | LEq LINK LWithin ; Link |
Recifarium | 0:df922596d756 | 669 | DCB 1, "=" |
Recifarium | 0:df922596d756 | 670 | xEq POP {WRK} |
Recifarium | 0:df922596d756 | 671 | CMP WRK,TOS |
Recifarium | 0:df922596d756 | 672 | LDR TOS, =0x0 ; False flag |
Recifarium | 0:df922596d756 | 673 | BNE xEq1 |
Recifarium | 0:df922596d756 | 674 | SUBS TOS, #1 ; True |
Recifarium | 0:df922596d756 | 675 | xEq1 RET |
Recifarium | 0:df922596d756 | 676 | |
Recifarium | 0:df922596d756 | 677 | ;-(<)------------------------------- |
Recifarium | 0:df922596d756 | 678 | LLt LINK LEq ; Link |
Recifarium | 0:df922596d756 | 679 | DCB 1, "<" |
Recifarium | 0:df922596d756 | 680 | xLt POP {WRK} |
Recifarium | 0:df922596d756 | 681 | CMP WRK,TOS |
Recifarium | 0:df922596d756 | 682 | LDR TOS, =0x0 |
Recifarium | 0:df922596d756 | 683 | BGE xLt1 |
Recifarium | 0:df922596d756 | 684 | SUBS TOS, #1 |
Recifarium | 0:df922596d756 | 685 | xLt1 RET |
Recifarium | 0:df922596d756 | 686 | |
Recifarium | 0:df922596d756 | 687 | ;-(>)------------------------------- |
Recifarium | 0:df922596d756 | 688 | LGt LINK LLt ; Link |
Recifarium | 0:df922596d756 | 689 | DCB 1, ">" |
Recifarium | 0:df922596d756 | 690 | xGt POP {WRK} |
Recifarium | 0:df922596d756 | 691 | CMP WRK,TOS |
Recifarium | 0:df922596d756 | 692 | LDR TOS, =0x0 |
Recifarium | 0:df922596d756 | 693 | BLE xGt1 |
Recifarium | 0:df922596d756 | 694 | SUBS TOS, #1 |
Recifarium | 0:df922596d756 | 695 | xGt1 RET |
Recifarium | 0:df922596d756 | 696 | |
Recifarium | 0:df922596d756 | 697 | ;-(INVERT)-------------------------- |
Recifarium | 0:df922596d756 | 698 | LInvert LINK LGt ; Link |
Recifarium | 0:df922596d756 | 699 | DCB 6+Inline, "INVERT" |
Recifarium | 0:df922596d756 | 700 | xInvert MVNS TOS, TOS |
Recifarium | 0:df922596d756 | 701 | RET |
Recifarium | 0:df922596d756 | 702 | |
Recifarium | 0:df922596d756 | 703 | ;-(?DUP)----------------------------(n -- n,n | n) |
Recifarium | 0:df922596d756 | 704 | LDupNZ LINK LInvert ; Link |
Recifarium | 0:df922596d756 | 705 | DCB 4, "?DUP" |
Recifarium | 0:df922596d756 | 706 | xDupNZ TST TOS, TOS ; Test TOS |
Recifarium | 0:df922596d756 | 707 | BEQ DupNZ1 ; If 0 do nothing |
Recifarium | 0:df922596d756 | 708 | PUSH {TOS} ; Duplicate |
Recifarium | 0:df922596d756 | 709 | DupNZ1 RET |
Recifarium | 0:df922596d756 | 710 | |
Recifarium | 0:df922596d756 | 711 | ;-(*)------------------------------- |
Recifarium | 0:df922596d756 | 712 | LMul LINK LDupNZ ; Link |
Recifarium | 0:df922596d756 | 713 | DCB 1+Inline, "*" |
Recifarium | 0:df922596d756 | 714 | xMul POP {WRK} ; Get 2nd Element |
Recifarium | 0:df922596d756 | 715 | MULS TOS, WRK, TOS ; Multiply |
Recifarium | 0:df922596d756 | 716 | RET |
Recifarium | 0:df922596d756 | 717 | |
Recifarium | 0:df922596d756 | 718 | ;-(+!)------------------------------ |
Recifarium | 0:df922596d756 | 719 | LAddSto LINK LMul ; Link |
Recifarium | 0:df922596d756 | 720 | DCB 2, "+!" |
Recifarium | 0:df922596d756 | 721 | xAddSto POP {WRK} |
Recifarium | 0:df922596d756 | 722 | LDR WRK2, [TOS] |
Recifarium | 0:df922596d756 | 723 | ADDS WRK, WRK, WRK2 |
Recifarium | 0:df922596d756 | 724 | STR WRK, [TOS] |
Recifarium | 0:df922596d756 | 725 | POP {TOS} |
Recifarium | 0:df922596d756 | 726 | RET |
Recifarium | 0:df922596d756 | 727 | |
Recifarium | 0:df922596d756 | 728 | ;-(-!)------------------------------ |
Recifarium | 0:df922596d756 | 729 | LSubSto LINK LAddSto ; Link |
Recifarium | 0:df922596d756 | 730 | DCB 2, "-!" |
Recifarium | 0:df922596d756 | 731 | xSubSto POP {WRK} |
Recifarium | 0:df922596d756 | 732 | LDR WRK2, [TOS] |
Recifarium | 0:df922596d756 | 733 | SUBS WRK, WRK, WRK2 |
Recifarium | 0:df922596d756 | 734 | STR WRK, [TOS] |
Recifarium | 0:df922596d756 | 735 | POP {TOS} |
Recifarium | 0:df922596d756 | 736 | RET |
Recifarium | 0:df922596d756 | 737 | |
Recifarium | 0:df922596d756 | 738 | ;-(CELL)--------------------------- |
Recifarium | 0:df922596d756 | 739 | LCell LINK LSubSto ; Link |
Recifarium | 0:df922596d756 | 740 | DCB 4+Inline, "CELL" |
Recifarium | 0:df922596d756 | 741 | xCell PUSH {TOS} |
Recifarium | 0:df922596d756 | 742 | MOVS TOS, #4 ; Cells are 4 bytes |
Recifarium | 0:df922596d756 | 743 | RET |
Recifarium | 0:df922596d756 | 744 | |
Recifarium | 0:df922596d756 | 745 | ;-(SP0)--------------------------- |
Recifarium | 0:df922596d756 | 746 | LSP0 LINK LCell ; Link |
Recifarium | 0:df922596d756 | 747 | DCB 3, "SP0" |
Recifarium | 0:df922596d756 | 748 | xSp0 SUBS WRK, WRK ; Cortex M0+ initial stack value address : 0 |
Recifarium | 0:df922596d756 | 749 | LDR WRK, [WRK] |
Recifarium | 0:df922596d756 | 750 | PUSH {TOS} |
Recifarium | 0:df922596d756 | 751 | MOV TOS, WRK |
Recifarium | 0:df922596d756 | 752 | RET |
Recifarium | 0:df922596d756 | 753 | |
Recifarium | 0:df922596d756 | 754 | ;-(SP@)----------------------------- |
Recifarium | 0:df922596d756 | 755 | LSPAt LINK LSP0 ; Link |
Recifarium | 0:df922596d756 | 756 | DCB 3, "SP@" |
Recifarium | 0:df922596d756 | 757 | xSpAt MOV WRK, sp ; Collect the value before push! |
Recifarium | 0:df922596d756 | 758 | PUSH {TOS} |
Recifarium | 0:df922596d756 | 759 | MOV TOS, WRK ; Update |
Recifarium | 0:df922596d756 | 760 | RET |
Recifarium | 0:df922596d756 | 761 | |
Recifarium | 0:df922596d756 | 762 | ;-(DEPTH)---------------------------: Depth SP@ SP0 - /4 ; 14 bytes |
Recifarium | 0:df922596d756 | 763 | LDepth LINK LSPAt ; Link |
Recifarium | 0:df922596d756 | 764 | DCB 5, "DEPTH" |
Recifarium | 0:df922596d756 | 765 | xDepth doCol |
Recifarium | 0:df922596d756 | 766 | DCB SpAt, Sp0, Swap |
Recifarium | 0:df922596d756 | 767 | DCB Minus, Slash4 ; |
Recifarium | 0:df922596d756 | 768 | DCB Exit |
Recifarium | 0:df922596d756 | 769 | |
Recifarium | 0:df922596d756 | 770 | ;-(STATE)--------------------------- |
Recifarium | 0:df922596d756 | 771 | LState LINK LDepth ; Link |
Recifarium | 0:df922596d756 | 772 | DCB 5, "STATE" |
Recifarium | 0:df922596d756 | 773 | xState PUSH {TOS} |
Recifarium | 0:df922596d756 | 774 | LDR TOS, =VState ; Put address on TOS |
Recifarium | 0:df922596d756 | 775 | RET |
Recifarium | 0:df922596d756 | 776 | |
Recifarium | 0:df922596d756 | 777 | ;-(LATEST)-------------------------- |
Recifarium | 0:df922596d756 | 778 | LLatest LINK LState ; Link |
Recifarium | 0:df922596d756 | 779 | DCB 6, "LATEST" |
Recifarium | 0:df922596d756 | 780 | ;Latest STR TOS, [DPTR] |
Recifarium | 0:df922596d756 | 781 | ; INC DPTR |
Recifarium | 0:df922596d756 | 782 | ; LDR TOS, =SLatest ; Put address on TOS |
Recifarium | 0:df922596d756 | 783 | RET |
Recifarium | 0:df922596d756 | 784 | |
Recifarium | 0:df922596d756 | 785 | ;-(HERE)---------------------------- |
Recifarium | 0:df922596d756 | 786 | LHere LINK LLatest ; Link |
Recifarium | 0:df922596d756 | 787 | DCB 4, "HERE" |
Recifarium | 0:df922596d756 | 788 | ;Here STR TOS, [DPTR] |
Recifarium | 0:df922596d756 | 789 | ; INC DPTR |
Recifarium | 0:df922596d756 | 790 | ; LDR TOS, =SHere ; Put address on TOS |
Recifarium | 0:df922596d756 | 791 | RET ; To collect the address |
Recifarium | 0:df922596d756 | 792 | |
Recifarium | 0:df922596d756 | 793 | ;-(BASE)---------------------------- |
Recifarium | 0:df922596d756 | 794 | LBase LINK LHere ; Link |
Recifarium | 0:df922596d756 | 795 | DCB 4, "BASE" |
Recifarium | 0:df922596d756 | 796 | xBase PUSH {TOS} |
Recifarium | 0:df922596d756 | 797 | LDR TOS, =VBase ; Put address on TOS |
Recifarium | 0:df922596d756 | 798 | RET |
Recifarium | 0:df922596d756 | 799 | |
Recifarium | 0:df922596d756 | 800 | ;-(msec)---------------------------- |
Recifarium | 0:df922596d756 | 801 | Lmsec LINK LBase ; Link |
Recifarium | 0:df922596d756 | 802 | DCB 4, "msec" |
Recifarium | 0:df922596d756 | 803 | msec LDR WRK, =2400 |
Recifarium | 0:df922596d756 | 804 | L1msec SUBS WRK, #1 ; 1 Cycle |
Recifarium | 0:df922596d756 | 805 | BNE L1msec ; 2 cycles (taken) 1 cycle (not taken) |
Recifarium | 0:df922596d756 | 806 | SUBS TOS, #1 ; 1 cycle |
Recifarium | 0:df922596d756 | 807 | BNE msec ; 2 cycles (taken) 1 cycle (not taken) |
Recifarium | 0:df922596d756 | 808 | POP {TOS} ; Update TOS |
Recifarium | 0:df922596d756 | 809 | RET |
Recifarium | 0:df922596d756 | 810 | |
Recifarium | 0:df922596d756 | 811 | |
Recifarium | 0:df922596d756 | 812 | ;-(10usec)-------------------------- |
Recifarium | 0:df922596d756 | 813 | Lusec LINK Lmsec ; Link |
Recifarium | 0:df922596d756 | 814 | DCB 6, "10usec" |
Recifarium | 0:df922596d756 | 815 | Tusec LDR WRK, =23 |
Recifarium | 0:df922596d756 | 816 | L1usec SUBS WRK, #1 ; 1 Cycle |
Recifarium | 0:df922596d756 | 817 | BNE L1usec ; 2 cycles (taken) 1 cycle (not taken) |
Recifarium | 0:df922596d756 | 818 | SUBS TOS, #1 ; 1 cycle |
Recifarium | 0:df922596d756 | 819 | BNE Tusec ; 2 cycles (taken) 1 cycle (not taken) |
Recifarium | 0:df922596d756 | 820 | POP {TOS} ; Update TOS |
Recifarium | 0:df922596d756 | 821 | RET |
Recifarium | 0:df922596d756 | 822 | |
Recifarium | 0:df922596d756 | 823 | ;-(SNAP)----------------------------; Debug helper |
Recifarium | 0:df922596d756 | 824 | LSnap LINK Lusec |
Recifarium | 0:df922596d756 | 825 | DCB 4, "SNAP" |
Recifarium | 0:df922596d756 | 826 | xSnap PUSH {TOS} |
Recifarium | 0:df922596d756 | 827 | ESnap MOVS r0,#8 |
Recifarium | 0:df922596d756 | 828 | Snap0 PUSH {TOS} |
Recifarium | 0:df922596d756 | 829 | LSRS TOS, TOS, #28 |
Recifarium | 0:df922596d756 | 830 | CMP TOS, #0x9 |
Recifarium | 0:df922596d756 | 831 | BGT Snap1 |
Recifarium | 0:df922596d756 | 832 | ADDS TOS, #"0" |
Recifarium | 0:df922596d756 | 833 | B Snap2 |
Recifarium | 0:df922596d756 | 834 | Snap1 ADDS TOS, #("A"-0xa) |
Recifarium | 0:df922596d756 | 835 | Snap2 LDR r1,=(USART0) |
Recifarium | 0:df922596d756 | 836 | Snap3 LDR r2,[r1,#STAT] |
Recifarium | 0:df922596d756 | 837 | LSRS r2,#3 |
Recifarium | 0:df922596d756 | 838 | BCC Snap3 ; ? ready to Xmit |
Recifarium | 0:df922596d756 | 839 | STR TOS,[r1,#TXDAT] |
Recifarium | 0:df922596d756 | 840 | POP {TOS} |
Recifarium | 0:df922596d756 | 841 | LSLS TOS,#4 |
Recifarium | 0:df922596d756 | 842 | SUBS r0,#1 |
Recifarium | 0:df922596d756 | 843 | BNE Snap0 ; =0? |
Recifarium | 0:df922596d756 | 844 | POP {TOS} |
Recifarium | 0:df922596d756 | 845 | RET |
Recifarium | 0:df922596d756 | 846 | |
Recifarium | 0:df922596d756 | 847 | |
Recifarium | 0:df922596d756 | 848 | ;-(COUNT)---------------------------(caddr -- addr,count) |
Recifarium | 0:df922596d756 | 849 | LCount LINK LSnap |
Recifarium | 0:df922596d756 | 850 | DCB 5, "COUNT" |
Recifarium | 0:df922596d756 | 851 | xCount MOVS WRK, TOS ; |
Recifarium | 0:df922596d756 | 852 | ADDS TOS, #1 ; Point to 1st char |
Recifarium | 0:df922596d756 | 853 | PUSH {TOS} ; Put it on the stack |
Recifarium | 0:df922596d756 | 854 | LDRB TOS, [WRK] ; Get length |
Recifarium | 0:df922596d756 | 855 | RET |
Recifarium | 0:df922596d756 | 856 | |
Recifarium | 0:df922596d756 | 857 | ;-(FIND)----------------------------(caddr -- caddr|xt,flag ) |
Recifarium | 0:df922596d756 | 858 | ; flag=0 not found, =1 immediate, =-1 not immediate |
Recifarium | 0:df922596d756 | 859 | LFind LINK LCount |
Recifarium | 0:df922596d756 | 860 | DCB 4, "FIND" ; May be has to be recoded in high level ! |
Recifarium | 0:df922596d756 | 861 | xFind LDR WRK2, =VLatest ; Get last entry pointer field |
Recifarium | 0:df922596d756 | 862 | Find1 TST WRK2, WRK2 ; More words? |
Recifarium | 0:df922596d756 | 863 | BEQ Find4 ; No we have to leave |
Recifarium | 0:df922596d756 | 864 | PUSH {WRK2} ; save pointer |
Recifarium | 0:df922596d756 | 865 | ADDS WRK2, #4 ; WRK2 point to counted string |
Recifarium | 0:df922596d756 | 866 | LDRB WRK1, [WRK2] ; Get Lenght+flag from dictionnary |
Recifarium | 0:df922596d756 | 867 | MOVS WRK0, #0x1F ; Flag mask |
Recifarium | 0:df922596d756 | 868 | ANDS WRK1, WRK0 ; Discard flags |
Recifarium | 0:df922596d756 | 869 | LDRB WRK0, [TOS] ; Get length of searched string |
Recifarium | 0:df922596d756 | 870 | CMP WRK0, WRK1 ; Are they equals ? |
Recifarium | 0:df922596d756 | 871 | BNE Find3 ; no , we have to test next word |
Recifarium | 0:df922596d756 | 872 | |
Recifarium | 0:df922596d756 | 873 | PUSH {TOS} |
Recifarium | 0:df922596d756 | 874 | Find1b ADDS TOS, #1 ; point to next char in input string |
Recifarium | 0:df922596d756 | 875 | ADDS WRK2, #1 ; point to next char in dictionnary word |
Recifarium | 0:df922596d756 | 876 | LDRB WRK0, [TOS] ; Get char in input string |
Recifarium | 0:df922596d756 | 877 | LDRB WRK, [WRK2] ; Get char in dictionnary |
Recifarium | 0:df922596d756 | 878 | CMP WRK0, WRK ; Are they equal |
Recifarium | 0:df922596d756 | 879 | BNE Find2 ; no try another word |
Recifarium | 0:df922596d756 | 880 | |
Recifarium | 0:df922596d756 | 881 | SUBS WRK1, #1 ; we start this loop with length in WRK1. It's our char counter |
Recifarium | 0:df922596d756 | 882 | BNE Find1b ; We still have to compare more caracters |
Recifarium | 0:df922596d756 | 883 | |
Recifarium | 0:df922596d756 | 884 | POP {TOS} ; Yes we find it |
Recifarium | 0:df922596d756 | 885 | POP {WRK2} ; link fiel address of the word we have found |
Recifarium | 0:df922596d756 | 886 | LDRB WRK, [WRK2, #4] ; Get flag+Length byte |
Recifarium | 0:df922596d756 | 887 | MOVS WRK0, #Immed |
Recifarium | 0:df922596d756 | 888 | ANDS WRK, WRK0 ; ?Immed |
Recifarium | 0:df922596d756 | 889 | BNE Find1c ; Immed |
Recifarium | 0:df922596d756 | 890 | |
Recifarium | 0:df922596d756 | 891 | SUBS TOS, TOS ; Not Immed |
Recifarium | 0:df922596d756 | 892 | SUBS TOS, #1 ; flag=-1 not immed |
Recifarium | 0:df922596d756 | 893 | B Find1d |
Recifarium | 0:df922596d756 | 894 | |
Recifarium | 0:df922596d756 | 895 | Find1c MOVS TOS, #1 ; Flag= 1 immed |
Recifarium | 0:df922596d756 | 896 | Find1d LDRB WRK, [WRK2, #4] |
Recifarium | 0:df922596d756 | 897 | MOVS WRK1, #0x1f |
Recifarium | 0:df922596d756 | 898 | ANDS WRK, WRK1 |
Recifarium | 0:df922596d756 | 899 | ADDS WRK2, #6 ; 4 of Lnk length, 1 name length and 1 to insure halfword align |
Recifarium | 0:df922596d756 | 900 | ADDS WRK2, WRK |
Recifarium | 0:df922596d756 | 901 | LSRS WRK2, #1 ; Round to a multiple |
Recifarium | 0:df922596d756 | 902 | LSLS WRK2, #1 ; of 2 |
Recifarium | 0:df922596d756 | 903 | PUSH {WRK2} ; Xt address |
Recifarium | 0:df922596d756 | 904 | B Find5 ; Done |
Recifarium | 0:df922596d756 | 905 | |
Recifarium | 0:df922596d756 | 906 | Find2 POP {TOS} ; Restore the address of counted string we are looking for |
Recifarium | 0:df922596d756 | 907 | Find3 POP {WRK2} ; Restore pointer of the linked chain |
Recifarium | 0:df922596d756 | 908 | LDR WRK2,[WRK2] ; Link to next in dictionnary |
Recifarium | 0:df922596d756 | 909 | B Find1 ; Try next one |
Recifarium | 0:df922596d756 | 910 | |
Recifarium | 0:df922596d756 | 911 | Find4 PUSH {TOS} ; Leave the c-address |
Recifarium | 0:df922596d756 | 912 | SUBS TOS, TOS ; Clear TOS (not found) |
Recifarium | 0:df922596d756 | 913 | Find5 RET |
Recifarium | 0:df922596d756 | 914 | |
Recifarium | 0:df922596d756 | 915 | LTORG |
Recifarium | 0:df922596d756 | 916 | |
Recifarium | 0:df922596d756 | 917 | ;-(ACCEPT)--------------------------( addr, len --- len2) |
Recifarium | 0:df922596d756 | 918 | LAccept LINK LFind |
Recifarium | 0:df922596d756 | 919 | DCB 6 |
Recifarium | 0:df922596d756 | 920 | DCB "ACCEPT" |
Recifarium | 0:df922596d756 | 921 | xAccept doCol |
Recifarium | 0:df922596d756 | 922 | DCB Zero, ToR ; Initial count=0 |
Recifarium | 0:df922596d756 | 923 | DCB Swap ; ( len, addr --- R:0) |
Recifarium | 0:df922596d756 | 924 | Accept1 |
Recifarium | 0:df922596d756 | 925 | DCB Key ; ( len, addr, char --- R:count) |
Recifarium | 0:df922596d756 | 926 | DCB Dup, Bl, Lt ; Is it a control character? |
Recifarium | 0:df922596d756 | 927 | ZBranch Accept3 ; No |
Recifarium | 0:df922596d756 | 928 | |
Recifarium | 0:df922596d756 | 929 | DCB Dup, Lit8, 8, Eq ; Is it a backspace? |
Recifarium | 0:df922596d756 | 930 | ZBranch Accept2 ; No |
Recifarium | 0:df922596d756 | 931 | |
Recifarium | 0:df922596d756 | 932 | DCB FromR, Dup,Zero,Eq ; Begining of line? |
Recifarium | 0:df922596d756 | 933 | DCB Swap, ToR |
Recifarium | 0:df922596d756 | 934 | ZBranch Accept1b ; No |
Recifarium | 0:df922596d756 | 935 | |
Recifarium | 0:df922596d756 | 936 | DCB Lit8, 7, Emit, Drop ; Emit Bell and go to get next char |
Recifarium | 0:df922596d756 | 937 | Branch Accept1 |
Recifarium | 0:df922596d756 | 938 | |
Recifarium | 0:df922596d756 | 939 | Accept1b |
Recifarium | 0:df922596d756 | 940 | DCB Dup,Emit, Bl, Emit, Emit |
Recifarium | 0:df922596d756 | 941 | DCB FromR, Minus1,ToR |
Recifarium | 0:df922596d756 | 942 | DCB Minus1 |
Recifarium | 0:df922596d756 | 943 | Branch Accept1 |
Recifarium | 0:df922596d756 | 944 | Accept2 |
Recifarium | 0:df922596d756 | 945 | DCB Dup, Lit8, 13, Eq ; Is it a Carriage return |
Recifarium | 0:df922596d756 | 946 | ZBranch Accept3 ; No |
Recifarium | 0:df922596d756 | 947 | Branch Accept4 |
Recifarium | 0:df922596d756 | 948 | Accept3 |
Recifarium | 0:df922596d756 | 949 | DCB Over, Over, Swap ; ( len , addr, char, char, addr--- r:count) |
Recifarium | 0:df922596d756 | 950 | DCB CStore ; ( len, addr, char---R:count) |
Recifarium | 0:df922596d756 | 951 | DCB Emit ; ( len, addr---R:count) |
Recifarium | 0:df922596d756 | 952 | DCB Plus1 ; ( len, addr+1---R:count) |
Recifarium | 0:df922596d756 | 953 | DCB FromR,Plus1, ToR ; ( len, addr+1---R:count+1) |
Recifarium | 0:df922596d756 | 954 | Branch Accept1 ; go get next char |
Recifarium | 0:df922596d756 | 955 | Accept4 |
Recifarium | 0:df922596d756 | 956 | DCB TDrop, Drop, FromR ; (count) |
Recifarium | 0:df922596d756 | 957 | DCB Cr |
Recifarium | 0:df922596d756 | 958 | DCB Exit |
Recifarium | 0:df922596d756 | 959 | |
Recifarium | 0:df922596d756 | 960 | ;-(WORD)----------------------------(char --- cstring)??????????????????????? |
Recifarium | 0:df922596d756 | 961 | LWord LINK LAccept |
Recifarium | 0:df922596d756 | 962 | DCB 4 |
Recifarium | 0:df922596d756 | 963 | DCB "WORD" |
Recifarium | 0:df922596d756 | 964 | xWord LDR WRK, =(APAD) |
Recifarium | 0:df922596d756 | 965 | LDR WRK1, =(TIB) ; Get char at address |
Recifarium | 0:df922596d756 | 966 | MOVS WRK2,WRK1 ; save TIB |
Recifarium | 0:df922596d756 | 967 | LDR WRK0,=(AtoIn) |
Recifarium | 0:df922596d756 | 968 | LDR WRK0, [WRK0] |
Recifarium | 0:df922596d756 | 969 | ADDS WRK1, WRK0 ; Point current char |
Recifarium | 0:df922596d756 | 970 | LDR WRK0, =(AnTib) |
Recifarium | 0:df922596d756 | 971 | LDR WRK0, [WRK0] |
Recifarium | 0:df922596d756 | 972 | ADDS WRK2, WRK0 ; Point end of TIB |
Recifarium | 0:df922596d756 | 973 | Word1 CMP WRK1, WRK2 |
Recifarium | 0:df922596d756 | 974 | BEQ Word3 |
Recifarium | 0:df922596d756 | 975 | |
Recifarium | 0:df922596d756 | 976 | LDRB WRK0,[WRK1] ; Get char |
Recifarium | 0:df922596d756 | 977 | ADDS WRK1, #1 ; point to next char |
Recifarium | 0:df922596d756 | 978 | CMP WRK0, TOS ; is it the delimiter? |
Recifarium | 0:df922596d756 | 979 | BEQ Word1 |
Recifarium | 0:df922596d756 | 980 | |
Recifarium | 0:df922596d756 | 981 | Word2 ADDS WRK, #1 ; avance 1 byte in PAD |
Recifarium | 0:df922596d756 | 982 | STRB WRK0, [WRK] |
Recifarium | 0:df922596d756 | 983 | CMP WRK1, WRK2 |
Recifarium | 0:df922596d756 | 984 | BEQ Word3 |
Recifarium | 0:df922596d756 | 985 | |
Recifarium | 0:df922596d756 | 986 | LDRB WRK0,[WRK1] ; Get char |
Recifarium | 0:df922596d756 | 987 | ADDS WRK1, #1 ; point to next char |
Recifarium | 0:df922596d756 | 988 | CMP WRK0, TOS ; is it the delimiter? |
Recifarium | 0:df922596d756 | 989 | BNE Word2 ; |
Recifarium | 0:df922596d756 | 990 | |
Recifarium | 0:df922596d756 | 991 | Word3 MOVS WRK0, #0x32 ; Put a blank |
Recifarium | 0:df922596d756 | 992 | STRB WRK0, [WRK, #1] ; at the end of string in pad |
Recifarium | 0:df922596d756 | 993 | LDR TOS, =(APAD) |
Recifarium | 0:df922596d756 | 994 | SUBS WRK, WRK, TOS ; Compute length |
Recifarium | 0:df922596d756 | 995 | STRB WRK, [TOS] ; Put length at the beginning |
Recifarium | 0:df922596d756 | 996 | ; of PAD |
Recifarium | 0:df922596d756 | 997 | LDR WRK, =(TIB) |
Recifarium | 0:df922596d756 | 998 | SUBS WRK1, WRK |
Recifarium | 0:df922596d756 | 999 | LDR WRK, =(AtoIn) |
Recifarium | 0:df922596d756 | 1000 | STR WRK1, [WRK] |
Recifarium | 0:df922596d756 | 1001 | RET |
Recifarium | 0:df922596d756 | 1002 | LTORG |
Recifarium | 0:df922596d756 | 1003 | |
Recifarium | 0:df922596d756 | 1004 | ;-(WORDS)----------------------------() |
Recifarium | 0:df922596d756 | 1005 | LWords LINK LWord |
Recifarium | 0:df922596d756 | 1006 | DCB 5 |
Recifarium | 0:df922596d756 | 1007 | DCB "WORDS" |
Recifarium | 0:df922596d756 | 1008 | xWords doCol |
Recifarium | 0:df922596d756 | 1009 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1010 | DCD VLatest ; ?????????????????????????????????????????????????????????????????? |
Recifarium | 0:df922596d756 | 1011 | Words1 DCB Dup, ToR |
Recifarium | 0:df922596d756 | 1012 | DCB Lit8, 4, Plus |
Recifarium | 0:df922596d756 | 1013 | DCB Count, Lit8, 0x1f, And |
Recifarium | 0:df922596d756 | 1014 | DCB Type, Bl, Emit |
Recifarium | 0:df922596d756 | 1015 | DCB FromR, At, Dup |
Recifarium | 0:df922596d756 | 1016 | ZBranch Words2 |
Recifarium | 0:df922596d756 | 1017 | Branch Words1 |
Recifarium | 0:df922596d756 | 1018 | Words2 DCB Drop, Cr |
Recifarium | 0:df922596d756 | 1019 | DCB Exit |
Recifarium | 0:df922596d756 | 1020 | |
Recifarium | 0:df922596d756 | 1021 | ;-(TYPE)----------------------------(addr,number --) |
Recifarium | 0:df922596d756 | 1022 | LType LINK LWords |
Recifarium | 0:df922596d756 | 1023 | DCB 4 |
Recifarium | 0:df922596d756 | 1024 | DCB "TYPE" |
Recifarium | 0:df922596d756 | 1025 | xType doCol |
Recifarium | 0:df922596d756 | 1026 | Type1 DCB Dup ; (addr,number,number) |
Recifarium | 0:df922596d756 | 1027 | ZBranch Type2 |
Recifarium | 0:df922596d756 | 1028 | |
Recifarium | 0:df922596d756 | 1029 | DCB Swap, Dup, CAt ; (number, addr, char) |
Recifarium | 0:df922596d756 | 1030 | DCB Emit |
Recifarium | 0:df922596d756 | 1031 | DCB Plus1, Swap, Minus1 ; (addr+1, number-1) |
Recifarium | 0:df922596d756 | 1032 | Branch Type1 |
Recifarium | 0:df922596d756 | 1033 | |
Recifarium | 0:df922596d756 | 1034 | Type2 DCB Drop, Drop ; () |
Recifarium | 0:df922596d756 | 1035 | DCB Exit |
Recifarium | 0:df922596d756 | 1036 | |
Recifarium | 0:df922596d756 | 1037 | ;-(UM+)-----------------------------(number,number -- sum,carry) |
Recifarium | 0:df922596d756 | 1038 | LUMPlus LINK LType |
Recifarium | 0:df922596d756 | 1039 | DCB 3, "UM+" |
Recifarium | 0:df922596d756 | 1040 | xUMPlus POP {WRK} |
Recifarium | 0:df922596d756 | 1041 | SUBS WRK2, WRK2 |
Recifarium | 0:df922596d756 | 1042 | ADDS WRK,WRK,TOS |
Recifarium | 0:df922596d756 | 1043 | BCC UMPlus1 |
Recifarium | 0:df922596d756 | 1044 | ADDS WRK2, #1 |
Recifarium | 0:df922596d756 | 1045 | UMPlus1 MOVS TOS, WRK2 |
Recifarium | 0:df922596d756 | 1046 | PUSH {WRK} |
Recifarium | 0:df922596d756 | 1047 | RET |
Recifarium | 0:df922596d756 | 1048 | |
Recifarium | 0:df922596d756 | 1049 | ;-(D+)------------------------------(double,double -- double) |
Recifarium | 0:df922596d756 | 1050 | LDPlus LINK LUMPlus |
Recifarium | 0:df922596d756 | 1051 | DCB 2, "D+" |
Recifarium | 0:df922596d756 | 1052 | xDPlus POP {WRK} ; low1 |
Recifarium | 0:df922596d756 | 1053 | POP {WRK1} ; high2 |
Recifarium | 0:df922596d756 | 1054 | POP {WRK2} ; low2 |
Recifarium | 0:df922596d756 | 1055 | ADDS WRK, WRK2 ; low1 + low2 |
Recifarium | 0:df922596d756 | 1056 | ADCS TOS, WRK1 ; high1+ high2 +carry |
Recifarium | 0:df922596d756 | 1057 | PUSH {WRK} |
Recifarium | 0:df922596d756 | 1058 | RET |
Recifarium | 0:df922596d756 | 1059 | |
Recifarium | 0:df922596d756 | 1060 | ;-(D-)------------------------------(double,double -- double) |
Recifarium | 0:df922596d756 | 1061 | LDMinus LINK LDPlus |
Recifarium | 0:df922596d756 | 1062 | DCB 2, "D-" ; Voir si a améliorer |
Recifarium | 0:df922596d756 | 1063 | xDMinus doCol |
Recifarium | 0:df922596d756 | 1064 | DCB DNeg, DPlus |
Recifarium | 0:df922596d756 | 1065 | DCB Exit |
Recifarium | 0:df922596d756 | 1066 | |
Recifarium | 0:df922596d756 | 1067 | ;-(DNEGATE)-------------------------(double -- -double) |
Recifarium | 0:df922596d756 | 1068 | LDNeg LINK LDMinus |
Recifarium | 0:df922596d756 | 1069 | DCB 7, "DNEGATE" ; Voir si a améliorer |
Recifarium | 0:df922596d756 | 1070 | xDNeg doCol |
Recifarium | 0:df922596d756 | 1071 | DCB Not, ToR, Not |
Recifarium | 0:df922596d756 | 1072 | DCB Lit8, 1, UMPlus |
Recifarium | 0:df922596d756 | 1073 | DCB FromR, Plus |
Recifarium | 0:df922596d756 | 1074 | DCB Exit |
Recifarium | 0:df922596d756 | 1075 | |
Recifarium | 0:df922596d756 | 1076 | ;-(S>D)-----------------------------(number -- double) |
Recifarium | 0:df922596d756 | 1077 | LStoD LINK LDNeg |
Recifarium | 0:df922596d756 | 1078 | DCB 3 |
Recifarium | 0:df922596d756 | 1079 | DCB "S>D" |
Recifarium | 0:df922596d756 | 1080 | xStoD PUSH {TOS} |
Recifarium | 0:df922596d756 | 1081 | ASRS TOS, #32 |
Recifarium | 0:df922596d756 | 1082 | RET |
Recifarium | 0:df922596d756 | 1083 | |
Recifarium | 0:df922596d756 | 1084 | ;-(U<)------------------------------(u1, u2 -- flag) |
Recifarium | 0:df922596d756 | 1085 | LULess LINK LStoD |
Recifarium | 0:df922596d756 | 1086 | DCB 2 |
Recifarium | 0:df922596d756 | 1087 | DCB "U<" |
Recifarium | 0:df922596d756 | 1088 | xULess doCol ; Voir si a améliorer |
Recifarium | 0:df922596d756 | 1089 | DCB TDup, Xor, IsNeg |
Recifarium | 0:df922596d756 | 1090 | ZBranch ULess1 |
Recifarium | 0:df922596d756 | 1091 | |
Recifarium | 0:df922596d756 | 1092 | DCB Swap, Drop, IsNeg |
Recifarium | 0:df922596d756 | 1093 | Branch ULess2 |
Recifarium | 0:df922596d756 | 1094 | |
Recifarium | 0:df922596d756 | 1095 | ULess1 DCB Minus, IsNeg |
Recifarium | 0:df922596d756 | 1096 | ULess2 DCB Exit |
Recifarium | 0:df922596d756 | 1097 | |
Recifarium | 0:df922596d756 | 1098 | ;-(U/MOD)---------------------------(ud, u -- ur , uq) |
Recifarium | 0:df922596d756 | 1099 | LUmod LINK LULess |
Recifarium | 0:df922596d756 | 1100 | DCB 6 |
Recifarium | 0:df922596d756 | 1101 | DCB "UM/MOD" |
Recifarium | 0:df922596d756 | 1102 | ; From Pygmy Forth |
Recifarium | 0:df922596d756 | 1103 | ; divide 64 bit r1:r2 by 32 bit TOS |
Recifarium | 0:df922596d756 | 1104 | xUMSMod POP {WRK1} ; Hi reg from ud |
Recifarium | 0:df922596d756 | 1105 | POP {WRK2} ; low reg from ud |
Recifarium | 0:df922596d756 | 1106 | MOVS WRK, #32 ; Loop Index |
Recifarium | 0:df922596d756 | 1107 | USMod1 |
Recifarium | 0:df922596d756 | 1108 | ADDS WRK2, WRK2 |
Recifarium | 0:df922596d756 | 1109 | ADCS WRK1, WRK1 |
Recifarium | 0:df922596d756 | 1110 | CMP WRK1, TOS |
Recifarium | 0:df922596d756 | 1111 | BCC USMod2 |
Recifarium | 0:df922596d756 | 1112 | ADDS WRK2, #1 |
Recifarium | 0:df922596d756 | 1113 | SUBS WRK1, TOS |
Recifarium | 0:df922596d756 | 1114 | USMod2 |
Recifarium | 0:df922596d756 | 1115 | SUBS WRK, #1 |
Recifarium | 0:df922596d756 | 1116 | BNE USMod1 |
Recifarium | 0:df922596d756 | 1117 | PUSH {WRK1} |
Recifarium | 0:df922596d756 | 1118 | MOV TOS, WRK2 |
Recifarium | 0:df922596d756 | 1119 | RET |
Recifarium | 0:df922596d756 | 1120 | |
Recifarium | 0:df922596d756 | 1121 | ;-(LF)------------------------------; : LF 10 EMIT ; |
Recifarium | 0:df922596d756 | 1122 | LLinF LINK LUmod |
Recifarium | 0:df922596d756 | 1123 | DCB 2, "LF" |
Recifarium | 0:df922596d756 | 1124 | xLf doCol |
Recifarium | 0:df922596d756 | 1125 | DCB Ten, Emit |
Recifarium | 0:df922596d756 | 1126 | DCB Exit |
Recifarium | 0:df922596d756 | 1127 | |
Recifarium | 0:df922596d756 | 1128 | ;-(CR)------------------------------; : CR 13 EMIT LF ; |
Recifarium | 0:df922596d756 | 1129 | LCr LINK LLinF |
Recifarium | 0:df922596d756 | 1130 | DCB 2, "CR" |
Recifarium | 0:df922596d756 | 1131 | xCr doCol |
Recifarium | 0:df922596d756 | 1132 | DCB Lit8, 0x0d, Emit, Lf |
Recifarium | 0:df922596d756 | 1133 | DCB Exit |
Recifarium | 0:df922596d756 | 1134 | |
Recifarium | 0:df922596d756 | 1135 | ;-(BL)------------------------------ |
Recifarium | 0:df922596d756 | 1136 | LBl LINK LCr |
Recifarium | 0:df922596d756 | 1137 | DCB 2+Inline, "BL" |
Recifarium | 0:df922596d756 | 1138 | xBl PUSH {TOS} |
Recifarium | 0:df922596d756 | 1139 | MOVS TOS, #' ' |
Recifarium | 0:df922596d756 | 1140 | RET |
Recifarium | 0:df922596d756 | 1141 | |
Recifarium | 0:df922596d756 | 1142 | ;-(SPACE)------------------------------ |
Recifarium | 0:df922596d756 | 1143 | LSpace LINK LBl |
Recifarium | 0:df922596d756 | 1144 | DCB 5,"SPACE" |
Recifarium | 0:df922596d756 | 1145 | xSpace doCol |
Recifarium | 0:df922596d756 | 1146 | DCB Lit8, ' ', Emit |
Recifarium | 0:df922596d756 | 1147 | DCB Exit |
Recifarium | 0:df922596d756 | 1148 | |
Recifarium | 0:df922596d756 | 1149 | ;-(SPACES)--------------------------;(n --) |
Recifarium | 0:df922596d756 | 1150 | LSpaces LINK LSpace |
Recifarium | 0:df922596d756 | 1151 | DCB 6,"SPACES" |
Recifarium | 0:df922596d756 | 1152 | xSpaces doCol |
Recifarium | 0:df922596d756 | 1153 | Spaces1 DCB DupNZ |
Recifarium | 0:df922596d756 | 1154 | ZBranch Spaces2 |
Recifarium | 0:df922596d756 | 1155 | DCB Space, Minus1 |
Recifarium | 0:df922596d756 | 1156 | Branch Spaces1 |
Recifarium | 0:df922596d756 | 1157 | Spaces2 DCB Exit |
Recifarium | 0:df922596d756 | 1158 | |
Recifarium | 0:df922596d756 | 1159 | ;-(DIGIT)---------------------------;(n -- char) |
Recifarium | 0:df922596d756 | 1160 | LDigit LINK LSpaces |
Recifarium | 0:df922596d756 | 1161 | DCB 5, "DIGIT" |
Recifarium | 0:df922596d756 | 1162 | xDigit doCol ; : Digit 9 Over < 7 And + 48 + ; |
Recifarium | 0:df922596d756 | 1163 | DCB Lit8, 9, Over, Lt |
Recifarium | 0:df922596d756 | 1164 | DCB Lit8, 7, And, Plus |
Recifarium | 0:df922596d756 | 1165 | DCB Lit8, '0', Plus |
Recifarium | 0:df922596d756 | 1166 | DCB Exit |
Recifarium | 0:df922596d756 | 1167 | |
Recifarium | 0:df922596d756 | 1168 | ;-(FILL)----------------------------( addr,u,char -- ) |
Recifarium | 0:df922596d756 | 1169 | LFill LINK LDigit |
Recifarium | 0:df922596d756 | 1170 | DCB 4 |
Recifarium | 0:df922596d756 | 1171 | DCB "FILL" |
Recifarium | 0:df922596d756 | 1172 | xFill POP {WRK} ; Get u |
Recifarium | 0:df922596d756 | 1173 | POP {WRK2} ; Get addr |
Recifarium | 0:df922596d756 | 1174 | Fill1 CMP WRK, #0 |
Recifarium | 0:df922596d756 | 1175 | BEQ Fill2 ; Finish? |
Recifarium | 0:df922596d756 | 1176 | STRB TOS, [WRK2] ; Put char |
Recifarium | 0:df922596d756 | 1177 | ADDS WRK2, #1 ; addr= addr+1 |
Recifarium | 0:df922596d756 | 1178 | SUBS WRK, #1 ; u = u-1 |
Recifarium | 0:df922596d756 | 1179 | B Fill1 ; One more time |
Recifarium | 0:df922596d756 | 1180 | Fill2 POP {TOS} ; Update TOS |
Recifarium | 0:df922596d756 | 1181 | RET |
Recifarium | 0:df922596d756 | 1182 | |
Recifarium | 0:df922596d756 | 1183 | ;-(CODE:)---------------------------?Future?????????????? |
Recifarium | 0:df922596d756 | 1184 | LBCode LINK LFill |
Recifarium | 0:df922596d756 | 1185 | DCB 5+Cmponly ; CODE: CANNOT be Inline ! |
Recifarium | 0:df922596d756 | 1186 | DCB "CODE:" |
Recifarium | 0:df922596d756 | 1187 | xBCode ADDS IPTR, #1 ; to align at |
Recifarium | 0:df922596d756 | 1188 | LSRS IPTR, IPTR, #1 ; the next halfword |
Recifarium | 0:df922596d756 | 1189 | LSLS IPTR, IPTR, #1 ; boundary |
Recifarium | 0:df922596d756 | 1190 | ADDS IPTR, #1 ; Because of Thumb boundary |
Recifarium | 0:df922596d756 | 1191 | MOV PC, IPTR ; Jump to code itself |
Recifarium | 0:df922596d756 | 1192 | RET |
Recifarium | 0:df922596d756 | 1193 | |
Recifarium | 0:df922596d756 | 1194 | ;-(;CODE)---------------------------?Future?????????????? |
Recifarium | 0:df922596d756 | 1195 | LECode LINK LBCode |
Recifarium | 0:df922596d756 | 1196 | DCB 5+Inline+Cmponly ; It MUST be inline ???? |
Recifarium | 0:df922596d756 | 1197 | DCB ";CODE" |
Recifarium | 0:df922596d756 | 1198 | xECode BL Here ; Where are we ? Collect address in lr |
Recifarium | 0:df922596d756 | 1199 | Here MOV IPTR, lr ; |
Recifarium | 0:df922596d756 | 1200 | ADDS IPTR, #5 ; To point after the RET |
Recifarium | 0:df922596d756 | 1201 | RET |
Recifarium | 0:df922596d756 | 1202 | |
Recifarium | 0:df922596d756 | 1203 | ;-(TOUPPER)-------------------------(char--upchar) |
Recifarium | 0:df922596d756 | 1204 | LToupp LINK LECode |
Recifarium | 0:df922596d756 | 1205 | DCB 7 |
Recifarium | 0:df922596d756 | 1206 | DCB "TOUPPER" |
Recifarium | 0:df922596d756 | 1207 | xToupp CMP TOS, #'a'-1 |
Recifarium | 0:df922596d756 | 1208 | BLE Toupp1 |
Recifarium | 0:df922596d756 | 1209 | CMP TOS, #'z'+1 |
Recifarium | 0:df922596d756 | 1210 | BGE Toupp1 |
Recifarium | 0:df922596d756 | 1211 | SUBS TOS, #'a'-'A' |
Recifarium | 0:df922596d756 | 1212 | Toupp1 RET |
Recifarium | 0:df922596d756 | 1213 | |
Recifarium | 0:df922596d756 | 1214 | ;-(NOOP)----------------------------() |
Recifarium | 0:df922596d756 | 1215 | LNoop LINK LToupp |
Recifarium | 0:df922596d756 | 1216 | DCB 4 |
Recifarium | 0:df922596d756 | 1217 | xNoop DCB "NOOP" |
Recifarium | 0:df922596d756 | 1218 | RET |
Recifarium | 0:df922596d756 | 1219 | ;-(UPPER)---------------------------(addr, count --) |
Recifarium | 0:df922596d756 | 1220 | LUpper LINK LNoop |
Recifarium | 0:df922596d756 | 1221 | DCB 5 |
Recifarium | 0:df922596d756 | 1222 | DCB "UPPER" |
Recifarium | 0:df922596d756 | 1223 | POP {WRK} ; Get addr |
Recifarium | 0:df922596d756 | 1224 | xUpper CMP TOS, #0 ; count=0? |
Recifarium | 0:df922596d756 | 1225 | BEQ Upperx ; yes |
Recifarium | 0:df922596d756 | 1226 | LDRB WRK2, [WRK] |
Recifarium | 0:df922596d756 | 1227 | CMP WRK2, #'a'-1 |
Recifarium | 0:df922596d756 | 1228 | BLE Upper3 |
Recifarium | 0:df922596d756 | 1229 | CMP WRK2, #'z'+1 |
Recifarium | 0:df922596d756 | 1230 | BGE Upper3 |
Recifarium | 0:df922596d756 | 1231 | SUBS WRK2, #'a'-'A' |
Recifarium | 0:df922596d756 | 1232 | STRB WRK2, [WRK] |
Recifarium | 0:df922596d756 | 1233 | Upper3 ADDS WRK, #1 |
Recifarium | 0:df922596d756 | 1234 | SUBS TOS, #1 |
Recifarium | 0:df922596d756 | 1235 | B xUpper |
Recifarium | 0:df922596d756 | 1236 | Upperx POP {TOS} |
Recifarium | 0:df922596d756 | 1237 | RET |
Recifarium | 0:df922596d756 | 1238 | |
Recifarium | 0:df922596d756 | 1239 | ;-(FALSE)---------------------------(--Fflag) |
Recifarium | 0:df922596d756 | 1240 | LFalse LINK LUpper |
Recifarium | 0:df922596d756 | 1241 | DCB 5, "FALSE" |
Recifarium | 0:df922596d756 | 1242 | xFalse PUSH {TOS} |
Recifarium | 0:df922596d756 | 1243 | SUBS TOS, TOS ; Put 0 in TOS |
Recifarium | 0:df922596d756 | 1244 | RET |
Recifarium | 0:df922596d756 | 1245 | |
Recifarium | 0:df922596d756 | 1246 | ;-(TRUE)----------------------------(--Tflag) |
Recifarium | 0:df922596d756 | 1247 | LTrue LINK LFalse |
Recifarium | 0:df922596d756 | 1248 | DCB 4, "TRUE" |
Recifarium | 0:df922596d756 | 1249 | xTrue PUSH {TOS} |
Recifarium | 0:df922596d756 | 1250 | SUBS TOS, TOS |
Recifarium | 0:df922596d756 | 1251 | SUBS TOS, #1 |
Recifarium | 0:df922596d756 | 1252 | RET |
Recifarium | 0:df922596d756 | 1253 | |
Recifarium | 0:df922596d756 | 1254 | ;-(DECIMAL)-------------------------() |
Recifarium | 0:df922596d756 | 1255 | LDecim LINK LTrue |
Recifarium | 0:df922596d756 | 1256 | DCB 7, "DECIMAL" |
Recifarium | 0:df922596d756 | 1257 | xDec doCol |
Recifarium | 0:df922596d756 | 1258 | DCB Lit8, 10 |
Recifarium | 0:df922596d756 | 1259 | DCB Base, Store ; Set Base to 10 |
Recifarium | 0:df922596d756 | 1260 | DCB Exit |
Recifarium | 0:df922596d756 | 1261 | |
Recifarium | 0:df922596d756 | 1262 | ;-(BIN)------------------------------() |
Recifarium | 0:df922596d756 | 1263 | LBin LINK LDecim |
Recifarium | 0:df922596d756 | 1264 | DCB 3, "BIN" |
Recifarium | 0:df922596d756 | 1265 | xBin doCol |
Recifarium | 0:df922596d756 | 1266 | DCB Lit8, 2 |
Recifarium | 0:df922596d756 | 1267 | DCB Base, Store ; Set Base to 2 |
Recifarium | 0:df922596d756 | 1268 | DCB Exit |
Recifarium | 0:df922596d756 | 1269 | |
Recifarium | 0:df922596d756 | 1270 | ;-(HEX)------------------------------() |
Recifarium | 0:df922596d756 | 1271 | LHex LINK LBin |
Recifarium | 0:df922596d756 | 1272 | DCB 3, "HEX" |
Recifarium | 0:df922596d756 | 1273 | xHex doCol |
Recifarium | 0:df922596d756 | 1274 | DCB Lit8, 16 |
Recifarium | 0:df922596d756 | 1275 | DCB Base, Store ; Set Base to 16 |
Recifarium | 0:df922596d756 | 1276 | DCB Exit |
Recifarium | 0:df922596d756 | 1277 | |
Recifarium | 0:df922596d756 | 1278 | ;-(HLD)-----------------------------() |
Recifarium | 0:df922596d756 | 1279 | LHld LINK LHex |
Recifarium | 0:df922596d756 | 1280 | DCB 3, "HLD" |
Recifarium | 0:df922596d756 | 1281 | xHld PUSH {TOS} |
Recifarium | 0:df922596d756 | 1282 | LDR TOS, =AHLD |
Recifarium | 0:df922596d756 | 1283 | RET |
Recifarium | 0:df922596d756 | 1284 | ;-(<#)------------------------------() |
Recifarium | 0:df922596d756 | 1285 | LStrPic LINK LHld |
Recifarium | 0:df922596d756 | 1286 | DCB 2, "<#" |
Recifarium | 0:df922596d756 | 1287 | xStrPic doCol |
Recifarium | 0:df922596d756 | 1288 | DCB Pad , Lit8, 127, Plus |
Recifarium | 0:df922596d756 | 1289 | DCB Hld, Store |
Recifarium | 0:df922596d756 | 1290 | DCB Exit |
Recifarium | 0:df922596d756 | 1291 | |
Recifarium | 0:df922596d756 | 1292 | ;-(HOLD)----------------------------() |
Recifarium | 0:df922596d756 | 1293 | LHold LINK LStrPic |
Recifarium | 0:df922596d756 | 1294 | DCB 4, "HOLD" |
Recifarium | 0:df922596d756 | 1295 | xHold doCol |
Recifarium | 0:df922596d756 | 1296 | DCB Hld, At, Minus1 |
Recifarium | 0:df922596d756 | 1297 | DCB Dup, Hld, Store, CStore |
Recifarium | 0:df922596d756 | 1298 | DCB Exit |
Recifarium | 0:df922596d756 | 1299 | |
Recifarium | 0:df922596d756 | 1300 | ;-(#)------------------------------() |
Recifarium | 0:df922596d756 | 1301 | LNumb LINK LHold |
Recifarium | 0:df922596d756 | 1302 | DCB 1, "#" |
Recifarium | 0:df922596d756 | 1303 | xNumb doCol |
Recifarium | 0:df922596d756 | 1304 | DCB Base, At |
Recifarium | 0:df922596d756 | 1305 | DCB Extract |
Recifarium | 0:df922596d756 | 1306 | ; DCB DotS |
Recifarium | 0:df922596d756 | 1307 | DCB Hold |
Recifarium | 0:df922596d756 | 1308 | DCB Exit |
Recifarium | 0:df922596d756 | 1309 | |
Recifarium | 0:df922596d756 | 1310 | ;-(#S)------------------------------() |
Recifarium | 0:df922596d756 | 1311 | LNumStr LINK LNumb |
Recifarium | 0:df922596d756 | 1312 | DCB 2, "#S" |
Recifarium | 0:df922596d756 | 1313 | xNumStr doCol |
Recifarium | 0:df922596d756 | 1314 | NumStr1 DCB Numb, Dup |
Recifarium | 0:df922596d756 | 1315 | DCB IsNull |
Recifarium | 0:df922596d756 | 1316 | ZBranch NumStr1 |
Recifarium | 0:df922596d756 | 1317 | DCB Exit |
Recifarium | 0:df922596d756 | 1318 | |
Recifarium | 0:df922596d756 | 1319 | ;-(SIGN)----------------------------() |
Recifarium | 0:df922596d756 | 1320 | LSign LINK LNumStr |
Recifarium | 0:df922596d756 | 1321 | DCB 4, "SIGN" |
Recifarium | 0:df922596d756 | 1322 | xSign doCol |
Recifarium | 0:df922596d756 | 1323 | DCB IsNeg |
Recifarium | 0:df922596d756 | 1324 | ZBranch Sign1 |
Recifarium | 0:df922596d756 | 1325 | DCB Lit8, '-', Hold |
Recifarium | 0:df922596d756 | 1326 | Sign1 DCB Exit |
Recifarium | 0:df922596d756 | 1327 | |
Recifarium | 0:df922596d756 | 1328 | ;-(#>)------------------------------() |
Recifarium | 0:df922596d756 | 1329 | LEndPic LINK LSign |
Recifarium | 0:df922596d756 | 1330 | DCB 2, "#>" |
Recifarium | 0:df922596d756 | 1331 | xEndPic doCol |
Recifarium | 0:df922596d756 | 1332 | DCB Drop, Hld, At |
Recifarium | 0:df922596d756 | 1333 | dcb Pad, Lit8, 127, Plus |
Recifarium | 0:df922596d756 | 1334 | DCB Over, Minus |
Recifarium | 0:df922596d756 | 1335 | DCB Exit |
Recifarium | 0:df922596d756 | 1336 | |
Recifarium | 0:df922596d756 | 1337 | ;-(STR)-----------------------------() |
Recifarium | 0:df922596d756 | 1338 | LStr LINK LEndPic |
Recifarium | 0:df922596d756 | 1339 | DCB 3, "STR" |
Recifarium | 0:df922596d756 | 1340 | xStr doCol |
Recifarium | 0:df922596d756 | 1341 | DCB Dup, ToR, Abs, StrPic |
Recifarium | 0:df922596d756 | 1342 | DCB NumStr, FromR, Sign, EndPic |
Recifarium | 0:df922596d756 | 1343 | DCB Exit |
Recifarium | 0:df922596d756 | 1344 | |
Recifarium | 0:df922596d756 | 1345 | ;-(DotR)----------------------------() |
Recifarium | 0:df922596d756 | 1346 | LDotR LINK LStr |
Recifarium | 0:df922596d756 | 1347 | DCB 2, ".R" |
Recifarium | 0:df922596d756 | 1348 | xDotR doCol |
Recifarium | 0:df922596d756 | 1349 | DCB ToR, Str, FromR |
Recifarium | 0:df922596d756 | 1350 | DCB Over, Minus, Spaces |
Recifarium | 0:df922596d756 | 1351 | DCB Type |
Recifarium | 0:df922596d756 | 1352 | DCB Exit |
Recifarium | 0:df922596d756 | 1353 | |
Recifarium | 0:df922596d756 | 1354 | ;-(UdR)----------------------------() |
Recifarium | 0:df922596d756 | 1355 | LUdR LINK LDotR |
Recifarium | 0:df922596d756 | 1356 | DCB 3, "U.R" |
Recifarium | 0:df922596d756 | 1357 | xUDotR doCol |
Recifarium | 0:df922596d756 | 1358 | DCB ToR, StrPic, NumStr |
Recifarium | 0:df922596d756 | 1359 | DCB EndPic, FromR, Over |
Recifarium | 0:df922596d756 | 1360 | DCB Minus, Spaces, Type |
Recifarium | 0:df922596d756 | 1361 | DCB Exit |
Recifarium | 0:df922596d756 | 1362 | |
Recifarium | 0:df922596d756 | 1363 | ;-(U.)------------------------------() |
Recifarium | 0:df922596d756 | 1364 | LUDot LINK LUdR |
Recifarium | 0:df922596d756 | 1365 | DCB 2, "U." |
Recifarium | 0:df922596d756 | 1366 | xUDot doCol |
Recifarium | 0:df922596d756 | 1367 | DCB StrPic, NumStr, EndPic |
Recifarium | 0:df922596d756 | 1368 | DCB Space, Type |
Recifarium | 0:df922596d756 | 1369 | DCB Exit |
Recifarium | 0:df922596d756 | 1370 | |
Recifarium | 0:df922596d756 | 1371 | ;-(.)------------------------------() |
Recifarium | 0:df922596d756 | 1372 | LDot LINK LUDot |
Recifarium | 0:df922596d756 | 1373 | DCB 1, "." |
Recifarium | 0:df922596d756 | 1374 | xDot doCol |
Recifarium | 0:df922596d756 | 1375 | DCB Base, At, Lit8, 10 |
Recifarium | 0:df922596d756 | 1376 | DCB Xor |
Recifarium | 0:df922596d756 | 1377 | ZBranch Dot1 |
Recifarium | 0:df922596d756 | 1378 | DCB UDot |
Recifarium | 0:df922596d756 | 1379 | Branch Dot2 |
Recifarium | 0:df922596d756 | 1380 | Dot1 DCB Str, Space, Type |
Recifarium | 0:df922596d756 | 1381 | Dot2 DCB Exit |
Recifarium | 0:df922596d756 | 1382 | |
Recifarium | 0:df922596d756 | 1383 | |
Recifarium | 0:df922596d756 | 1384 | ;-(.S)------------------------------() |
Recifarium | 0:df922596d756 | 1385 | LDotS LINK LDot |
Recifarium | 0:df922596d756 | 1386 | DCB 2, ".S" |
Recifarium | 0:df922596d756 | 1387 | xDotS doCol |
Recifarium | 0:df922596d756 | 1388 | DCB Depth ; (Depth) |
Recifarium | 0:df922596d756 | 1389 | DCB Sp0 |
Recifarium | 0:df922596d756 | 1390 | DCB Lit8, 8 , Minus ; (depth, Sp) |
Recifarium | 0:df922596d756 | 1391 | DCB Swap ; (Sp, depth) |
Recifarium | 0:df922596d756 | 1392 | DotS1 DCB Dup ; (Sp, depth, depth) |
Recifarium | 0:df922596d756 | 1393 | ZBranch DotS3 ; (sp, depth) |
Recifarium | 0:df922596d756 | 1394 | |
Recifarium | 0:df922596d756 | 1395 | DCB Dup ; (sp, depth, depth) |
Recifarium | 0:df922596d756 | 1396 | DCB Lit8, 1, Eq ; (sp, depth, flag) |
Recifarium | 0:df922596d756 | 1397 | ZBranch DotS2 ; (sp, depth) |
Recifarium | 0:df922596d756 | 1398 | ; Here we collect the last element in stack which is in TOS |
Recifarium | 0:df922596d756 | 1399 | ; we need to collect it with Rot. Can be shortened... |
Recifarium | 0:df922596d756 | 1400 | DCB Rot, Snap, Cr ; (sp, depth, TOS) <<<<<<<<<<<<à remplacer par . |
Recifarium | 0:df922596d756 | 1401 | DCB MRot ; (TOS, sp, depth) Put TOS at the right place |
Recifarium | 0:df922596d756 | 1402 | Branch DotS3 ; and leave |
Recifarium | 0:df922596d756 | 1403 | |
Recifarium | 0:df922596d756 | 1404 | DotS2 DCB Swap, Dup, At ; (Depth,Sp,@Sp) |
Recifarium | 0:df922596d756 | 1405 | DCB Snap, Drop, Cr ; (Depth,Sp) <<<<<<<<<<<<à remplacer par . |
Recifarium | 0:df922596d756 | 1406 | DCB Lit8, 4, Minus ; (Depth,Sp) |
Recifarium | 0:df922596d756 | 1407 | DCB Swap, One, Minus ; (Sp,Depth) |
Recifarium | 0:df922596d756 | 1408 | Branch DotS1 |
Recifarium | 0:df922596d756 | 1409 | |
Recifarium | 0:df922596d756 | 1410 | DotS3 DCB Drop, Drop ; () |
Recifarium | 0:df922596d756 | 1411 | DCB Exit |
Recifarium | 0:df922596d756 | 1412 | |
Recifarium | 0:df922596d756 | 1413 | ;(C,)-------------------------------(char--) |
Recifarium | 0:df922596d756 | 1414 | LCComa LINK LDotS |
Recifarium | 0:df922596d756 | 1415 | DCB 2, "C," |
Recifarium | 0:df922596d756 | 1416 | xCComa doCol |
Recifarium | 0:df922596d756 | 1417 | |
Recifarium | 0:df922596d756 | 1418 | DCB Exit |
Recifarium | 0:df922596d756 | 1419 | |
Recifarium | 0:df922596d756 | 1420 | ;(H,)-------------------------------(halfword--) |
Recifarium | 0:df922596d756 | 1421 | LHComa LINK LCComa |
Recifarium | 0:df922596d756 | 1422 | DCB 2, "H," |
Recifarium | 0:df922596d756 | 1423 | xHComa doCol |
Recifarium | 0:df922596d756 | 1424 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1425 | DCD Transit |
Recifarium | 0:df922596d756 | 1426 | DCB Dup, MRot |
Recifarium | 0:df922596d756 | 1427 | ; DCB Hstore |
Recifarium | 0:df922596d756 | 1428 | ; DCB Dup, At, CComa |
Recifarium | 0:df922596d756 | 1429 | ; DCB PlusOne, At, CComa |
Recifarium | 0:df922596d756 | 1430 | DCB Exit |
Recifarium | 0:df922596d756 | 1431 | |
Recifarium | 0:df922596d756 | 1432 | ;(,)--------------------------------(word--) |
Recifarium | 0:df922596d756 | 1433 | LComa LINK LHComa |
Recifarium | 0:df922596d756 | 1434 | DCB 1, "," |
Recifarium | 0:df922596d756 | 1435 | xComa doCol |
Recifarium | 0:df922596d756 | 1436 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1437 | DCD Transit |
Recifarium | 0:df922596d756 | 1438 | DCB Dup, MRot ;(TRansaddr, word, Transaddr) |
Recifarium | 0:df922596d756 | 1439 | DCB Store ;(Transaddr) |
Recifarium | 0:df922596d756 | 1440 | ; DCB Dup, At, HComa |
Recifarium | 0:df922596d756 | 1441 | ; DCB TwoPlus, At, HComa |
Recifarium | 0:df922596d756 | 1442 | DCB Exit |
Recifarium | 0:df922596d756 | 1443 | |
Recifarium | 0:df922596d756 | 1444 | ;(>IN)------------------------------(--address) |
Recifarium | 0:df922596d756 | 1445 | LtoIn LINK LComa |
Recifarium | 0:df922596d756 | 1446 | DCB 3, ">IN" |
Recifarium | 0:df922596d756 | 1447 | xtoIn PUSH {TOS} |
Recifarium | 0:df922596d756 | 1448 | LDR TOS, =AtoIn |
Recifarium | 0:df922596d756 | 1449 | RET |
Recifarium | 0:df922596d756 | 1450 | |
Recifarium | 0:df922596d756 | 1451 | ;(PAD)-----------------------------(--address) |
Recifarium | 0:df922596d756 | 1452 | LPad LINK LtoIn |
Recifarium | 0:df922596d756 | 1453 | DCB 3, "PAD" |
Recifarium | 0:df922596d756 | 1454 | xPad PUSH {TOS} |
Recifarium | 0:df922596d756 | 1455 | LDR TOS, =APAD |
Recifarium | 0:df922596d756 | 1456 | RET |
Recifarium | 0:df922596d756 | 1457 | ;(#TIB)-----------------------------(--address) |
Recifarium | 0:df922596d756 | 1458 | LnTib LINK LPad |
Recifarium | 0:df922596d756 | 1459 | DCB 4, "#TIB" |
Recifarium | 0:df922596d756 | 1460 | xnTib PUSH {TOS} |
Recifarium | 0:df922596d756 | 1461 | LDR TOS, =AnTib |
Recifarium | 0:df922596d756 | 1462 | RET |
Recifarium | 0:df922596d756 | 1463 | LTORG |
Recifarium | 0:df922596d756 | 1464 | ;(RS0)------------------------------ Headerless |
Recifarium | 0:df922596d756 | 1465 | xRS0 LDR RPTR, =Begin |
Recifarium | 0:df922596d756 | 1466 | RET |
Recifarium | 0:df922596d756 | 1467 | |
Recifarium | 0:df922596d756 | 1468 | ;(QUIT)-----------------------------(word--) |
Recifarium | 0:df922596d756 | 1469 | LQuit LINK LnTib |
Recifarium | 0:df922596d756 | 1470 | DCB 4, "QUIT" |
Recifarium | 0:df922596d756 | 1471 | xQuit doCol |
Recifarium | 0:df922596d756 | 1472 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1473 | DCD Begin ; Set RPTR Return Stack Pointer to |
Recifarium | 0:df922596d756 | 1474 | DCB RS0 ; beginning of RAM |
Recifarium | 0:df922596d756 | 1475 | DCB False, State, Store ; Set Interpret Mode |
Recifarium | 0:df922596d756 | 1476 | ; ........... |
Recifarium | 0:df922596d756 | 1477 | DCB Exit |
Recifarium | 0:df922596d756 | 1478 | |
Recifarium | 0:df922596d756 | 1479 | ;(ABORT)----------------------------(word--) |
Recifarium | 0:df922596d756 | 1480 | LAbort LINK LQuit |
Recifarium | 0:df922596d756 | 1481 | DCB 5, "ABORT" |
Recifarium | 0:df922596d756 | 1482 | ;................... |
Recifarium | 0:df922596d756 | 1483 | DCB Exit |
Recifarium | 0:df922596d756 | 1484 | |
Recifarium | 0:df922596d756 | 1485 | ;(INTERPRET)------------------------(word--) Still to be clean |
Recifarium | 0:df922596d756 | 1486 | LInterp LINK LAbort |
Recifarium | 0:df922596d756 | 1487 | DCB 9, "INTERPRET" |
Recifarium | 0:df922596d756 | 1488 | xInter doCol |
Recifarium | 0:df922596d756 | 1489 | Interp DCB nTib, At ; Get # of char entered |
Recifarium | 0:df922596d756 | 1490 | DCB toIn, At ; get # of char processed |
Recifarium | 0:df922596d756 | 1491 | DCB Eq |
Recifarium | 0:df922596d756 | 1492 | ZBranch Intrp5 ; Still some char to process |
Recifarium | 0:df922596d756 | 1493 | Intrp2 |
Recifarium | 0:df922596d756 | 1494 | DCB Lit8, '>', Emit ; Prompt |
Recifarium | 0:df922596d756 | 1495 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1496 | DCD TIB |
Recifarium | 0:df922596d756 | 1497 | DCB Lit8, 50, Accept ; Refill with a new line |
Recifarium | 0:df922596d756 | 1498 | ; DCB DotS ; Debug <<<<<<<<<<<<<<< |
Recifarium | 0:df922596d756 | 1499 | DCB Dup, Zero, Eq ; Is it a null line? |
Recifarium | 0:df922596d756 | 1500 | ZBranch Intrp4 ; No |
Recifarium | 0:df922596d756 | 1501 | Intrp3 |
Recifarium | 0:df922596d756 | 1502 | DCB Drop ; Discard length |
Recifarium | 0:df922596d756 | 1503 | Branch Intrp2 ; and retry |
Recifarium | 0:df922596d756 | 1504 | Intrp4 |
Recifarium | 0:df922596d756 | 1505 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1506 | DCD AnTib |
Recifarium | 0:df922596d756 | 1507 | DCB Store ; Update #TIB |
Recifarium | 0:df922596d756 | 1508 | DCB Zero, toIn, Store ; Point to the beginning |
Recifarium | 0:df922596d756 | 1509 | Intrp5 |
Recifarium | 0:df922596d756 | 1510 | DCB Bl ; space is the separator |
Recifarium | 0:df922596d756 | 1511 | DCB Word ; Try to find a WORD |
Recifarium | 0:df922596d756 | 1512 | DCB Dup, CAt ; Get length |
Recifarium | 0:df922596d756 | 1513 | DCB Zero, Eq, Not ; Not a blank line? |
Recifarium | 0:df922596d756 | 1514 | ZBranch Intrp3 ; no get new one |
Recifarium | 0:df922596d756 | 1515 | ; we have a string ! |
Recifarium | 0:df922596d756 | 1516 | DCB Find ; try to find it in dictionary |
Recifarium | 0:df922596d756 | 1517 | DCB Dup ; Duplicate flag from Find 0 mean not found |
Recifarium | 0:df922596d756 | 1518 | ZBranch Intrp8 ; Not a Word |
Recifarium | 0:df922596d756 | 1519 | |
Recifarium | 0:df922596d756 | 1520 | DCB State, At ; c'est de <<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
Recifarium | 0:df922596d756 | 1521 | DCB Eq ; la daube <<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
Recifarium | 0:df922596d756 | 1522 | ZBranch Intrp7 |
Recifarium | 0:df922596d756 | 1523 | ; |
Recifarium | 0:df922596d756 | 1524 | ; compile |
Recifarium | 0:df922596d756 | 1525 | ; |
Recifarium | 0:df922596d756 | 1526 | Branch Intrp9 |
Recifarium | 0:df922596d756 | 1527 | Intrp7 |
Recifarium | 0:df922596d756 | 1528 | DCB Execute |
Recifarium | 0:df922596d756 | 1529 | Branch Intrp10 |
Recifarium | 0:df922596d756 | 1530 | Intrp8 ; Traitement peut-etre nombre |
Recifarium | 0:df922596d756 | 1531 | DCB Drop, Drop |
Recifarium | 0:df922596d756 | 1532 | ; DCB Lit32 |
Recifarium | 0:df922596d756 | 1533 | ; DCD Mess2, Count, Type, Type ; debug <<<<<<<<<<<<<<<<<<<<<<< |
Recifarium | 0:df922596d756 | 1534 | ; not a word may be a number |
Recifarium | 0:df922596d756 | 1535 | ; |
Recifarium | 0:df922596d756 | 1536 | Intrp9 |
Recifarium | 0:df922596d756 | 1537 | Intrp10 |
Recifarium | 0:df922596d756 | 1538 | Branch Interp |
Recifarium | 0:df922596d756 | 1539 | DCB Exit |
Recifarium | 0:df922596d756 | 1540 | |
Recifarium | 0:df922596d756 | 1541 | ;(CallR0)---------------------------(word--) |
Recifarium | 0:df922596d756 | 1542 | LCallR0 LINK LInterp |
Recifarium | 0:df922596d756 | 1543 | DCB 6 |
Recifarium | 0:df922596d756 | 1544 | DCB "CallR0" |
Recifarium | 0:df922596d756 | 1545 | xCallR0 doCol |
Recifarium | 0:df922596d756 | 1546 | ;...............; |
Recifarium | 0:df922596d756 | 1547 | |
Recifarium | 0:df922596d756 | 1548 | DCB Exit |
Recifarium | 0:df922596d756 | 1549 | |
Recifarium | 0:df922596d756 | 1550 | ;(DIGIT?)---------------------------(char, base --u f) |
Recifarium | 0:df922596d756 | 1551 | LisDigit LINK LCallR0 |
Recifarium | 0:df922596d756 | 1552 | DCB 6, "DIGIT?" |
Recifarium | 0:df922596d756 | 1553 | xisDigit doCol |
Recifarium | 0:df922596d756 | 1554 | DCB ToR ;(char) |
Recifarium | 0:df922596d756 | 1555 | DCB Lit8, '0', Minus ;(num) |
Recifarium | 0:df922596d756 | 1556 | DCB Dup ;(num,num) |
Recifarium | 0:df922596d756 | 1557 | DCB Lit8, 9, Gt ;(num, flag) |
Recifarium | 0:df922596d756 | 1558 | ZBranch isDigit1 |
Recifarium | 0:df922596d756 | 1559 | DCB Lit8, ('A'-'9'-1) |
Recifarium | 0:df922596d756 | 1560 | DCB Minus |
Recifarium | 0:df922596d756 | 1561 | isDigit1 ;(num) |
Recifarium | 0:df922596d756 | 1562 | DCB Dup, FromR, ULess |
Recifarium | 0:df922596d756 | 1563 | DCB Exit |
Recifarium | 0:df922596d756 | 1564 | |
Recifarium | 0:df922596d756 | 1565 | ;(CHAR)-----------------------------( -- char) |
Recifarium | 0:df922596d756 | 1566 | LChar LINK LisDigit |
Recifarium | 0:df922596d756 | 1567 | DCB 4, "CHAR" |
Recifarium | 0:df922596d756 | 1568 | xChar doCol |
Recifarium | 0:df922596d756 | 1569 | DCB Bl, Word, Plus1, CAt |
Recifarium | 0:df922596d756 | 1570 | DCB Exit |
Recifarium | 0:df922596d756 | 1571 | |
Recifarium | 0:df922596d756 | 1572 | ;(EXTRACT)-----------------------------( n base -- n c) |
Recifarium | 0:df922596d756 | 1573 | LExtract LINK LChar |
Recifarium | 0:df922596d756 | 1574 | DCB 7, "EXTRACT" |
Recifarium | 0:df922596d756 | 1575 | xExtract doCol |
Recifarium | 0:df922596d756 | 1576 | DCB Zero, Swap, UMSMod, Swap, Digit |
Recifarium | 0:df922596d756 | 1577 | DCB Exit |
Recifarium | 0:df922596d756 | 1578 | |
Recifarium | 0:df922596d756 | 1579 | |
Recifarium | 0:df922596d756 | 1580 | |
Recifarium | 0:df922596d756 | 1581 | ;(')--------------------------------( -- address) |
Recifarium | 0:df922596d756 | 1582 | LTick LINK LExtract |
Recifarium | 0:df922596d756 | 1583 | DCB 1, "'" |
Recifarium | 0:df922596d756 | 1584 | xTick doCol |
Recifarium | 0:df922596d756 | 1585 | DCB Bl, Word, Find, Not |
Recifarium | 0:df922596d756 | 1586 | ZBranch Tick1 |
Recifarium | 0:df922596d756 | 1587 | DCB Count, Type, Bl, Emit |
Recifarium | 0:df922596d756 | 1588 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1589 | DCD Mess3 |
Recifarium | 0:df922596d756 | 1590 | DCB Count, Type, Cr |
Recifarium | 0:df922596d756 | 1591 | |
Recifarium | 0:df922596d756 | 1592 | Tick1 DCB Exit |
Recifarium | 0:df922596d756 | 1593 | |
Recifarium | 0:df922596d756 | 1594 | ;( ( )------------------------------( -- ) |
Recifarium | 0:df922596d756 | 1595 | LParan LINK LTick |
Recifarium | 0:df922596d756 | 1596 | DCB 1, "(" |
Recifarium | 0:df922596d756 | 1597 | xParan doCol |
Recifarium | 0:df922596d756 | 1598 | DCB Lit8, ")", Word |
Recifarium | 0:df922596d756 | 1599 | DCB TDrop |
Recifarium | 0:df922596d756 | 1600 | DCB Exit |
Recifarium | 0:df922596d756 | 1601 | |
Recifarium | 0:df922596d756 | 1602 | ;(M/MOD)----------------------------( d, n -- r, q) |
Recifarium | 0:df922596d756 | 1603 | LMSMod LINK LParan |
Recifarium | 0:df922596d756 | 1604 | DCB 5, "M/MOD" |
Recifarium | 0:df922596d756 | 1605 | xMSMod doCol |
Recifarium | 0:df922596d756 | 1606 | DCB Dup, IsNeg, Dup, ToR |
Recifarium | 0:df922596d756 | 1607 | ZBranch UMSMod1 |
Recifarium | 0:df922596d756 | 1608 | |
Recifarium | 0:df922596d756 | 1609 | DCB Neg, ToR, DNeg, FromR |
Recifarium | 0:df922596d756 | 1610 | UMSMod1 DCB ToR, Dup, IsNeg |
Recifarium | 0:df922596d756 | 1611 | ZBranch UMSMod2 |
Recifarium | 0:df922596d756 | 1612 | |
Recifarium | 0:df922596d756 | 1613 | DCB RAt, Plus |
Recifarium | 0:df922596d756 | 1614 | UMSMod2 DCB FromR, UMSMod, FromR |
Recifarium | 0:df922596d756 | 1615 | ZBranch UMSMod3 |
Recifarium | 0:df922596d756 | 1616 | |
Recifarium | 0:df922596d756 | 1617 | DCB Swap, Neg, Swap |
Recifarium | 0:df922596d756 | 1618 | UMSMod3 DCB Exit |
Recifarium | 0:df922596d756 | 1619 | |
Recifarium | 0:df922596d756 | 1620 | ;( /MOD )---------------------------( n, n -- r, q) |
Recifarium | 0:df922596d756 | 1621 | LSMod LINK LMSMod |
Recifarium | 0:df922596d756 | 1622 | DCB 4, "/MOD" |
Recifarium | 0:df922596d756 | 1623 | xSMod doCol |
Recifarium | 0:df922596d756 | 1624 | DCB Over, IsNeg, Swap, MSMod |
Recifarium | 0:df922596d756 | 1625 | DCB Exit |
Recifarium | 0:df922596d756 | 1626 | LTORG |
Recifarium | 0:df922596d756 | 1627 | |
Recifarium | 0:df922596d756 | 1628 | ;( MOD )----------------------------(n, n -- r ) |
Recifarium | 0:df922596d756 | 1629 | LMod LINK LSMod |
Recifarium | 0:df922596d756 | 1630 | DCB 3, "MOD" |
Recifarium | 0:df922596d756 | 1631 | xMod doCol |
Recifarium | 0:df922596d756 | 1632 | DCB SMod, Drop |
Recifarium | 0:df922596d756 | 1633 | DCB Exit |
Recifarium | 0:df922596d756 | 1634 | |
Recifarium | 0:df922596d756 | 1635 | ;( N>Tok )------------------------------( n, n -- q ) |
Recifarium | 0:df922596d756 | 1636 | LDiv LINK LMod |
Recifarium | 0:df922596d756 | 1637 | DCB 1, "/" |
Recifarium | 0:df922596d756 | 1638 | xDiv doCol |
Recifarium | 0:df922596d756 | 1639 | DCB SMod, Swap, Drop |
Recifarium | 0:df922596d756 | 1640 | DCB Exit |
Recifarium | 0:df922596d756 | 1641 | |
Recifarium | 0:df922596d756 | 1642 | ;( N>Tk)----------------------------( ) |
Recifarium | 0:df922596d756 | 1643 | LNTTk LINK LDiv |
Recifarium | 0:df922596d756 | 1644 | DCB 4, "N>Tk/" |
Recifarium | 0:df922596d756 | 1645 | xNTTk doCol |
Recifarium | 0:df922596d756 | 1646 | DCB Tick ;(xt1) |
Recifarium | 0:df922596d756 | 1647 | ; DCB DotS |
Recifarium | 0:df922596d756 | 1648 | DCB Plus1 ; Arrh Thumb code !!!!! |
Recifarium | 0:df922596d756 | 1649 | ; DCB DotS |
Recifarium | 0:df922596d756 | 1650 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1651 | DCD TokTab |
Recifarium | 0:df922596d756 | 1652 | DCB Dup, ToR ; (xt1, TokTab) |
Recifarium | 0:df922596d756 | 1653 | NTTk1 DCB TDup, At ;(xt1,TokTab,xt1,xt2) |
Recifarium | 0:df922596d756 | 1654 | ; DCB DotS |
Recifarium | 0:df922596d756 | 1655 | DCB Eq ;(xt1,TokT,f) |
Recifarium | 0:df922596d756 | 1656 | ZBranch NTTk2 |
Recifarium | 0:df922596d756 | 1657 | ; DCB DotS |
Recifarium | 0:df922596d756 | 1658 | DCB FromR, Minus, Abs ;(xt1, Tok#) |
Recifarium | 0:df922596d756 | 1659 | DCB Slash4, Swap, Drop |
Recifarium | 0:df922596d756 | 1660 | Branch NTTk3 |
Recifarium | 0:df922596d756 | 1661 | NTTk2 DCB Lit8, 4, Minus ;(xt1, TokT-4) |
Recifarium | 0:df922596d756 | 1662 | Branch NTTk1 |
Recifarium | 0:df922596d756 | 1663 | NTTk3 DCB Exit |
Recifarium | 0:df922596d756 | 1664 | |
Recifarium | 0:df922596d756 | 1665 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 1666 | ; CONSTANTS |
Recifarium | 0:df922596d756 | 1667 | Mess1 DCB 11,"ENORA-Forth" |
Recifarium | 0:df922596d756 | 1668 | Mess2 DCB 5, "Error" |
Recifarium | 0:df922596d756 | 1669 | Mess3 DCB 7, "Unknown" |
Recifarium | 0:df922596d756 | 1670 | Mess4 DCB 3, "Ok>" |
Recifarium | 0:df922596d756 | 1671 | DP0 DCD Begin |
Recifarium | 0:df922596d756 | 1672 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 1673 | NextEntry EQU . |
Recifarium | 0:df922596d756 | 1674 | |
Recifarium | 0:df922596d756 | 1675 | VLatest EQU LNTTk |
Recifarium | 0:df922596d756 | 1676 | |
Recifarium | 0:df922596d756 | 1677 | ;---------End of Dictonary |
Recifarium | 0:df922596d756 | 1678 | |
Recifarium | 0:df922596d756 | 1679 | |
Recifarium | 0:df922596d756 | 1680 | zor B zor |
Recifarium | 0:df922596d756 | 1681 | |
Recifarium | 0:df922596d756 | 1682 | ;-(TEST)--------------------------- |
Recifarium | 0:df922596d756 | 1683 | ;---------------------------+ |
Recifarium | 0:df922596d756 | 1684 | ; Testing Area | |
Recifarium | 0:df922596d756 | 1685 | ;---------------------------+ |
Recifarium | 0:df922596d756 | 1686 | ;xDouble doCol |
Recifarium | 0:df922596d756 | 1687 | ; DCB Dup, Plus ; : Double Dup + ; |
Recifarium | 0:df922596d756 | 1688 | ; DCB Exit |
Recifarium | 0:df922596d756 | 1689 | ; |
Recifarium | 0:df922596d756 | 1690 | ;xQuad doCol |
Recifarium | 0:df922596d756 | 1691 | ; DCB Double ; : Quad Double Double ; |
Recifarium | 0:df922596d756 | 1692 | ; DCB Double |
Recifarium | 0:df922596d756 | 1693 | ; DCB Exit |
Recifarium | 0:df922596d756 | 1694 | ; ------Test1------------OK |
Recifarium | 0:df922596d756 | 1695 | ; DCB 0 |
Recifarium | 0:df922596d756 | 1696 | ;test1 DCB Lit8, 127 |
Recifarium | 0:df922596d756 | 1697 | ;loop1 DCB Dup, Emit, Minus1 |
Recifarium | 0:df922596d756 | 1698 | ; DCB Dup |
Recifarium | 0:df922596d756 | 1699 | ; ZBranch Loop12 |
Recifarium | 0:df922596d756 | 1700 | ; Branch loop1 |
Recifarium | 0:df922596d756 | 1701 | ;Loop12 DCB Lit8, 0xD, Emit |
Recifarium | 0:df922596d756 | 1702 | ; DCB Lit8, 'F', Emit |
Recifarium | 0:df922596d756 | 1703 | ; DCB Lit8, 'I', Emit |
Recifarium | 0:df922596d756 | 1704 | ; DCB Lit8, 'N', Emit |
Recifarium | 0:df922596d756 | 1705 | ;Loop13 Branch Loop13 |
Recifarium | 0:df922596d756 | 1706 | ; ------End Test1 -------- |
Recifarium | 0:df922596d756 | 1707 | ; |
Recifarium | 0:df922596d756 | 1708 | ; |
Recifarium | 0:df922596d756 | 1709 | ; ------Test3------------OK |
Recifarium | 0:df922596d756 | 1710 | ;test3 DCB Lit32 |
Recifarium | 0:df922596d756 | 1711 | ; DCD 21836 |
Recifarium | 0:df922596d756 | 1712 | ; DCB Lit8, 7 |
Recifarium | 0:df922596d756 | 1713 | ; DCB UMSMod |
Recifarium | 0:df922596d756 | 1714 | ; DCB Snap |
Recifarium | 0:df922596d756 | 1715 | ; DCB Lit8, 0xD , Emit |
Recifarium | 0:df922596d756 | 1716 | ; DCB Drop, Snap |
Recifarium | 0:df922596d756 | 1717 | ; ------End Test3 -------- |
Recifarium | 0:df922596d756 | 1718 | |
Recifarium | 0:df922596d756 | 1719 | ; ------Test3------------OK |
Recifarium | 0:df922596d756 | 1720 | ;test4 DCB Lit8, 7, Double |
Recifarium | 0:df922596d756 | 1721 | ; DCB Lit8, 203 |
Recifarium | 0:df922596d756 | 1722 | ; DCB Min |
Recifarium | 0:df922596d756 | 1723 | ; DCB Snap, Drop, Cr |
Recifarium | 0:df922596d756 | 1724 | ; DCB Lit8, 7, Double |
Recifarium | 0:df922596d756 | 1725 | ; DCB Lit8, 203 |
Recifarium | 0:df922596d756 | 1726 | ; DCB Max |
Recifarium | 0:df922596d756 | 1727 | ; DCB Snap, Drop, Cr |
Recifarium | 0:df922596d756 | 1728 | ;l4 Branch l4 |
Recifarium | 0:df922596d756 | 1729 | |
Recifarium | 0:df922596d756 | 1730 | ; ------End Test4 -------- |
Recifarium | 0:df922596d756 | 1731 | ;test6 DCB One |
Recifarium | 0:df922596d756 | 1732 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1733 | ; DCB Digit |
Recifarium | 0:df922596d756 | 1734 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1735 | ; DCB Emit |
Recifarium | 0:df922596d756 | 1736 | ; DCB Ten |
Recifarium | 0:df922596d756 | 1737 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1738 | ; DCB Digit |
Recifarium | 0:df922596d756 | 1739 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1740 | ; DCB Emit |
Recifarium | 0:df922596d756 | 1741 | ;Loop6 Branch Loop6 |
Recifarium | 0:df922596d756 | 1742 | |
Recifarium | 0:df922596d756 | 1743 | ;test7 DCB Lit8, 127 |
Recifarium | 0:df922596d756 | 1744 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1745 | ; DCB Lit8, 0 |
Recifarium | 0:df922596d756 | 1746 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1747 | ; DCB Lit8, 255 |
Recifarium | 0:df922596d756 | 1748 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1749 | ; DCB Within |
Recifarium | 0:df922596d756 | 1750 | ; DCB Snap, Drop, Cr |
Recifarium | 0:df922596d756 | 1751 | ;Loop7 Branch Loop7 |
Recifarium | 0:df922596d756 | 1752 | |
Recifarium | 0:df922596d756 | 1753 | ;test8 DCB Lit8, 3 |
Recifarium | 0:df922596d756 | 1754 | ; DCB Double |
Recifarium | 0:df922596d756 | 1755 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1756 | ; DCB Double |
Recifarium | 0:df922596d756 | 1757 | ; DCB Snap, Cr |
Recifarium | 0:df922596d756 | 1758 | ;Loop8 Branch Loop8 |
Recifarium | 0:df922596d756 | 1759 | ; |
Recifarium | 0:df922596d756 | 1760 | ;test9 DCB Lit8, ">", Emit |
Recifarium | 0:df922596d756 | 1761 | ; DCB Lit32 |
Recifarium | 0:df922596d756 | 1762 | ; DCD TIB+1 |
Recifarium | 0:df922596d756 | 1763 | ; DCB Lit8, 50 |
Recifarium | 0:df922596d756 | 1764 | ; DCB Accept |
Recifarium | 0:df922596d756 | 1765 | ; DCB Lit32 |
Recifarium | 0:df922596d756 | 1766 | ; DCD TIB |
Recifarium | 0:df922596d756 | 1767 | ; DCB CStore |
Recifarium | 0:df922596d756 | 1768 | ; DCB Lit32 |
Recifarium | 0:df922596d756 | 1769 | ; DCD TIB |
Recifarium | 0:df922596d756 | 1770 | ; DCB Find |
Recifarium | 0:df922596d756 | 1771 | ; ZBranch test91 |
Recifarium | 0:df922596d756 | 1772 | ; DCB Execute |
Recifarium | 0:df922596d756 | 1773 | |
Recifarium | 0:df922596d756 | 1774 | ; Branch test9 |
Recifarium | 0:df922596d756 | 1775 | ;test91 DCB Drop |
Recifarium | 0:df922596d756 | 1776 | ; Branch test9 |
Recifarium | 0:df922596d756 | 1777 | ;test10 DCB Words |
Recifarium | 0:df922596d756 | 1778 | ; Branch test10 |
Recifarium | 0:df922596d756 | 1779 | |
Recifarium | 0:df922596d756 | 1780 | |
Recifarium | 0:df922596d756 | 1781 | ;test11 DCB Lit32 |
Recifarium | 0:df922596d756 | 1782 | ; DCD test11c |
Recifarium | 0:df922596d756 | 1783 | ; DCB Lit8, 4, Plus |
Recifarium | 0:df922596d756 | 1784 | ; DCB Find, Swap |
Recifarium | 0:df922596d756 | 1785 | ; DCB Snap, Bl, Emit, Drop, Snap |
Recifarium | 0:df922596d756 | 1786 | ;test11b Branch test11b |
Recifarium | 0:df922596d756 | 1787 | ;test11c DCB 4, "TEST" |
Recifarium | 0:df922596d756 | 1788 | |
Recifarium | 0:df922596d756 | 1789 | |
Recifarium | 0:df922596d756 | 1790 | ;test12 DCB Lit8, 'a' |
Recifarium | 0:df922596d756 | 1791 | ;test12b DCB Dup, Toupp |
Recifarium | 0:df922596d756 | 1792 | ; DCB Snap, Bl, Emit, Drop, Snap, Cr |
Recifarium | 0:df922596d756 | 1793 | ; DCB Plus1 |
Recifarium | 0:df922596d756 | 1794 | ; Branch test12b |
Recifarium | 0:df922596d756 | 1795 | |
Recifarium | 0:df922596d756 | 1796 | ;test13 DCB Lit32 |
Recifarium | 0:df922596d756 | 1797 | ; DCD TIB |
Recifarium | 0:df922596d756 | 1798 | ; DCB Lit8, 50, Accept |
Recifarium | 0:df922596d756 | 1799 | ; DCB Snap, Drop |
Recifarium | 0:df922596d756 | 1800 | ; Branch test13 |
Recifarium | 0:df922596d756 | 1801 | |
Recifarium | 0:df922596d756 | 1802 | ;test14 DCB Sp0, Snap, Cr |
Recifarium | 0:df922596d756 | 1803 | ; DCB Depth, Cr |
Recifarium | 0:df922596d756 | 1804 | ; DCB Snap, Drop, Cr |
Recifarium | 0:df922596d756 | 1805 | ;test14a Branch test14a |
Recifarium | 0:df922596d756 | 1806 | |
Recifarium | 0:df922596d756 | 1807 | ;test15 DCB Lit8, 3, Lit8, 5 |
Recifarium | 0:df922596d756 | 1808 | ; DCB Lit32 |
Recifarium | 0:df922596d756 | 1809 | ; DCD xPlus |
Recifarium | 0:df922596d756 | 1810 | ; DCB Execute |
Recifarium | 0:df922596d756 | 1811 | ; DCB Snap |
Recifarium | 0:df922596d756 | 1812 | ;test15b Branch test15b |
Recifarium | 0:df922596d756 | 1813 | |
Recifarium | 0:df922596d756 | 1814 | ;test16 DCB One, Lit32 |
Recifarium | 0:df922596d756 | 1815 | ; DCD xDouble |
Recifarium | 0:df922596d756 | 1816 | ; DCB Minus1 |
Recifarium | 0:df922596d756 | 1817 | ; DCB Execute |
Recifarium | 0:df922596d756 | 1818 | ; DCB Snap |
Recifarium | 0:df922596d756 | 1819 | ;test16b Branch test16b |
Recifarium | 0:df922596d756 | 1820 | ; |
Recifarium | 0:df922596d756 | 1821 | ;test17 DCB Lit32 |
Recifarium | 0:df922596d756 | 1822 | ; DCD APAD |
Recifarium | 0:df922596d756 | 1823 | ; DCB Dup, Lit8, 40, Swap, CStore |
Recifarium | 0:df922596d756 | 1824 | ; DCB Plus1, Lit8, 40, Lit8, 'h', Fill |
Recifarium | 0:df922596d756 | 1825 | ; DCB Lit32 |
Recifarium | 0:df922596d756 | 1826 | ; DCD APAD |
Recifarium | 0:df922596d756 | 1827 | ; DCB Count, Type |
Recifarium | 0:df922596d756 | 1828 | ; Branch . |
Recifarium | 0:df922596d756 | 1829 | ;Test17a Branch Test17a |
Recifarium | 0:df922596d756 | 1830 | |
Recifarium | 0:df922596d756 | 1831 | |
Recifarium | 0:df922596d756 | 1832 | test18 DCB Lit8, 0, nTib, Store |
Recifarium | 0:df922596d756 | 1833 | DCB Lit8, 0, toIn, Store |
Recifarium | 0:df922596d756 | 1834 | DCB Dec |
Recifarium | 0:df922596d756 | 1835 | DCB Lit32 |
Recifarium | 0:df922596d756 | 1836 | DCD Mess1 |
Recifarium | 0:df922596d756 | 1837 | DCB Count, Type, Cr |
Recifarium | 0:df922596d756 | 1838 | DCB Inter |
Recifarium | 0:df922596d756 | 1839 | |
Recifarium | 0:df922596d756 | 1840 | ;test19 |
Recifarium | 0:df922596d756 | 1841 | ; : test begin dup if 1- else drop exit then again ; |
Recifarium | 0:df922596d756 | 1842 | ; DCB Lit32 |
Recifarium | 0:df922596d756 | 1843 | ; DCD 1000000 |
Recifarium | 0:df922596d756 | 1844 | ; DCB Lit8,'A', Emit, Cr |
Recifarium | 0:df922596d756 | 1845 | ;test190 |
Recifarium | 0:df922596d756 | 1846 | ;test191 DCB Dup |
Recifarium | 0:df922596d756 | 1847 | ; ZBranch test192 |
Recifarium | 0:df922596d756 | 1848 | ; DCB Minus1 |
Recifarium | 0:df922596d756 | 1849 | ; Branch test191 |
Recifarium | 0:df922596d756 | 1850 | ;test192 DCB Lit8,'B', Emit, Cr |
Recifarium | 0:df922596d756 | 1851 | |
Recifarium | 0:df922596d756 | 1852 | ;test193 Branch test193 |
Recifarium | 0:df922596d756 | 1853 | |
Recifarium | 0:df922596d756 | 1854 | ; This is the token table |
Recifarium | 0:df922596d756 | 1855 | ; The very last one entry is token 0 preceding is token 1 ... |
Recifarium | 0:df922596d756 | 1856 | ; This table grow as you create new words in decreasing addresses |
Recifarium | 0:df922596d756 | 1857 | |
Recifarium | 0:df922596d756 | 1858 | SPACE ((256-95)*4) ; <<<<<<<<<<<<<<<<<<<< a updater!!!! |
Recifarium | 0:df922596d756 | 1859 | |
Recifarium | 0:df922596d756 | 1860 | NToken EQU (TokTab-.)/4 +1 |
Recifarium | 0:df922596d756 | 1861 | |
Recifarium | 0:df922596d756 | 1862 | wxTick DCD xTick |
Recifarium | 0:df922596d756 | 1863 | wxUDot DCD xUDot |
Recifarium | 0:df922596d756 | 1864 | wxDot DCD xDot |
Recifarium | 0:df922596d756 | 1865 | wxEndPic DCD xEndPic |
Recifarium | 0:df922596d756 | 1866 | wxSign DCD xSign |
Recifarium | 0:df922596d756 | 1867 | wxNumStr DCD xNumStr |
Recifarium | 0:df922596d756 | 1868 | wxStrPic DCD xStrPic |
Recifarium | 0:df922596d756 | 1869 | wxStr DCD xStr |
Recifarium | 0:df922596d756 | 1870 | wxAbs DCD xAbs |
Recifarium | 0:df922596d756 | 1871 | wxNumb DCD xNumb |
Recifarium | 0:df922596d756 | 1872 | wxHold DCD xHold |
Recifarium | 0:df922596d756 | 1873 | wxExtract DCD xExtract |
Recifarium | 0:df922596d756 | 1874 | wxHld DCD xHld |
Recifarium | 0:df922596d756 | 1875 | wxPad DCD xPad |
Recifarium | 0:df922596d756 | 1876 | wxUMSMod DCD xUMSMod |
Recifarium | 0:df922596d756 | 1877 | wxMSMod DCD xMSMod |
Recifarium | 0:df922596d756 | 1878 | wxSMod DCD xSMod |
Recifarium | 0:df922596d756 | 1879 | wxNeg DCD xNeg |
Recifarium | 0:df922596d756 | 1880 | wxRAt DCD xRAt |
Recifarium | 0:df922596d756 | 1881 | wxIsNull DCD xIsNull |
Recifarium | 0:df922596d756 | 1882 | wxUless DCD xULess |
Recifarium | 0:df922596d756 | 1883 | wxMul DCD xMul |
Recifarium | 0:df922596d756 | 1884 | wxDotS DCD xDotS |
Recifarium | 0:df922596d756 | 1885 | wxInter DCD xInter |
Recifarium | 0:df922596d756 | 1886 | wxnTib DCD xnTib |
Recifarium | 0:df922596d756 | 1887 | wxtoIn DCD xtoIn |
Recifarium | 0:df922596d756 | 1888 | wxState DCD xState |
Recifarium | 0:df922596d756 | 1889 | wxRS0 DCD xRS0 |
Recifarium | 0:df922596d756 | 1890 | wxTrue DCD xTrue |
Recifarium | 0:df922596d756 | 1891 | wxFalse DCD xFalse |
Recifarium | 0:df922596d756 | 1892 | wxDNeg DCD xDNeg |
Recifarium | 0:df922596d756 | 1893 | wxDPlus DCD xDPlus |
Recifarium | 0:df922596d756 | 1894 | wxDMinus DCD xDMinus |
Recifarium | 0:df922596d756 | 1895 | wxIsNeg DCD xIsNeg |
Recifarium | 0:df922596d756 | 1896 | wxTDup DCD x2Dup |
Recifarium | 0:df922596d756 | 1897 | wxUMPlus DCD xUMPlus |
Recifarium | 0:df922596d756 | 1898 | wx2Drop DCD x2Drop |
Recifarium | 0:df922596d756 | 1899 | wxFill DCD xFill |
Recifarium | 0:df922596d756 | 1900 | wxFoursta DCD xFoursta |
Recifarium | 0:df922596d756 | 1901 | wxMRot DCD xMRot |
Recifarium | 0:df922596d756 | 1902 | wxRot DCD xRot |
Recifarium | 0:df922596d756 | 1903 | wxDec DCD xDec |
Recifarium | 0:df922596d756 | 1904 | wxBin DCD xBin |
Recifarium | 0:df922596d756 | 1905 | wxBase DCD xBase |
Recifarium | 0:df922596d756 | 1906 | wxToupp DCD xToupp |
Recifarium | 0:df922596d756 | 1907 | wxFind DCD xFind |
Recifarium | 0:df922596d756 | 1908 | wxUpper DCD xUpper |
Recifarium | 0:df922596d756 | 1909 | wxCount DCD xCount |
Recifarium | 0:df922596d756 | 1910 | wxType DCD xType |
Recifarium | 0:df922596d756 | 1911 | wxAt DCD xAt |
Recifarium | 0:df922596d756 | 1912 | wxCAt DCD xCAt |
Recifarium | 0:df922596d756 | 1913 | wxWord DCD xWord |
Recifarium | 0:df922596d756 | 1914 | wxWords DCD xWords |
Recifarium | 0:df922596d756 | 1915 | wxCStore DCD xCStore |
Recifarium | 0:df922596d756 | 1916 | wxFromR DCD xFromR |
Recifarium | 0:df922596d756 | 1917 | wxStore DCD xStore |
Recifarium | 0:df922596d756 | 1918 | wxSwap DCD xSwap |
Recifarium | 0:df922596d756 | 1919 | wxAccept DCD xAccept |
Recifarium | 0:df922596d756 | 1920 | wxKey DCD xKey |
Recifarium | 0:df922596d756 | 1921 | wxBCode DCD xBCode ; Note there is no token for ;CODE |
Recifarium | 0:df922596d756 | 1922 | wxTen DCD xTen |
Recifarium | 0:df922596d756 | 1923 | wxTwo DCD xTwo |
Recifarium | 0:df922596d756 | 1924 | wxOne DCD xOne |
Recifarium | 0:df922596d756 | 1925 | wxZero DCD xZero |
Recifarium | 0:df922596d756 | 1926 | wxWithin DCD xWithin |
Recifarium | 0:df922596d756 | 1927 | wxToR DCD xToR |
Recifarium | 0:df922596d756 | 1928 | wxDigit DCD xDigit |
Recifarium | 0:df922596d756 | 1929 | wxNot DCD xNot |
Recifarium | 0:df922596d756 | 1930 | wxXor DCD xXor |
Recifarium | 0:df922596d756 | 1931 | wxOr DCD xOr |
Recifarium | 0:df922596d756 | 1932 | wxAnd DCD xAnd |
Recifarium | 0:df922596d756 | 1933 | wxEq DCD xEq |
Recifarium | 0:df922596d756 | 1934 | wxLt DCD xLt |
Recifarium | 0:df922596d756 | 1935 | wxGt DCD xGt |
Recifarium | 0:df922596d756 | 1936 | wxOver DCD xOver |
Recifarium | 0:df922596d756 | 1937 | wxMax DCD xMax |
Recifarium | 0:df922596d756 | 1938 | wxMin DCD xMin |
Recifarium | 0:df922596d756 | 1939 | wxCr DCD xCr |
Recifarium | 0:df922596d756 | 1940 | wxBl DCD xBl |
Recifarium | 0:df922596d756 | 1941 | wxSpace DCD xSpace |
Recifarium | 0:df922596d756 | 1942 | wxSpaces DCD xSpaces |
Recifarium | 0:df922596d756 | 1943 | wxLf DCD xLf |
Recifarium | 0:df922596d756 | 1944 | wxDrop DCD xDrop |
Recifarium | 0:df922596d756 | 1945 | ;wxUSMod DCD xUSMod |
Recifarium | 0:df922596d756 | 1946 | wxZBra DCD xZBra |
Recifarium | 0:df922596d756 | 1947 | wxSlash4 DCD xSlash4 |
Recifarium | 0:df922596d756 | 1948 | wxDepth DCD xDepth |
Recifarium | 0:df922596d756 | 1949 | wxSp0 DCD xSp0 |
Recifarium | 0:df922596d756 | 1950 | wxSpAt DCD xSpAt |
Recifarium | 0:df922596d756 | 1951 | wxEmit DCD xEmit |
Recifarium | 0:df922596d756 | 1952 | wxBra DCD xBra |
Recifarium | 0:df922596d756 | 1953 | wxExit DCD xExit |
Recifarium | 0:df922596d756 | 1954 | wxPlus DCD xPlus |
Recifarium | 0:df922596d756 | 1955 | wxdoLit32 DCD doLit32 |
Recifarium | 0:df922596d756 | 1956 | wxdoLit16 DCD doLit16 |
Recifarium | 0:df922596d756 | 1957 | wxdoLit8 DCD doLit8 |
Recifarium | 0:df922596d756 | 1958 | wxExecute DCD xExec |
Recifarium | 0:df922596d756 | 1959 | wxMinus DCD xMinus |
Recifarium | 0:df922596d756 | 1960 | wxDupNZ DCD xDupNZ |
Recifarium | 0:df922596d756 | 1961 | wxDup DCD xDup |
Recifarium | 0:df922596d756 | 1962 | wxSnap DCD xSnap |
Recifarium | 0:df922596d756 | 1963 | wxMinus1 DCD xMinus1 |
Recifarium | 0:df922596d756 | 1964 | wxPlus1 |
Recifarium | 0:df922596d756 | 1965 | TokTab DCD xPlus1 |
Recifarium | 0:df922596d756 | 1966 | |
Recifarium | 0:df922596d756 | 1967 | |
Recifarium | 0:df922596d756 | 1968 | AREA |.data|, DATA |
Recifarium | 0:df922596d756 | 1969 | |
Recifarium | 0:df922596d756 | 1970 | Begin EQU . |
Recifarium | 0:df922596d756 | 1971 | SPACE DataStackLength |
Recifarium | 0:df922596d756 | 1972 | SPACE RAMForIAP |
Recifarium | 0:df922596d756 | 1973 | SPACE ReturnStackLength |
Recifarium | 0:df922596d756 | 1974 | __initial_sp |
Recifarium | 0:df922596d756 | 1975 | |
Recifarium | 0:df922596d756 | 1976 | DLatest DCD 0 |
Recifarium | 0:df922596d756 | 1977 | Latest DCD 0 |
Recifarium | 0:df922596d756 | 1978 | VState DCD 0 |
Recifarium | 0:df922596d756 | 1979 | VBase DCD 0 |
Recifarium | 0:df922596d756 | 1980 | AnTib DCD 0 |
Recifarium | 0:df922596d756 | 1981 | AtoIn DCD 0 |
Recifarium | 0:df922596d756 | 1982 | Transit DCD 0 |
Recifarium | 0:df922596d756 | 1983 | AHLD DCD 0 |
Recifarium | 0:df922596d756 | 1984 | |
Recifarium | 0:df922596d756 | 1985 | TIB SPACE 128 |
Recifarium | 0:df922596d756 | 1986 | APAD SPACE 128 |
Recifarium | 0:df922596d756 | 1987 | RomBuff SPACE BuffSize |
Recifarium | 0:df922596d756 | 1988 | |
Recifarium | 0:df922596d756 | 1989 | fin EQU . |
Recifarium | 0:df922596d756 | 1990 | END |