A forth for LPC8xxx
Hello
Forth.s@2:2f8532130cca, 2016-05-12 (annotated)
- Committer:
- Recifarium
- Date:
- Thu May 12 15:59:55 2016 +0000
- Revision:
- 2:2f8532130cca
- Parent:
- 1:1224cf3799a5
Update;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Recifarium | 1:1224cf3799a5 | 1 | ; 19200/8/none/1 |
Recifarium | 1:1224cf3799a5 | 2 | ;You must use the Keil µVision to assemble this source |
Recifarium | 0:df922596d756 | 3 | EXPORT Reset_Handler |
Recifarium | 0:df922596d756 | 4 | EXPORT __initial_sp |
Recifarium | 0:df922596d756 | 5 | AREA |.text|, CODE |
Recifarium | 0:df922596d756 | 6 | ; IMPORT __Vectors |
Recifarium | 0:df922596d756 | 7 | THUMB |
Recifarium | 1:1224cf3799a5 | 8 | BuffSize EQU 64 |
Recifarium | 0:df922596d756 | 9 | ;---------------------------------- |
Recifarium | 0:df922596d756 | 10 | ; Values that can be customise |
Recifarium | 0:df922596d756 | 11 | ; Data stack & Return Stack are @ the begining |
Recifarium | 0:df922596d756 | 12 | ; of Data Memory area |
Recifarium | 1:1224cf3799a5 | 13 | ReturnStackLength EQU 32 * 4 ; 32 cells |
Recifarium | 0:df922596d756 | 14 | DataStackLength EQU 32 * 4 ; 32 cells |
Recifarium | 0:df922596d756 | 15 | |
Recifarium | 0:df922596d756 | 16 | |
Recifarium | 0:df922596d756 | 17 | ; Then follow internal values |
Recifarium | 1:1224cf3799a5 | 18 | ; UserVar EQU 64 * 4 ; 64 cells |
Recifarium | 0:df922596d756 | 19 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 20 | ; Registers allocation | |
Recifarium | 0:df922596d756 | 21 | ; They are in this way to allow | |
Recifarium | 0:df922596d756 | 22 | ; the use of r0 r1 r2 r3 | |
Recifarium | 0:df922596d756 | 23 | ; to call subroutine | |
Recifarium | 0:df922596d756 | 24 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 25 | ALIAS r0, WRK0 ; WoRK0 register |
Recifarium | 0:df922596d756 | 26 | ALIAS r1, WRK1 ; WoRK1 register |
Recifarium | 0:df922596d756 | 27 | ALIAS r2, WRK2 ; WoRK2 register |
Recifarium | 1:1224cf3799a5 | 28 | ALIAS r3, WRK ; WoRK register ! used by the internal interpreter |
Recifarium | 0:df922596d756 | 29 | ALIAS r4, IPTR ; Instruction PoinTeR |
Recifarium | 1:1224cf3799a5 | 30 | ; ALIAS r5, USER ; May be USER pointer in future |
Recifarium | 0:df922596d756 | 31 | ALIAS r6, TOS ; Top Of Stack , stack managed by sp |
Recifarium | 0:df922596d756 | 32 | ALIAS r7, RPTR ; Return stack PoinTeR |
Recifarium | 1:1224cf3799a5 | 33 | |
Recifarium | 1:1224cf3799a5 | 34 | |
Recifarium | 0:df922596d756 | 35 | ;----------------------------------- |
Recifarium | 1:1224cf3799a5 | 36 | ; Next routine |
Recifarium | 1:1224cf3799a5 | 37 | ;----------------------------------- |
Recifarium | 1:1224cf3799a5 | 38 | MACRO |
Recifarium | 1:1224cf3799a5 | 39 | $lab Next |
Recifarium | 1:1224cf3799a5 | 40 | $lab LDMIA IPTR!, {WRK} ; Get indirect address to execute |
Recifarium | 1:1224cf3799a5 | 41 | ; and update Instruction pointer |
Recifarium | 1:1224cf3799a5 | 42 | LDR WRK2, [WRK] ; note that WRK point to the parameter field |
Recifarium | 1:1224cf3799a5 | 43 | BX WRK2 ; it will be used later |
Recifarium | 1:1224cf3799a5 | 44 | MEND |
Recifarium | 1:1224cf3799a5 | 45 | |
Recifarium | 1:1224cf3799a5 | 46 | ;----------------------------------- |
Recifarium | 1:1224cf3799a5 | 47 | ; routines doCol/Con/Var |
Recifarium | 1:1224cf3799a5 | 48 | ;----------------------------------- |
Recifarium | 1:1224cf3799a5 | 49 | doCol STMIA RPTR!,{IPTR} ; Save Instruction pointer to the return Stack |
Recifarium | 1:1224cf3799a5 | 50 | ; & Update Return stack pointer |
Recifarium | 1:1224cf3799a5 | 51 | ADDS IPTR, WRK, #4 ; Point to parameter field |
Recifarium | 1:1224cf3799a5 | 52 | Next |
Recifarium | 0:df922596d756 | 53 | |
Recifarium | 1:1224cf3799a5 | 54 | doCon PUSH {TOS} ; |
Recifarium | 1:1224cf3799a5 | 55 | LDR TOS,[WRK,#4] |
Recifarium | 1:1224cf3799a5 | 56 | Next |
Recifarium | 1:1224cf3799a5 | 57 | |
Recifarium | 1:1224cf3799a5 | 58 | doVar PUSH {TOS} ; |
Recifarium | 1:1224cf3799a5 | 59 | LDR TOS,[WRK,#4] |
Recifarium | 1:1224cf3799a5 | 60 | Next |
Recifarium | 1:1224cf3799a5 | 61 | |
Recifarium | 1:1224cf3799a5 | 62 | ;----------------------------------- |
Recifarium | 1:1224cf3799a5 | 63 | ; Exit Routine (restore IPTR) |
Recifarium | 1:1224cf3799a5 | 64 | ;----------------------------------- |
Recifarium | 1:1224cf3799a5 | 65 | Exit DCD xExit |
Recifarium | 1:1224cf3799a5 | 66 | xExit SUBS RPTR, RPTR, #4 ; Adjust the return stack pointer |
Recifarium | 1:1224cf3799a5 | 67 | LDR IPTR,[RPTR] ; Collect the value |
Recifarium | 1:1224cf3799a5 | 68 | Next |
Recifarium | 1:1224cf3799a5 | 69 | |
Recifarium | 1:1224cf3799a5 | 70 | Lit32 DCD xLit32 |
Recifarium | 1:1224cf3799a5 | 71 | xLit32 PUSH {TOS} |
Recifarium | 1:1224cf3799a5 | 72 | LDM IPTR!,{TOS} ; Nearly like next but we collect the value |
Recifarium | 1:1224cf3799a5 | 73 | Next |
Recifarium | 1:1224cf3799a5 | 74 | |
Recifarium | 1:1224cf3799a5 | 75 | Zero DCD doCon |
Recifarium | 1:1224cf3799a5 | 76 | DCD 0 |
Recifarium | 1:1224cf3799a5 | 77 | |
Recifarium | 1:1224cf3799a5 | 78 | Ten DCD doCon |
Recifarium | 1:1224cf3799a5 | 79 | DCD 10 |
Recifarium | 1:1224cf3799a5 | 80 | |
Recifarium | 0:df922596d756 | 81 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 82 | ;Not so usefull macro...to be change |
Recifarium | 0:df922596d756 | 83 | MACRO |
Recifarium | 0:df922596d756 | 84 | $lab LINK $p |
Recifarium | 0:df922596d756 | 85 | $lab DCD $p |
Recifarium | 0:df922596d756 | 86 | MEND |
Recifarium | 1:1224cf3799a5 | 87 | |
Recifarium | 0:df922596d756 | 88 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 89 | ; These macro compute the displacement |
Recifarium | 1:1224cf3799a5 | 90 | ; which is store in a word |
Recifarium | 0:df922596d756 | 91 | MACRO |
Recifarium | 0:df922596d756 | 92 | $label Branch $target |
Recifarium | 1:1224cf3799a5 | 93 | $label DCD Bra |
Recifarium | 1:1224cf3799a5 | 94 | DCD $target |
Recifarium | 1:1224cf3799a5 | 95 | ; DCD $target-. |
Recifarium | 0:df922596d756 | 96 | MEND |
Recifarium | 0:df922596d756 | 97 | |
Recifarium | 0:df922596d756 | 98 | MACRO |
Recifarium | 0:df922596d756 | 99 | $label ZBranch $target |
Recifarium | 1:1224cf3799a5 | 100 | $label DCD ZBra |
Recifarium | 1:1224cf3799a5 | 101 | DCD $target |
Recifarium | 1:1224cf3799a5 | 102 | ; DCD $target-. |
Recifarium | 0:df922596d756 | 103 | MEND |
Recifarium | 0:df922596d756 | 104 | |
Recifarium | 0:df922596d756 | 105 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 106 | Reset_Handler |
Recifarium | 0:df922596d756 | 107 | LDR RPTR, =Begin |
Recifarium | 0:df922596d756 | 108 | BL UartConfig |
Recifarium | 1:1224cf3799a5 | 109 | SUBS TOS,TOS |
Recifarium | 1:1224cf3799a5 | 110 | LDR WRK0, =end_data |
Recifarium | 1:1224cf3799a5 | 111 | LDR WRK1, =AHERE |
Recifarium | 1:1224cf3799a5 | 112 | STR WRK0, [WRK1] |
Recifarium | 0:df922596d756 | 113 | LDR IPTR, =test18 |
Recifarium | 1:1224cf3799a5 | 114 | Next |
Recifarium | 1:1224cf3799a5 | 115 | |
Recifarium | 1:1224cf3799a5 | 116 | test17 DCD Zero, Dot |
Recifarium | 1:1224cf3799a5 | 117 | Branch test17 |
Recifarium | 0:df922596d756 | 118 | |
Recifarium | 1:1224cf3799a5 | 119 | test18 DCD Zero, nTib, Store |
Recifarium | 1:1224cf3799a5 | 120 | DCD Zero, toIn, Store |
Recifarium | 1:1224cf3799a5 | 121 | DCD Zero, State, Store ; Interpret mode |
Recifarium | 1:1224cf3799a5 | 122 | DCD Dec ; Set decimal mode |
Recifarium | 1:1224cf3799a5 | 123 | ; DCD Esc |
Recifarium | 1:1224cf3799a5 | 124 | ; DCD Lit32, 'c', Emit, Lf ; Clear screen |
Recifarium | 1:1224cf3799a5 | 125 | DCD Lit32 |
Recifarium | 1:1224cf3799a5 | 126 | DCD Mess1 ; welcome message |
Recifarium | 1:1224cf3799a5 | 127 | DCD Count, Type, Cr |
Recifarium | 1:1224cf3799a5 | 128 | DCD Inter ; forever loop |
Recifarium | 1:1224cf3799a5 | 129 | |
Recifarium | 1:1224cf3799a5 | 130 | ;----------------------------------- |
Recifarium | 1:1224cf3799a5 | 131 | ; Flag used in dictionary | |
Recifarium | 1:1224cf3799a5 | 132 | ;----------------------------------- |
Recifarium | 1:1224cf3799a5 | 133 | Cmponly EQU 0x20 ; Compile only |
Recifarium | 1:1224cf3799a5 | 134 | Immed EQU 0x80 ; Indicate the word must be run immediatly |
Recifarium | 1:1224cf3799a5 | 135 | |
Recifarium | 0:df922596d756 | 136 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 137 | ; Dictionary start here |
Recifarium | 1:1224cf3799a5 | 138 | ;-(DUP)-----------------------------(x -- x,x) |
Recifarium | 1:1224cf3799a5 | 139 | LDup LINK 0 ; First word |
Recifarium | 1:1224cf3799a5 | 140 | DCB 3, "DUP" |
Recifarium | 1:1224cf3799a5 | 141 | Dup DCD xDup |
Recifarium | 1:1224cf3799a5 | 142 | xDup PUSH {TOS} ; Push Top of stack onto the stack (sp pointing) |
Recifarium | 1:1224cf3799a5 | 143 | Next |
Recifarium | 0:df922596d756 | 144 | |
Recifarium | 0:df922596d756 | 145 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 146 | ; All specific code for a chip |
Recifarium | 0:df922596d756 | 147 | ; Must be put in a separate file |
Recifarium | 0:df922596d756 | 148 | ; see lpc8xx.s as an example |
Recifarium | 0:df922596d756 | 149 | ; INCLUDE yourfavoritechip.s |
Recifarium | 0:df922596d756 | 150 | |
Recifarium | 0:df922596d756 | 151 | |
Recifarium | 1:1224cf3799a5 | 152 | INCLUDE lpc8xx.s |
Recifarium | 1:1224cf3799a5 | 153 | ; INCLUDE QemuM0.s |
Recifarium | 0:df922596d756 | 154 | |
Recifarium | 0:df922596d756 | 155 | ;-(Plus1)---------------------------( n -- n+1 ) |
Recifarium | 1:1224cf3799a5 | 156 | LPlus1 LINK LKey ; Link |
Recifarium | 1:1224cf3799a5 | 157 | DCB 2, "1+" |
Recifarium | 1:1224cf3799a5 | 158 | Plus1 DCD xPlus1 |
Recifarium | 0:df922596d756 | 159 | xPlus1 ADDS TOS, TOS, #1 ; Add 1 to TOS |
Recifarium | 1:1224cf3799a5 | 160 | Next |
Recifarium | 0:df922596d756 | 161 | |
Recifarium | 0:df922596d756 | 162 | ;-(Minus1)--------------------------( n -- n-1 ) |
Recifarium | 0:df922596d756 | 163 | LMinus1 LINK LPlus1 ; Link |
Recifarium | 1:1224cf3799a5 | 164 | DCB 2, "1-" |
Recifarium | 1:1224cf3799a5 | 165 | Minus1 DCD xMinus1 |
Recifarium | 0:df922596d756 | 166 | xMinus1 SUBS TOS, TOS, #1 ; Substract 1 to TOS |
Recifarium | 1:1224cf3799a5 | 167 | Next |
Recifarium | 0:df922596d756 | 168 | |
Recifarium | 0:df922596d756 | 169 | ;-(2DUP)----------------------------(x2,x1 -- x2,x1,x2,x1) |
Recifarium | 1:1224cf3799a5 | 170 | L2Dup LINK LMinus1 ; Link |
Recifarium | 0:df922596d756 | 171 | DCB 4, "2DUP" |
Recifarium | 1:1224cf3799a5 | 172 | TDup DCD x2Dup |
Recifarium | 1:1224cf3799a5 | 173 | x2Dup PUSH {TOS} ; push x1 |
Recifarium | 1:1224cf3799a5 | 174 | LDR WRK, [sp, #4] ; get x2 |
Recifarium | 1:1224cf3799a5 | 175 | PUSH {WRK} ; push x2 |
Recifarium | 1:1224cf3799a5 | 176 | Next ; First is still in TOS |
Recifarium | 0:df922596d756 | 177 | |
Recifarium | 0:df922596d756 | 178 | ;-(OR)------------------------------( x1 x2 -- x3 ) |
Recifarium | 1:1224cf3799a5 | 179 | LOr LINK L2Dup ; Link |
Recifarium | 0:df922596d756 | 180 | DCB 2,"OR" |
Recifarium | 1:1224cf3799a5 | 181 | Or DCD xOr |
Recifarium | 0:df922596d756 | 182 | xOr POP {WRK} ; Get second parameter |
Recifarium | 0:df922596d756 | 183 | ORRS TOS, TOS, WRK ; Or |
Recifarium | 1:1224cf3799a5 | 184 | Next |
Recifarium | 0:df922596d756 | 185 | |
Recifarium | 0:df922596d756 | 186 | ;-(AND)-----------------------------( x1 x2 -- x3 ) |
Recifarium | 0:df922596d756 | 187 | LAnd LINK LOr ; Link |
Recifarium | 0:df922596d756 | 188 | DCB 3,"AND" |
Recifarium | 1:1224cf3799a5 | 189 | And DCD xAnd |
Recifarium | 0:df922596d756 | 190 | xAnd POP {WRK} ; Get second parameter |
Recifarium | 0:df922596d756 | 191 | ANDS TOS, TOS, WRK ; And |
Recifarium | 1:1224cf3799a5 | 192 | Next |
Recifarium | 0:df922596d756 | 193 | |
Recifarium | 0:df922596d756 | 194 | ;-(XOR)-----------------------------( x1 x2 -- x3 ) |
Recifarium | 0:df922596d756 | 195 | LXor LINK LAnd ; Link |
Recifarium | 0:df922596d756 | 196 | DCB 3, "XOR" |
Recifarium | 1:1224cf3799a5 | 197 | Xor DCD xXor |
Recifarium | 0:df922596d756 | 198 | xXor POP {WRK} ; Get second parameter |
Recifarium | 0:df922596d756 | 199 | EORS TOS, TOS, WRK ; Xor |
Recifarium | 1:1224cf3799a5 | 200 | Next |
Recifarium | 0:df922596d756 | 201 | |
Recifarium | 0:df922596d756 | 202 | ;-(0<)------------------------------( n -- f) |
Recifarium | 0:df922596d756 | 203 | LIsNeg LINK LXor ; Link |
Recifarium | 1:1224cf3799a5 | 204 | DCB 2, "0<" |
Recifarium | 1:1224cf3799a5 | 205 | IsNeg DCD xIsNeg |
Recifarium | 0:df922596d756 | 206 | xIsNeg ASRS TOS, TOS, #31 ; Extend the sign True=FFFFFFFF False=00000000 |
Recifarium | 1:1224cf3799a5 | 207 | Next |
Recifarium | 0:df922596d756 | 208 | |
Recifarium | 0:df922596d756 | 209 | ;-(0=)------------------------------( n -- f ) |
Recifarium | 0:df922596d756 | 210 | LIsNull LINK LIsNeg ; Link |
Recifarium | 0:df922596d756 | 211 | DCB 2, "0=" |
Recifarium | 1:1224cf3799a5 | 212 | IsNull DCD xIsNull |
Recifarium | 0:df922596d756 | 213 | xIsNull MOVS TOS,TOS ; test the value |
Recifarium | 0:df922596d756 | 214 | BEQ Isnull1 |
Recifarium | 0:df922596d756 | 215 | SUBS TOS, TOS ; False |
Recifarium | 0:df922596d756 | 216 | B IsNull2 |
Recifarium | 0:df922596d756 | 217 | Isnull1 SUBS TOS,TOS,#1 ; True |
Recifarium | 1:1224cf3799a5 | 218 | IsNull2 Next |
Recifarium | 0:df922596d756 | 219 | |
Recifarium | 0:df922596d756 | 220 | ;-(0>)------------------------------( n -- f ) |
Recifarium | 0:df922596d756 | 221 | LIsPos LINK LIsNull ; Link |
Recifarium | 0:df922596d756 | 222 | DCB 2, "0>" |
Recifarium | 1:1224cf3799a5 | 223 | IsPos DCD xIsPos |
Recifarium | 0:df922596d756 | 224 | xIsPos MOVS TOS,TOS |
Recifarium | 0:df922596d756 | 225 | LDR TOS,=0x0 ; False |
Recifarium | 1:1224cf3799a5 | 226 | BMI IsPos1 |
Recifarium | 1:1224cf3799a5 | 227 | BEQ IsPos1 |
Recifarium | 0:df922596d756 | 228 | SUBS TOS,TOS,#1 ; True |
Recifarium | 1:1224cf3799a5 | 229 | IsPos1 Next |
Recifarium | 0:df922596d756 | 230 | |
Recifarium | 0:df922596d756 | 231 | LTORG |
Recifarium | 0:df922596d756 | 232 | ;-(EXECUTE)-------------------------( xt -- ) |
Recifarium | 0:df922596d756 | 233 | LExec LINK LIsPos ; Link |
Recifarium | 1:1224cf3799a5 | 234 | DCB 7, "EXECUTE" |
Recifarium | 1:1224cf3799a5 | 235 | Execute DCD xExec |
Recifarium | 1:1224cf3799a5 | 236 | xExec MOVS WRK,TOS ; Get Code field address |
Recifarium | 1:1224cf3799a5 | 237 | POP {TOS} ; Update TOS |
Recifarium | 1:1224cf3799a5 | 238 | LDR WRK2,[WRK] ; Get address to be executed |
Recifarium | 1:1224cf3799a5 | 239 | BX WRK2 ; And go |
Recifarium | 0:df922596d756 | 240 | |
Recifarium | 0:df922596d756 | 241 | ;-(DROP)-----------------------------(x -- ) |
Recifarium | 0:df922596d756 | 242 | LDrop LINK LExec ; Link |
Recifarium | 1:1224cf3799a5 | 243 | DCB 4, "DROP" |
Recifarium | 1:1224cf3799a5 | 244 | Drop DCD xDrop |
Recifarium | 0:df922596d756 | 245 | xDrop POP {TOS} ; Get previous element |
Recifarium | 1:1224cf3799a5 | 246 | Next |
Recifarium | 0:df922596d756 | 247 | |
Recifarium | 0:df922596d756 | 248 | ;-(2DROP)---------------------------( x1 x2 -- ) |
Recifarium | 0:df922596d756 | 249 | L2Drop LINK LDrop ; Link |
Recifarium | 1:1224cf3799a5 | 250 | DCB 5, "2DROP" |
Recifarium | 1:1224cf3799a5 | 251 | TDrop DCD x2Drop |
Recifarium | 0:df922596d756 | 252 | x2Drop POP {TOS} ; Get previous element |
Recifarium | 0:df922596d756 | 253 | POP {TOS} ; Get previous element |
Recifarium | 1:1224cf3799a5 | 254 | Next |
Recifarium | 0:df922596d756 | 255 | |
Recifarium | 0:df922596d756 | 256 | ;-(SWAP)----------------------------( x1 x2 -- x2 x1 ) |
Recifarium | 0:df922596d756 | 257 | LSwap LINK L2Drop ; Link |
Recifarium | 0:df922596d756 | 258 | DCB 4, "SWAP" |
Recifarium | 1:1224cf3799a5 | 259 | Swap DCD xSwap |
Recifarium | 0:df922596d756 | 260 | xSwap POP {WRK} ; Get x1 |
Recifarium | 0:df922596d756 | 261 | PUSH {TOS} ; Put x2 |
Recifarium | 0:df922596d756 | 262 | MOVS TOS,WRK ; Put x1 |
Recifarium | 1:1224cf3799a5 | 263 | Next |
Recifarium | 0:df922596d756 | 264 | |
Recifarium | 0:df922596d756 | 265 | ;-(OVER)----------------------------( x1 x2 -- x1 x2 x1 ) |
Recifarium | 0:df922596d756 | 266 | LOver LINK LSwap ; Link |
Recifarium | 1:1224cf3799a5 | 267 | DCB 4, "OVER" |
Recifarium | 1:1224cf3799a5 | 268 | Over DCD xOver |
Recifarium | 0:df922596d756 | 269 | xOver PUSH {TOS} ; Put x2 |
Recifarium | 0:df922596d756 | 270 | LDR TOS,[sp,#4] ; Get x1 |
Recifarium | 1:1224cf3799a5 | 271 | Next |
Recifarium | 0:df922596d756 | 272 | |
Recifarium | 0:df922596d756 | 273 | ;-(ROT)-----------------------------( x1 x2 x3 -- x2 x3 x1 ) |
Recifarium | 0:df922596d756 | 274 | LRot LINK LOver ; Link |
Recifarium | 0:df922596d756 | 275 | DCB 3, "ROT" |
Recifarium | 1:1224cf3799a5 | 276 | Rot DCD xRot |
Recifarium | 0:df922596d756 | 277 | xRot POP {WRK} ; Get x2 |
Recifarium | 0:df922596d756 | 278 | POP {WRK2} ; Get x1 |
Recifarium | 0:df922596d756 | 279 | PUSH {WRK} ; Put x2 |
Recifarium | 0:df922596d756 | 280 | PUSH {TOS} ; Put x3 |
Recifarium | 0:df922596d756 | 281 | MOV TOS,WRK2 ; Put x1 |
Recifarium | 1:1224cf3799a5 | 282 | Next |
Recifarium | 0:df922596d756 | 283 | |
Recifarium | 0:df922596d756 | 284 | ;-(-ROT)-----------------------------( x1 x2 x3 -- x3 x1 x2 ) |
Recifarium | 0:df922596d756 | 285 | LMRot LINK LRot ; Link |
Recifarium | 0:df922596d756 | 286 | DCB 4, "-ROT" |
Recifarium | 1:1224cf3799a5 | 287 | MRot DCD xMRot |
Recifarium | 0:df922596d756 | 288 | xMRot POP {WRK} ; Get x2 |
Recifarium | 0:df922596d756 | 289 | POP {WRK2} ; Get x1 |
Recifarium | 0:df922596d756 | 290 | PUSH {TOS} ; Put x3 |
Recifarium | 0:df922596d756 | 291 | PUSH {WRK2} ; Put x1 |
Recifarium | 0:df922596d756 | 292 | MOV TOS,WRK ; Put x2 |
Recifarium | 1:1224cf3799a5 | 293 | Next |
Recifarium | 0:df922596d756 | 294 | |
Recifarium | 0:df922596d756 | 295 | ;-(NIP)-----------------------------( x1 x2 -- x2 ) |
Recifarium | 0:df922596d756 | 296 | LNip LINK LMRot ; Link |
Recifarium | 1:1224cf3799a5 | 297 | DCB 3, "NIP" |
Recifarium | 1:1224cf3799a5 | 298 | Nip DCD xNip |
Recifarium | 0:df922596d756 | 299 | xNip POP {WRK} ; Discard x1 |
Recifarium | 1:1224cf3799a5 | 300 | Next |
Recifarium | 0:df922596d756 | 301 | |
Recifarium | 0:df922596d756 | 302 | ;-(TUCK)-----------------------------( x1 x2 -- x2 x1 x2 ) |
Recifarium | 0:df922596d756 | 303 | LTuck LINK LNip ; Link |
Recifarium | 0:df922596d756 | 304 | DCB 4, "TUCK" |
Recifarium | 1:1224cf3799a5 | 305 | Tuck DCD xTuck |
Recifarium | 0:df922596d756 | 306 | xTuck POP {WRK} ; Get x1 |
Recifarium | 0:df922596d756 | 307 | PUSH {TOS} ; Put x2 |
Recifarium | 0:df922596d756 | 308 | PUSH {WRK} ; Put x1 |
Recifarium | 1:1224cf3799a5 | 309 | Next |
Recifarium | 0:df922596d756 | 310 | |
Recifarium | 0:df922596d756 | 311 | ;-(+)-------------------------------( n1|u1 n2|u2 -- n3|u3 ) |
Recifarium | 0:df922596d756 | 312 | LPlus LINK LTuck ; Link |
Recifarium | 1:1224cf3799a5 | 313 | DCB 1, "+" |
Recifarium | 1:1224cf3799a5 | 314 | Plus DCD xPlus |
Recifarium | 0:df922596d756 | 315 | xPlus POP {WRK} ; Get n1|u1 |
Recifarium | 0:df922596d756 | 316 | ADDS TOS, TOS, WRK ; Add n2|u2 |
Recifarium | 1:1224cf3799a5 | 317 | Next |
Recifarium | 0:df922596d756 | 318 | |
Recifarium | 0:df922596d756 | 319 | ;-(-)-------------------------------( n1|u1 n2|u2 -- n3|u3 ) |
Recifarium | 0:df922596d756 | 320 | LMinus LINK LPlus ; Link |
Recifarium | 1:1224cf3799a5 | 321 | DCB 1, "-" |
Recifarium | 1:1224cf3799a5 | 322 | Minus DCD xMinus |
Recifarium | 0:df922596d756 | 323 | xMinus POP {WRK} ; Get n1|u1 |
Recifarium | 0:df922596d756 | 324 | SUBS TOS, WRK, TOS ; Substract from TOS |
Recifarium | 1:1224cf3799a5 | 325 | Next |
Recifarium | 0:df922596d756 | 326 | |
Recifarium | 0:df922596d756 | 327 | ;-(2*)------------------------------ |
Recifarium | 0:df922596d756 | 328 | LTwosta LINK LMinus ; Link |
Recifarium | 1:1224cf3799a5 | 329 | DCB 2, "2*" |
Recifarium | 1:1224cf3799a5 | 330 | TwoStar DCD xTwoStar |
Recifarium | 1:1224cf3799a5 | 331 | xTwoStar LSLS TOS, TOS, #1 ; Shift right one bit |
Recifarium | 1:1224cf3799a5 | 332 | Next |
Recifarium | 0:df922596d756 | 333 | |
Recifarium | 0:df922596d756 | 334 | ;-(2/)------------------------------ |
Recifarium | 0:df922596d756 | 335 | LTwosla LINK LTwosta ; Link |
Recifarium | 1:1224cf3799a5 | 336 | DCB 2, "2/" |
Recifarium | 1:1224cf3799a5 | 337 | TwoSla DCD xTwoSla |
Recifarium | 1:1224cf3799a5 | 338 | xTwoSla ASRS TOS, TOS, #1 ; Shift left one bit |
Recifarium | 1:1224cf3799a5 | 339 | Next |
Recifarium | 0:df922596d756 | 340 | |
Recifarium | 0:df922596d756 | 341 | ;-(4*)------------------------------ |
Recifarium | 0:df922596d756 | 342 | LFoursta LINK LTwosla ; Link |
Recifarium | 1:1224cf3799a5 | 343 | DCB 2, "4*" |
Recifarium | 1:1224cf3799a5 | 344 | Foursta DCD xFoursta |
Recifarium | 0:df922596d756 | 345 | xFoursta LSLS TOS, TOS, #2 ; Shift two bits |
Recifarium | 1:1224cf3799a5 | 346 | Next |
Recifarium | 0:df922596d756 | 347 | |
Recifarium | 0:df922596d756 | 348 | ;-(4/)------------------------------ |
Recifarium | 0:df922596d756 | 349 | L4Slash LINK LFoursta ; Link |
Recifarium | 1:1224cf3799a5 | 350 | DCB 2, "4/" |
Recifarium | 1:1224cf3799a5 | 351 | Slash4 DCD xSlash4 |
Recifarium | 0:df922596d756 | 352 | xSlash4 ASRS TOS, TOS, #2 ; Shift two bits |
Recifarium | 1:1224cf3799a5 | 353 | Next |
Recifarium | 0:df922596d756 | 354 | |
Recifarium | 0:df922596d756 | 355 | ;-(LSHIFT)--------------------------(x1,u --- x2) |
Recifarium | 1:1224cf3799a5 | 356 | LLShift LINK L4Slash ; Link |
Recifarium | 1:1224cf3799a5 | 357 | DCB 6, "LSHIFT" |
Recifarium | 1:1224cf3799a5 | 358 | LShift DCD xLShift |
Recifarium | 1:1224cf3799a5 | 359 | xLShift POP {WRK} ; Get x1 |
Recifarium | 0:df922596d756 | 360 | LSLS WRK, WRK, TOS ; Shift x1 u place to the left |
Recifarium | 0:df922596d756 | 361 | MOVS TOS, WRK |
Recifarium | 1:1224cf3799a5 | 362 | Next |
Recifarium | 0:df922596d756 | 363 | |
Recifarium | 0:df922596d756 | 364 | ;-(RSHIFT)--------------------------(x1,u --- x2) |
Recifarium | 1:1224cf3799a5 | 365 | LRShift LINK LLShift ; Link |
Recifarium | 1:1224cf3799a5 | 366 | DCB 6, "RSHIFT" |
Recifarium | 1:1224cf3799a5 | 367 | RShift DCD xRShift |
Recifarium | 1:1224cf3799a5 | 368 | xRShift POP {WRK} ; Get x1 |
Recifarium | 0:df922596d756 | 369 | LSRS WRK, WRK, TOS ; Shift x1 u place to the right |
Recifarium | 0:df922596d756 | 370 | MOVS TOS, WRK |
Recifarium | 1:1224cf3799a5 | 371 | Next |
Recifarium | 0:df922596d756 | 372 | |
Recifarium | 0:df922596d756 | 373 | ;-(@)-------------------------------( a -- x ) |
Recifarium | 0:df922596d756 | 374 | LAt LINK LRShift ; Link |
Recifarium | 1:1224cf3799a5 | 375 | DCB 1, "@" |
Recifarium | 1:1224cf3799a5 | 376 | At DCD xAt |
Recifarium | 0:df922596d756 | 377 | xAt LDR TOS, [TOS] ; Get the value pointed by TOS |
Recifarium | 1:1224cf3799a5 | 378 | Next |
Recifarium | 0:df922596d756 | 379 | |
Recifarium | 0:df922596d756 | 380 | ;-(C@)------------------------------( a -- c ) |
Recifarium | 0:df922596d756 | 381 | LCAt LINK LAt ; Link |
Recifarium | 1:1224cf3799a5 | 382 | DCB 2, "C@" |
Recifarium | 1:1224cf3799a5 | 383 | CAt DCD xCAt |
Recifarium | 0:df922596d756 | 384 | xCAt LDRB TOS, [TOS] ; Get the caracter pointed by TOS |
Recifarium | 1:1224cf3799a5 | 385 | Next |
Recifarium | 0:df922596d756 | 386 | |
Recifarium | 0:df922596d756 | 387 | ;-(H@)------------------------------( a -- h ) |
Recifarium | 0:df922596d756 | 388 | LHAt LINK LCAt ; Link |
Recifarium | 1:1224cf3799a5 | 389 | DCB 2, "H@" |
Recifarium | 1:1224cf3799a5 | 390 | HAt DCD xHAt |
Recifarium | 0:df922596d756 | 391 | xHAt LDRH TOS, [TOS] ; Get the halfword pointed by TOS |
Recifarium | 1:1224cf3799a5 | 392 | Next |
Recifarium | 0:df922596d756 | 393 | |
Recifarium | 0:df922596d756 | 394 | ;-(!)-------------------------------(word,address --) |
Recifarium | 0:df922596d756 | 395 | LStore LINK LHAt ; Link |
Recifarium | 1:1224cf3799a5 | 396 | DCB 1, "!" |
Recifarium | 1:1224cf3799a5 | 397 | Store DCD xStore |
Recifarium | 0:df922596d756 | 398 | xStore POP {WRK} ; Get value to store |
Recifarium | 0:df922596d756 | 399 | STR WRK, [TOS] ; Store word where TOS point to |
Recifarium | 0:df922596d756 | 400 | POP {TOS} ; Update TOS |
Recifarium | 1:1224cf3799a5 | 401 | Next |
Recifarium | 0:df922596d756 | 402 | |
Recifarium | 0:df922596d756 | 403 | ;-(C!)------------------------------(char,addr--) |
Recifarium | 0:df922596d756 | 404 | LCStore LINK LStore ; Link |
Recifarium | 1:1224cf3799a5 | 405 | DCB 2, "C!" |
Recifarium | 1:1224cf3799a5 | 406 | CStore DCD xCStore |
Recifarium | 0:df922596d756 | 407 | xCStore POP {WRK} ; Get value to store |
Recifarium | 0:df922596d756 | 408 | STRB WRK, [TOS] ; Store Character value where TOS point to |
Recifarium | 0:df922596d756 | 409 | POP {TOS} ; Update TOS |
Recifarium | 1:1224cf3799a5 | 410 | Next |
Recifarium | 0:df922596d756 | 411 | |
Recifarium | 0:df922596d756 | 412 | ;-(H!)------------------------------(halfword,address --) |
Recifarium | 0:df922596d756 | 413 | LHStore LINK LCStore ; Link |
Recifarium | 0:df922596d756 | 414 | DCB 2 ; Length |
Recifarium | 0:df922596d756 | 415 | DCB "H!" |
Recifarium | 1:1224cf3799a5 | 416 | HStore DCD xHStore |
Recifarium | 0:df922596d756 | 417 | xHStore POP {WRK} ; Get value to store |
Recifarium | 0:df922596d756 | 418 | STRH WRK, [TOS] ; Store Halfword where TOS point to |
Recifarium | 0:df922596d756 | 419 | POP {TOS} |
Recifarium | 1:1224cf3799a5 | 420 | Next |
Recifarium | 0:df922596d756 | 421 | |
Recifarium | 0:df922596d756 | 422 | ;-(>R)------------------------------( n -- R:n) |
Recifarium | 0:df922596d756 | 423 | LToR LINK LHStore ; Link |
Recifarium | 1:1224cf3799a5 | 424 | DCB 2+Cmponly,">R" |
Recifarium | 1:1224cf3799a5 | 425 | ToR DCD xToR |
Recifarium | 1:1224cf3799a5 | 426 | xToR STM RPTR!,{TOS} ; Put TOS on Nexturn stack |
Recifarium | 1:1224cf3799a5 | 427 | ; & increment RPTR |
Recifarium | 0:df922596d756 | 428 | POP {TOS} ; update TOS |
Recifarium | 1:1224cf3799a5 | 429 | Next |
Recifarium | 0:df922596d756 | 430 | |
Recifarium | 0:df922596d756 | 431 | ;-(R>)------------------------------(R:n -- n) |
Recifarium | 0:df922596d756 | 432 | LFromR LINK LToR ; Link |
Recifarium | 0:df922596d756 | 433 | DCB 2, "R>" |
Recifarium | 1:1224cf3799a5 | 434 | FromR DCD xFromR |
Recifarium | 0:df922596d756 | 435 | xFromR PUSH {TOS} ; Make room |
Recifarium | 0:df922596d756 | 436 | SUBS RPTR, RPTR, #4 ; Prepare to collect |
Recifarium | 0:df922596d756 | 437 | LDR TOS, [RPTR] ; Collect value |
Recifarium | 1:1224cf3799a5 | 438 | Next |
Recifarium | 0:df922596d756 | 439 | ;-(R@)------------------------------ |
Recifarium | 0:df922596d756 | 440 | LRAt LINK LFromR ; Link |
Recifarium | 0:df922596d756 | 441 | DCB 2, "R@" |
Recifarium | 1:1224cf3799a5 | 442 | RAt DCD xRAt |
Recifarium | 0:df922596d756 | 443 | xRAt PUSH {TOS} ; Make room |
Recifarium | 1:1224cf3799a5 | 444 | MOVS TOS, RPTR ; Collect pointer |
Recifarium | 0:df922596d756 | 445 | SUBS TOS, #4 ; Point to previous word |
Recifarium | 0:df922596d756 | 446 | LDR TOS,[TOS] ; Get value |
Recifarium | 1:1224cf3799a5 | 447 | Next |
Recifarium | 0:df922596d756 | 448 | ;-(NOT)----------------------------- |
Recifarium | 0:df922596d756 | 449 | LNot LINK LRAt ; Link |
Recifarium | 1:1224cf3799a5 | 450 | DCB 3, "NOT" |
Recifarium | 1:1224cf3799a5 | 451 | Not DCD xNot |
Recifarium | 0:df922596d756 | 452 | xNot MVNS TOS, TOS ; move not |
Recifarium | 1:1224cf3799a5 | 453 | Next |
Recifarium | 0:df922596d756 | 454 | |
Recifarium | 1:1224cf3799a5 | 455 | ;-(branch)-------------------------- Branch & ZBranch use word address |
Recifarium | 1:1224cf3799a5 | 456 | ; Headerless |
Recifarium | 1:1224cf3799a5 | 457 | Bra DCD xBra |
Recifarium | 1:1224cf3799a5 | 458 | xBra LDR IPTR, [IPTR] ; Get the target address |
Recifarium | 1:1224cf3799a5 | 459 | Next |
Recifarium | 0:df922596d756 | 460 | |
Recifarium | 0:df922596d756 | 461 | ;-(Zbranch)------------------------- |
Recifarium | 1:1224cf3799a5 | 462 | ; Headerless |
Recifarium | 1:1224cf3799a5 | 463 | ZBra DCD xZBra |
Recifarium | 0:df922596d756 | 464 | xZBra TST TOS,TOS ; Update flags |
Recifarium | 0:df922596d756 | 465 | POP {TOS} ; |
Recifarium | 0:df922596d756 | 466 | BEQ xBra ; Take the branch if TOS = 0 |
Recifarium | 1:1224cf3799a5 | 467 | ADDS IPTR, #4 ; or jump over the address |
Recifarium | 1:1224cf3799a5 | 468 | Next |
Recifarium | 0:df922596d756 | 469 | |
Recifarium | 0:df922596d756 | 470 | ;-(NEGATE)--------------------------(n -- -n) |
Recifarium | 1:1224cf3799a5 | 471 | LNegate LINK LNot ; Link |
Recifarium | 1:1224cf3799a5 | 472 | DCB 6, "NEGATE" |
Recifarium | 1:1224cf3799a5 | 473 | Neg DCD xNeg |
Recifarium | 0:df922596d756 | 474 | xNeg MVNS TOS, TOS ; Move NOT signed |
Recifarium | 1:1224cf3799a5 | 475 | ADDS TOS, #1 ; 2's complement |
Recifarium | 1:1224cf3799a5 | 476 | Next |
Recifarium | 0:df922596d756 | 477 | |
Recifarium | 0:df922596d756 | 478 | ;-(ABS)-----------------------------(n -- |n|) |
Recifarium | 0:df922596d756 | 479 | LAbs LINK LNegate ; Link |
Recifarium | 0:df922596d756 | 480 | DCB 3, "ABS" |
Recifarium | 1:1224cf3799a5 | 481 | Abs DCD xAbs |
Recifarium | 0:df922596d756 | 482 | xAbs TST TOS, TOS ; Test TOS |
Recifarium | 0:df922596d756 | 483 | BPL Abs1 ; If positive do nothing |
Recifarium | 0:df922596d756 | 484 | MOVS WRK, #0 |
Recifarium | 0:df922596d756 | 485 | SUBS TOS, WRK, TOS ; TOS = 0 - TOS |
Recifarium | 1:1224cf3799a5 | 486 | Abs1 Next |
Recifarium | 0:df922596d756 | 487 | |
Recifarium | 0:df922596d756 | 488 | ;-(MAX)-----------------------------(n1, n2 -- Max(n1,n2)) |
Recifarium | 0:df922596d756 | 489 | LMax LINK LAbs ; Link |
Recifarium | 0:df922596d756 | 490 | DCB 3, "MAX" |
Recifarium | 1:1224cf3799a5 | 491 | Max DCD xMax |
Recifarium | 0:df922596d756 | 492 | xMax POP {WRK} |
Recifarium | 0:df922596d756 | 493 | CMP WRK, TOS |
Recifarium | 0:df922596d756 | 494 | BLT xMax1 |
Recifarium | 0:df922596d756 | 495 | MOVS TOS, WRK |
Recifarium | 1:1224cf3799a5 | 496 | xMax1 Next |
Recifarium | 0:df922596d756 | 497 | |
Recifarium | 0:df922596d756 | 498 | ;-(MIN)-----------------------------(n1, n2 -- Min(n1,n2)) |
Recifarium | 0:df922596d756 | 499 | LMin LINK LMax ; Link |
Recifarium | 0:df922596d756 | 500 | DCB 3, "MIN" |
Recifarium | 1:1224cf3799a5 | 501 | Min DCD xMin |
Recifarium | 0:df922596d756 | 502 | xMin POP {WRK} |
Recifarium | 0:df922596d756 | 503 | CMP WRK, TOS |
Recifarium | 0:df922596d756 | 504 | BGT xMin1 |
Recifarium | 0:df922596d756 | 505 | MOVS TOS, WRK |
Recifarium | 1:1224cf3799a5 | 506 | xMin1 Next |
Recifarium | 0:df922596d756 | 507 | |
Recifarium | 0:df922596d756 | 508 | ;-(WITHIN)-------------------------- |
Recifarium | 0:df922596d756 | 509 | LWithin LINK LMin ; Link |
Recifarium | 0:df922596d756 | 510 | DCB 6, "WITHIN" |
Recifarium | 1:1224cf3799a5 | 511 | Within DCD doCol |
Recifarium | 1:1224cf3799a5 | 512 | DCD Over, Minus, ToR ; : Within Over - >R - R> U< ; |
Recifarium | 1:1224cf3799a5 | 513 | DCD Minus, FromR, ULess ; |
Recifarium | 1:1224cf3799a5 | 514 | DCD Exit |
Recifarium | 0:df922596d756 | 515 | |
Recifarium | 0:df922596d756 | 516 | ;-(=)------------------------------- |
Recifarium | 0:df922596d756 | 517 | LEq LINK LWithin ; Link |
Recifarium | 0:df922596d756 | 518 | DCB 1, "=" |
Recifarium | 1:1224cf3799a5 | 519 | Eq DCD xEq |
Recifarium | 0:df922596d756 | 520 | xEq POP {WRK} |
Recifarium | 0:df922596d756 | 521 | CMP WRK,TOS |
Recifarium | 0:df922596d756 | 522 | LDR TOS, =0x0 ; False flag |
Recifarium | 0:df922596d756 | 523 | BNE xEq1 |
Recifarium | 0:df922596d756 | 524 | SUBS TOS, #1 ; True |
Recifarium | 1:1224cf3799a5 | 525 | xEq1 Next |
Recifarium | 1:1224cf3799a5 | 526 | |
Recifarium | 1:1224cf3799a5 | 527 | ;-(<>)------------------------------- |
Recifarium | 1:1224cf3799a5 | 528 | LNEq LINK LEq ; Link |
Recifarium | 1:1224cf3799a5 | 529 | DCB 2, "<>" |
Recifarium | 1:1224cf3799a5 | 530 | NEq DCD doCol |
Recifarium | 1:1224cf3799a5 | 531 | DCD Eq, Not |
Recifarium | 1:1224cf3799a5 | 532 | DCD Exit |
Recifarium | 0:df922596d756 | 533 | |
Recifarium | 0:df922596d756 | 534 | ;-(<)------------------------------- |
Recifarium | 1:1224cf3799a5 | 535 | LLt LINK LNEq ; Link |
Recifarium | 0:df922596d756 | 536 | DCB 1, "<" |
Recifarium | 1:1224cf3799a5 | 537 | Lt DCD xLt |
Recifarium | 0:df922596d756 | 538 | xLt POP {WRK} |
Recifarium | 0:df922596d756 | 539 | CMP WRK,TOS |
Recifarium | 1:1224cf3799a5 | 540 | LDR TOS, =0x0 ; False flag |
Recifarium | 0:df922596d756 | 541 | BGE xLt1 |
Recifarium | 1:1224cf3799a5 | 542 | SUBS TOS, #1 ; True |
Recifarium | 1:1224cf3799a5 | 543 | xLt1 Next |
Recifarium | 0:df922596d756 | 544 | |
Recifarium | 0:df922596d756 | 545 | ;-(>)------------------------------- |
Recifarium | 0:df922596d756 | 546 | LGt LINK LLt ; Link |
Recifarium | 0:df922596d756 | 547 | DCB 1, ">" |
Recifarium | 1:1224cf3799a5 | 548 | Gt DCD xGt |
Recifarium | 0:df922596d756 | 549 | xGt POP {WRK} |
Recifarium | 0:df922596d756 | 550 | CMP WRK,TOS |
Recifarium | 1:1224cf3799a5 | 551 | LDR TOS, =0x0 ; False flag |
Recifarium | 0:df922596d756 | 552 | BLE xGt1 |
Recifarium | 1:1224cf3799a5 | 553 | SUBS TOS, #1 ; True |
Recifarium | 1:1224cf3799a5 | 554 | xGt1 Next |
Recifarium | 0:df922596d756 | 555 | |
Recifarium | 0:df922596d756 | 556 | ;-(INVERT)-------------------------- |
Recifarium | 0:df922596d756 | 557 | LInvert LINK LGt ; Link |
Recifarium | 1:1224cf3799a5 | 558 | DCB 6, "INVERT" |
Recifarium | 1:1224cf3799a5 | 559 | Invert DCD xInvert |
Recifarium | 0:df922596d756 | 560 | xInvert MVNS TOS, TOS |
Recifarium | 1:1224cf3799a5 | 561 | Next |
Recifarium | 0:df922596d756 | 562 | |
Recifarium | 1:1224cf3799a5 | 563 | ;-(?DUP)----------------------------(n -- n,n | 0) |
Recifarium | 0:df922596d756 | 564 | LDupNZ LINK LInvert ; Link |
Recifarium | 0:df922596d756 | 565 | DCB 4, "?DUP" |
Recifarium | 1:1224cf3799a5 | 566 | DupNZ DCD xDupNZ |
Recifarium | 0:df922596d756 | 567 | xDupNZ TST TOS, TOS ; Test TOS |
Recifarium | 0:df922596d756 | 568 | BEQ DupNZ1 ; If 0 do nothing |
Recifarium | 0:df922596d756 | 569 | PUSH {TOS} ; Duplicate |
Recifarium | 1:1224cf3799a5 | 570 | DupNZ1 Next |
Recifarium | 0:df922596d756 | 571 | |
Recifarium | 0:df922596d756 | 572 | ;-(*)------------------------------- |
Recifarium | 0:df922596d756 | 573 | LMul LINK LDupNZ ; Link |
Recifarium | 1:1224cf3799a5 | 574 | DCB 1, "*" |
Recifarium | 1:1224cf3799a5 | 575 | Mul DCD xMul |
Recifarium | 0:df922596d756 | 576 | xMul POP {WRK} ; Get 2nd Element |
Recifarium | 0:df922596d756 | 577 | MULS TOS, WRK, TOS ; Multiply |
Recifarium | 1:1224cf3799a5 | 578 | Next |
Recifarium | 0:df922596d756 | 579 | |
Recifarium | 1:1224cf3799a5 | 580 | ;-(*/)------------------------------- |
Recifarium | 1:1224cf3799a5 | 581 | LMSlash LINK LMul ; Link |
Recifarium | 1:1224cf3799a5 | 582 | DCB 2, "*/" |
Recifarium | 1:1224cf3799a5 | 583 | MSlash DCD xMSlash |
Recifarium | 1:1224cf3799a5 | 584 | xMSlash |
Recifarium | 1:1224cf3799a5 | 585 | |
Recifarium | 1:1224cf3799a5 | 586 | Next |
Recifarium | 1:1224cf3799a5 | 587 | |
Recifarium | 1:1224cf3799a5 | 588 | |
Recifarium | 1:1224cf3799a5 | 589 | ;-(+!)------------------------------(n,addr --) |
Recifarium | 1:1224cf3799a5 | 590 | LAddSto LINK LMSlash ; Link |
Recifarium | 0:df922596d756 | 591 | DCB 2, "+!" |
Recifarium | 1:1224cf3799a5 | 592 | AddSto DCD xAddSto |
Recifarium | 0:df922596d756 | 593 | xAddSto POP {WRK} |
Recifarium | 0:df922596d756 | 594 | LDR WRK2, [TOS] |
Recifarium | 1:1224cf3799a5 | 595 | ADDS WRK, WRK2 |
Recifarium | 0:df922596d756 | 596 | STR WRK, [TOS] |
Recifarium | 0:df922596d756 | 597 | POP {TOS} |
Recifarium | 1:1224cf3799a5 | 598 | Next |
Recifarium | 0:df922596d756 | 599 | |
Recifarium | 0:df922596d756 | 600 | ;-(-!)------------------------------ |
Recifarium | 0:df922596d756 | 601 | LSubSto LINK LAddSto ; Link |
Recifarium | 0:df922596d756 | 602 | DCB 2, "-!" |
Recifarium | 1:1224cf3799a5 | 603 | SubSto DCD xSubSto |
Recifarium | 0:df922596d756 | 604 | xSubSto POP {WRK} |
Recifarium | 0:df922596d756 | 605 | LDR WRK2, [TOS] |
Recifarium | 1:1224cf3799a5 | 606 | SUBS WRK, WRK2 |
Recifarium | 0:df922596d756 | 607 | STR WRK, [TOS] |
Recifarium | 0:df922596d756 | 608 | POP {TOS} |
Recifarium | 1:1224cf3799a5 | 609 | Next |
Recifarium | 0:df922596d756 | 610 | |
Recifarium | 0:df922596d756 | 611 | ;-(CELL)--------------------------- |
Recifarium | 0:df922596d756 | 612 | LCell LINK LSubSto ; Link |
Recifarium | 1:1224cf3799a5 | 613 | DCB 4, "CELL" |
Recifarium | 1:1224cf3799a5 | 614 | Cell DCD doCon |
Recifarium | 1:1224cf3799a5 | 615 | DCD 4 |
Recifarium | 0:df922596d756 | 616 | |
Recifarium | 0:df922596d756 | 617 | ;-(SP0)--------------------------- |
Recifarium | 0:df922596d756 | 618 | LSP0 LINK LCell ; Link |
Recifarium | 0:df922596d756 | 619 | DCB 3, "SP0" |
Recifarium | 1:1224cf3799a5 | 620 | Sp0 DCD xSp0 |
Recifarium | 1:1224cf3799a5 | 621 | xSp0 SUBS WRK, WRK ; Cortex M0+ initial stack value @address 0 |
Recifarium | 0:df922596d756 | 622 | LDR WRK, [WRK] |
Recifarium | 0:df922596d756 | 623 | PUSH {TOS} |
Recifarium | 0:df922596d756 | 624 | MOV TOS, WRK |
Recifarium | 1:1224cf3799a5 | 625 | Next |
Recifarium | 0:df922596d756 | 626 | |
Recifarium | 0:df922596d756 | 627 | ;-(SP@)----------------------------- |
Recifarium | 0:df922596d756 | 628 | LSPAt LINK LSP0 ; Link |
Recifarium | 0:df922596d756 | 629 | DCB 3, "SP@" |
Recifarium | 1:1224cf3799a5 | 630 | SpAt DCD xSpAt |
Recifarium | 0:df922596d756 | 631 | xSpAt MOV WRK, sp ; Collect the value before push! |
Recifarium | 0:df922596d756 | 632 | PUSH {TOS} |
Recifarium | 0:df922596d756 | 633 | MOV TOS, WRK ; Update |
Recifarium | 1:1224cf3799a5 | 634 | Next |
Recifarium | 0:df922596d756 | 635 | |
Recifarium | 1:1224cf3799a5 | 636 | ;-(DEPTH)---------------------------: Depth SP@ SP0 - /4 ; |
Recifarium | 0:df922596d756 | 637 | LDepth LINK LSPAt ; Link |
Recifarium | 0:df922596d756 | 638 | DCB 5, "DEPTH" |
Recifarium | 1:1224cf3799a5 | 639 | Depth DCD doCol |
Recifarium | 1:1224cf3799a5 | 640 | DCD SpAt, Sp0, Swap |
Recifarium | 1:1224cf3799a5 | 641 | DCD Minus, Slash4 ; |
Recifarium | 1:1224cf3799a5 | 642 | DCD Exit |
Recifarium | 0:df922596d756 | 643 | |
Recifarium | 0:df922596d756 | 644 | ;-(STATE)--------------------------- |
Recifarium | 0:df922596d756 | 645 | LState LINK LDepth ; Link |
Recifarium | 0:df922596d756 | 646 | DCB 5, "STATE" |
Recifarium | 1:1224cf3799a5 | 647 | State DCD doVar |
Recifarium | 1:1224cf3799a5 | 648 | DCD AState |
Recifarium | 0:df922596d756 | 649 | |
Recifarium | 0:df922596d756 | 650 | ;-(LATEST)-------------------------- |
Recifarium | 0:df922596d756 | 651 | LLatest LINK LState ; Link |
Recifarium | 0:df922596d756 | 652 | DCB 6, "LATEST" |
Recifarium | 1:1224cf3799a5 | 653 | Latest DCD doVar |
Recifarium | 1:1224cf3799a5 | 654 | DCD DLatest |
Recifarium | 0:df922596d756 | 655 | |
Recifarium | 1:1224cf3799a5 | 656 | ;-(HERE)----------------------------( - address) |
Recifarium | 0:df922596d756 | 657 | LHere LINK LLatest ; Link |
Recifarium | 0:df922596d756 | 658 | DCB 4, "HERE" |
Recifarium | 1:1224cf3799a5 | 659 | Here DCD doVar |
Recifarium | 1:1224cf3799a5 | 660 | DCD AHERE |
Recifarium | 1:1224cf3799a5 | 661 | |
Recifarium | 1:1224cf3799a5 | 662 | ;-(DHERE)----------------------------( - address) |
Recifarium | 1:1224cf3799a5 | 663 | LDHere LINK LHere ; Link |
Recifarium | 1:1224cf3799a5 | 664 | DCB 5, "DHERE" |
Recifarium | 1:1224cf3799a5 | 665 | DHere DCD doVar |
Recifarium | 1:1224cf3799a5 | 666 | DCD ADHERE |
Recifarium | 1:1224cf3799a5 | 667 | |
Recifarium | 1:1224cf3799a5 | 668 | ;-(CHERE)----------------------------( - address) |
Recifarium | 1:1224cf3799a5 | 669 | LCHere LINK LDHere ; Link |
Recifarium | 1:1224cf3799a5 | 670 | DCB 5, "CHERE" |
Recifarium | 1:1224cf3799a5 | 671 | CHere DCD doVar |
Recifarium | 1:1224cf3799a5 | 672 | DCD ACHERE |
Recifarium | 1:1224cf3799a5 | 673 | |
Recifarium | 0:df922596d756 | 674 | ;-(BASE)---------------------------- |
Recifarium | 1:1224cf3799a5 | 675 | LBase LINK LCHere ; Link |
Recifarium | 0:df922596d756 | 676 | DCB 4, "BASE" |
Recifarium | 1:1224cf3799a5 | 677 | Base DCD doVar |
Recifarium | 1:1224cf3799a5 | 678 | DCD VBase |
Recifarium | 1:1224cf3799a5 | 679 | ;xBase PUSH {TOS} |
Recifarium | 1:1224cf3799a5 | 680 | ; LDR TOS, =VBase ; Put address on TOS |
Recifarium | 1:1224cf3799a5 | 681 | ; Next |
Recifarium | 0:df922596d756 | 682 | |
Recifarium | 0:df922596d756 | 683 | ;-(msec)---------------------------- |
Recifarium | 0:df922596d756 | 684 | Lmsec LINK LBase ; Link |
Recifarium | 0:df922596d756 | 685 | DCB 4, "msec" |
Recifarium | 1:1224cf3799a5 | 686 | msec DCD xmsec |
Recifarium | 1:1224cf3799a5 | 687 | xmsec LDR WRK, =2400 |
Recifarium | 1:1224cf3799a5 | 688 | msec1 SUBS WRK, #1 ; 1 Cycle |
Recifarium | 1:1224cf3799a5 | 689 | BNE msec1 ; 2 cycles (taken) 1 cycle (not taken) |
Recifarium | 0:df922596d756 | 690 | SUBS TOS, #1 ; 1 cycle |
Recifarium | 0:df922596d756 | 691 | BNE msec ; 2 cycles (taken) 1 cycle (not taken) |
Recifarium | 0:df922596d756 | 692 | POP {TOS} ; Update TOS |
Recifarium | 1:1224cf3799a5 | 693 | Next |
Recifarium | 0:df922596d756 | 694 | |
Recifarium | 0:df922596d756 | 695 | ;-(10usec)-------------------------- |
Recifarium | 0:df922596d756 | 696 | Lusec LINK Lmsec ; Link |
Recifarium | 0:df922596d756 | 697 | DCB 6, "10usec" |
Recifarium | 1:1224cf3799a5 | 698 | usec DCD xusec |
Recifarium | 1:1224cf3799a5 | 699 | xusec LDR WRK, =23 |
Recifarium | 1:1224cf3799a5 | 700 | usec1 SUBS WRK, #1 ; 1 Cycle |
Recifarium | 1:1224cf3799a5 | 701 | BNE usec1 ; 2 cycles (taken) 1 cycle (not taken) |
Recifarium | 0:df922596d756 | 702 | SUBS TOS, #1 ; 1 cycle |
Recifarium | 1:1224cf3799a5 | 703 | BNE xusec ; 2 cycles (taken) 1 cycle (not taken) |
Recifarium | 0:df922596d756 | 704 | POP {TOS} ; Update TOS |
Recifarium | 1:1224cf3799a5 | 705 | Next |
Recifarium | 0:df922596d756 | 706 | |
Recifarium | 1:1224cf3799a5 | 707 | ;-(SNAP)----------------------------; Debug helper when nothing work! LPC8xx centric |
Recifarium | 1:1224cf3799a5 | 708 | ;LSnap LINK Lusec ; dump hex value of TOS |
Recifarium | 1:1224cf3799a5 | 709 | ; DCB 4, "SNAP" |
Recifarium | 1:1224cf3799a5 | 710 | ;xSnap PUSH {TOS} |
Recifarium | 1:1224cf3799a5 | 711 | ;ESnap MOVS r0,#8 |
Recifarium | 1:1224cf3799a5 | 712 | ;Snap0 PUSH {TOS} |
Recifarium | 1:1224cf3799a5 | 713 | ; LSRS TOS, TOS, #28 |
Recifarium | 1:1224cf3799a5 | 714 | ; CMP TOS, #0x9 |
Recifarium | 1:1224cf3799a5 | 715 | ; BGT Snap1 |
Recifarium | 1:1224cf3799a5 | 716 | ; ADDS TOS, #"0" |
Recifarium | 1:1224cf3799a5 | 717 | ; B Snap2 |
Recifarium | 1:1224cf3799a5 | 718 | ;Snap1 ADDS TOS, #("A"-0xa) |
Recifarium | 1:1224cf3799a5 | 719 | ;Snap2 LDR r1,=(USART0) |
Recifarium | 1:1224cf3799a5 | 720 | ;Snap3 LDR r2,[r1,#STAT] |
Recifarium | 1:1224cf3799a5 | 721 | ; LSRS r2,#3 |
Recifarium | 1:1224cf3799a5 | 722 | ; BCC Snap3 ; ? ready to Xmit |
Recifarium | 1:1224cf3799a5 | 723 | ; STR TOS,[r1,#TXDAT] |
Recifarium | 1:1224cf3799a5 | 724 | ; POP {TOS} |
Recifarium | 1:1224cf3799a5 | 725 | ; LSLS TOS,#4 |
Recifarium | 1:1224cf3799a5 | 726 | ; SUBS r0,#1 |
Recifarium | 1:1224cf3799a5 | 727 | ; BNE Snap0 ; =0? |
Recifarium | 1:1224cf3799a5 | 728 | ; POP {TOS} |
Recifarium | 1:1224cf3799a5 | 729 | ; Next |
Recifarium | 0:df922596d756 | 730 | |
Recifarium | 0:df922596d756 | 731 | ;-(COUNT)---------------------------(caddr -- addr,count) |
Recifarium | 1:1224cf3799a5 | 732 | LCount LINK Lusec |
Recifarium | 0:df922596d756 | 733 | DCB 5, "COUNT" |
Recifarium | 1:1224cf3799a5 | 734 | Count DCD xCount |
Recifarium | 0:df922596d756 | 735 | xCount MOVS WRK, TOS ; |
Recifarium | 0:df922596d756 | 736 | ADDS TOS, #1 ; Point to 1st char |
Recifarium | 0:df922596d756 | 737 | PUSH {TOS} ; Put it on the stack |
Recifarium | 0:df922596d756 | 738 | LDRB TOS, [WRK] ; Get length |
Recifarium | 1:1224cf3799a5 | 739 | Next |
Recifarium | 0:df922596d756 | 740 | |
Recifarium | 0:df922596d756 | 741 | ;-(FIND)----------------------------(caddr -- caddr|xt,flag ) |
Recifarium | 0:df922596d756 | 742 | ; flag=0 not found, =1 immediate, =-1 not immediate |
Recifarium | 0:df922596d756 | 743 | LFind LINK LCount |
Recifarium | 1:1224cf3799a5 | 744 | DCB 4, "FIND" ; May be has to be recoded in high level ! |
Recifarium | 1:1224cf3799a5 | 745 | Find DCD xFind |
Recifarium | 0:df922596d756 | 746 | xFind LDR WRK2, =VLatest ; Get last entry pointer field |
Recifarium | 0:df922596d756 | 747 | Find1 TST WRK2, WRK2 ; More words? |
Recifarium | 0:df922596d756 | 748 | BEQ Find4 ; No we have to leave |
Recifarium | 0:df922596d756 | 749 | PUSH {WRK2} ; save pointer |
Recifarium | 0:df922596d756 | 750 | ADDS WRK2, #4 ; WRK2 point to counted string |
Recifarium | 0:df922596d756 | 751 | LDRB WRK1, [WRK2] ; Get Lenght+flag from dictionnary |
Recifarium | 0:df922596d756 | 752 | MOVS WRK0, #0x1F ; Flag mask |
Recifarium | 0:df922596d756 | 753 | ANDS WRK1, WRK0 ; Discard flags |
Recifarium | 0:df922596d756 | 754 | LDRB WRK0, [TOS] ; Get length of searched string |
Recifarium | 0:df922596d756 | 755 | CMP WRK0, WRK1 ; Are they equals ? |
Recifarium | 0:df922596d756 | 756 | BNE Find3 ; no , we have to test next word |
Recifarium | 0:df922596d756 | 757 | |
Recifarium | 0:df922596d756 | 758 | PUSH {TOS} |
Recifarium | 0:df922596d756 | 759 | Find1b ADDS TOS, #1 ; point to next char in input string |
Recifarium | 0:df922596d756 | 760 | ADDS WRK2, #1 ; point to next char in dictionnary word |
Recifarium | 0:df922596d756 | 761 | LDRB WRK0, [TOS] ; Get char in input string |
Recifarium | 0:df922596d756 | 762 | LDRB WRK, [WRK2] ; Get char in dictionnary |
Recifarium | 0:df922596d756 | 763 | CMP WRK0, WRK ; Are they equal |
Recifarium | 0:df922596d756 | 764 | BNE Find2 ; no try another word |
Recifarium | 0:df922596d756 | 765 | |
Recifarium | 0:df922596d756 | 766 | SUBS WRK1, #1 ; we start this loop with length in WRK1. It's our char counter |
Recifarium | 0:df922596d756 | 767 | BNE Find1b ; We still have to compare more caracters |
Recifarium | 0:df922596d756 | 768 | |
Recifarium | 0:df922596d756 | 769 | POP {TOS} ; Yes we find it |
Recifarium | 0:df922596d756 | 770 | POP {WRK2} ; link fiel address of the word we have found |
Recifarium | 0:df922596d756 | 771 | LDRB WRK, [WRK2, #4] ; Get flag+Length byte |
Recifarium | 1:1224cf3799a5 | 772 | MOVS WRK0, Immed |
Recifarium | 0:df922596d756 | 773 | ANDS WRK, WRK0 ; ?Immed |
Recifarium | 0:df922596d756 | 774 | BNE Find1c ; Immed |
Recifarium | 0:df922596d756 | 775 | |
Recifarium | 0:df922596d756 | 776 | SUBS TOS, TOS ; Not Immed |
Recifarium | 1:1224cf3799a5 | 777 | SUBS TOS, #1 ; Flag=-1 not immed |
Recifarium | 0:df922596d756 | 778 | B Find1d |
Recifarium | 0:df922596d756 | 779 | |
Recifarium | 0:df922596d756 | 780 | Find1c MOVS TOS, #1 ; Flag= 1 immed |
Recifarium | 0:df922596d756 | 781 | Find1d LDRB WRK, [WRK2, #4] |
Recifarium | 1:1224cf3799a5 | 782 | MOVS WRK1, #0x1f ; Flag mask |
Recifarium | 1:1224cf3799a5 | 783 | ANDS WRK, WRK1 ; get length |
Recifarium | 1:1224cf3799a5 | 784 | ADDS WRK2, #8 ; |
Recifarium | 0:df922596d756 | 785 | ADDS WRK2, WRK |
Recifarium | 1:1224cf3799a5 | 786 | LSRS WRK2, #2 ; Round to a multiple |
Recifarium | 1:1224cf3799a5 | 787 | LSLS WRK2, #2 ; of 2 |
Recifarium | 0:df922596d756 | 788 | PUSH {WRK2} ; Xt address |
Recifarium | 1:1224cf3799a5 | 789 | B Find5 ; ( -- xt,1|-1) |
Recifarium | 0:df922596d756 | 790 | |
Recifarium | 0:df922596d756 | 791 | Find2 POP {TOS} ; Restore the address of counted string we are looking for |
Recifarium | 0:df922596d756 | 792 | Find3 POP {WRK2} ; Restore pointer of the linked chain |
Recifarium | 0:df922596d756 | 793 | LDR WRK2,[WRK2] ; Link to next in dictionnary |
Recifarium | 0:df922596d756 | 794 | B Find1 ; Try next one |
Recifarium | 0:df922596d756 | 795 | |
Recifarium | 0:df922596d756 | 796 | Find4 PUSH {TOS} ; Leave the c-address |
Recifarium | 0:df922596d756 | 797 | SUBS TOS, TOS ; Clear TOS (not found) |
Recifarium | 1:1224cf3799a5 | 798 | Find5 Next |
Recifarium | 0:df922596d756 | 799 | |
Recifarium | 0:df922596d756 | 800 | LTORG |
Recifarium | 0:df922596d756 | 801 | |
Recifarium | 0:df922596d756 | 802 | ;-(ACCEPT)--------------------------( addr, len --- len2) |
Recifarium | 0:df922596d756 | 803 | LAccept LINK LFind |
Recifarium | 0:df922596d756 | 804 | DCB 6 |
Recifarium | 0:df922596d756 | 805 | DCB "ACCEPT" |
Recifarium | 1:1224cf3799a5 | 806 | Accept DCD doCol |
Recifarium | 1:1224cf3799a5 | 807 | DCD Zero, ToR ; Initial count=0 |
Recifarium | 1:1224cf3799a5 | 808 | DCD Swap ; ( len, addr --- R:0) |
Recifarium | 0:df922596d756 | 809 | Accept1 |
Recifarium | 1:1224cf3799a5 | 810 | DCD Key ; ( len, addr, char --- R:count) |
Recifarium | 1:1224cf3799a5 | 811 | DCD Dup, Bl, Lt ; Is it a control character? |
Recifarium | 0:df922596d756 | 812 | ZBranch Accept3 ; No |
Recifarium | 0:df922596d756 | 813 | |
Recifarium | 1:1224cf3799a5 | 814 | DCD Dup, Lit32, 8, Eq ; Is it a backspace? |
Recifarium | 0:df922596d756 | 815 | ZBranch Accept2 ; No |
Recifarium | 0:df922596d756 | 816 | |
Recifarium | 1:1224cf3799a5 | 817 | DCD FromR, Dup, Zero |
Recifarium | 1:1224cf3799a5 | 818 | DCD Eq ; Begining of line? |
Recifarium | 1:1224cf3799a5 | 819 | DCD Swap, ToR |
Recifarium | 0:df922596d756 | 820 | ZBranch Accept1b ; No |
Recifarium | 0:df922596d756 | 821 | |
Recifarium | 1:1224cf3799a5 | 822 | DCD Lit32,7, Emit, Drop ; Emit Bell and go to get next char |
Recifarium | 0:df922596d756 | 823 | Branch Accept1 |
Recifarium | 0:df922596d756 | 824 | |
Recifarium | 0:df922596d756 | 825 | Accept1b |
Recifarium | 1:1224cf3799a5 | 826 | DCD Dup,Emit, Bl, Emit, Emit |
Recifarium | 1:1224cf3799a5 | 827 | DCD FromR, Minus1,ToR |
Recifarium | 1:1224cf3799a5 | 828 | DCD Minus1 |
Recifarium | 0:df922596d756 | 829 | Branch Accept1 |
Recifarium | 0:df922596d756 | 830 | Accept2 |
Recifarium | 1:1224cf3799a5 | 831 | DCD Dup, Lit32, 13 ; Is it a Carriage Nexturn |
Recifarium | 1:1224cf3799a5 | 832 | DCD Eq, Not |
Recifarium | 1:1224cf3799a5 | 833 | ZBranch Accept4 ; Yes |
Recifarium | 1:1224cf3799a5 | 834 | |
Recifarium | 0:df922596d756 | 835 | Accept3 |
Recifarium | 1:1224cf3799a5 | 836 | DCD Over, Over, Swap ; ( len , addr, char, char, addr--- R:count) |
Recifarium | 1:1224cf3799a5 | 837 | DCD CStore ; ( len, addr, char---R:count) |
Recifarium | 1:1224cf3799a5 | 838 | DCD Emit ; ( len, addr---R:count) |
Recifarium | 1:1224cf3799a5 | 839 | DCD Plus1 ; ( len, addr+1---R:count) |
Recifarium | 1:1224cf3799a5 | 840 | DCD FromR,Plus1, ToR ; ( len, addr+1---R:count+1) |
Recifarium | 0:df922596d756 | 841 | Branch Accept1 ; go get next char |
Recifarium | 0:df922596d756 | 842 | Accept4 |
Recifarium | 1:1224cf3799a5 | 843 | DCD TDrop, Drop, FromR ; (count) |
Recifarium | 1:1224cf3799a5 | 844 | DCD Cr |
Recifarium | 1:1224cf3799a5 | 845 | DCD Exit |
Recifarium | 0:df922596d756 | 846 | |
Recifarium | 1:1224cf3799a5 | 847 | ;-(WORD)----------------------------(char --- cstring) |
Recifarium | 0:df922596d756 | 848 | LWord LINK LAccept |
Recifarium | 0:df922596d756 | 849 | DCB 4 |
Recifarium | 1:1224cf3799a5 | 850 | DCB "WORD" ; May be has to be recoded in high level |
Recifarium | 1:1224cf3799a5 | 851 | Word DCD xWord |
Recifarium | 0:df922596d756 | 852 | xWord LDR WRK, =(APAD) |
Recifarium | 0:df922596d756 | 853 | LDR WRK1, =(TIB) ; Get char at address |
Recifarium | 1:1224cf3799a5 | 854 | MOVS WRK2, WRK1 ; save TIB |
Recifarium | 1:1224cf3799a5 | 855 | LDR WRK0, =(AtoIn) |
Recifarium | 0:df922596d756 | 856 | LDR WRK0, [WRK0] |
Recifarium | 0:df922596d756 | 857 | ADDS WRK1, WRK0 ; Point current char |
Recifarium | 0:df922596d756 | 858 | LDR WRK0, =(AnTib) |
Recifarium | 0:df922596d756 | 859 | LDR WRK0, [WRK0] |
Recifarium | 0:df922596d756 | 860 | ADDS WRK2, WRK0 ; Point end of TIB |
Recifarium | 0:df922596d756 | 861 | Word1 CMP WRK1, WRK2 |
Recifarium | 0:df922596d756 | 862 | BEQ Word3 |
Recifarium | 0:df922596d756 | 863 | |
Recifarium | 0:df922596d756 | 864 | LDRB WRK0,[WRK1] ; Get char |
Recifarium | 0:df922596d756 | 865 | ADDS WRK1, #1 ; point to next char |
Recifarium | 0:df922596d756 | 866 | CMP WRK0, TOS ; is it the delimiter? |
Recifarium | 0:df922596d756 | 867 | BEQ Word1 |
Recifarium | 0:df922596d756 | 868 | |
Recifarium | 0:df922596d756 | 869 | Word2 ADDS WRK, #1 ; avance 1 byte in PAD |
Recifarium | 0:df922596d756 | 870 | STRB WRK0, [WRK] |
Recifarium | 0:df922596d756 | 871 | CMP WRK1, WRK2 |
Recifarium | 0:df922596d756 | 872 | BEQ Word3 |
Recifarium | 0:df922596d756 | 873 | |
Recifarium | 0:df922596d756 | 874 | LDRB WRK0,[WRK1] ; Get char |
Recifarium | 0:df922596d756 | 875 | ADDS WRK1, #1 ; point to next char |
Recifarium | 0:df922596d756 | 876 | CMP WRK0, TOS ; is it the delimiter? |
Recifarium | 0:df922596d756 | 877 | BNE Word2 ; |
Recifarium | 0:df922596d756 | 878 | |
Recifarium | 1:1224cf3799a5 | 879 | Word3 MOVS WRK0, #' ' ; Put a blank |
Recifarium | 0:df922596d756 | 880 | STRB WRK0, [WRK, #1] ; at the end of string in pad |
Recifarium | 0:df922596d756 | 881 | LDR TOS, =(APAD) |
Recifarium | 0:df922596d756 | 882 | SUBS WRK, WRK, TOS ; Compute length |
Recifarium | 0:df922596d756 | 883 | STRB WRK, [TOS] ; Put length at the beginning |
Recifarium | 0:df922596d756 | 884 | ; of PAD |
Recifarium | 0:df922596d756 | 885 | LDR WRK, =(TIB) |
Recifarium | 0:df922596d756 | 886 | SUBS WRK1, WRK |
Recifarium | 0:df922596d756 | 887 | LDR WRK, =(AtoIn) |
Recifarium | 0:df922596d756 | 888 | STR WRK1, [WRK] |
Recifarium | 1:1224cf3799a5 | 889 | Next |
Recifarium | 0:df922596d756 | 890 | LTORG |
Recifarium | 0:df922596d756 | 891 | |
Recifarium | 0:df922596d756 | 892 | ;-(WORDS)----------------------------() |
Recifarium | 0:df922596d756 | 893 | LWords LINK LWord |
Recifarium | 0:df922596d756 | 894 | DCB 5 |
Recifarium | 0:df922596d756 | 895 | DCB "WORDS" |
Recifarium | 1:1224cf3799a5 | 896 | Words DCD doCol |
Recifarium | 1:1224cf3799a5 | 897 | DCD Lit32 |
Recifarium | 0:df922596d756 | 898 | DCD VLatest ; ?????????????????????????????????????????????????????????????????? |
Recifarium | 1:1224cf3799a5 | 899 | Words1 DCD Dup, ToR |
Recifarium | 1:1224cf3799a5 | 900 | DCD Lit32, 4, Plus |
Recifarium | 1:1224cf3799a5 | 901 | DCD Count, Lit32, 0x1f, And |
Recifarium | 1:1224cf3799a5 | 902 | DCD Type, Bl, Emit |
Recifarium | 1:1224cf3799a5 | 903 | DCD FromR, At, Dup |
Recifarium | 0:df922596d756 | 904 | ZBranch Words2 |
Recifarium | 0:df922596d756 | 905 | Branch Words1 |
Recifarium | 1:1224cf3799a5 | 906 | Words2 DCD Drop, Cr |
Recifarium | 1:1224cf3799a5 | 907 | DCD Exit |
Recifarium | 0:df922596d756 | 908 | |
Recifarium | 0:df922596d756 | 909 | ;-(TYPE)----------------------------(addr,number --) |
Recifarium | 0:df922596d756 | 910 | LType LINK LWords |
Recifarium | 0:df922596d756 | 911 | DCB 4 |
Recifarium | 0:df922596d756 | 912 | DCB "TYPE" |
Recifarium | 1:1224cf3799a5 | 913 | Type DCD doCol |
Recifarium | 1:1224cf3799a5 | 914 | Type1 DCD Dup ; (addr,number,number) |
Recifarium | 0:df922596d756 | 915 | ZBranch Type2 |
Recifarium | 0:df922596d756 | 916 | |
Recifarium | 1:1224cf3799a5 | 917 | DCD Swap, Dup, CAt ; (number, addr, char) |
Recifarium | 1:1224cf3799a5 | 918 | DCD Emit |
Recifarium | 1:1224cf3799a5 | 919 | DCD Plus1, Swap, Minus1 ; (addr+1, number-1) |
Recifarium | 0:df922596d756 | 920 | Branch Type1 |
Recifarium | 0:df922596d756 | 921 | |
Recifarium | 1:1224cf3799a5 | 922 | Type2 DCD TDrop ; () |
Recifarium | 1:1224cf3799a5 | 923 | DCD Exit |
Recifarium | 0:df922596d756 | 924 | |
Recifarium | 0:df922596d756 | 925 | ;-(UM+)-----------------------------(number,number -- sum,carry) |
Recifarium | 0:df922596d756 | 926 | LUMPlus LINK LType |
Recifarium | 0:df922596d756 | 927 | DCB 3, "UM+" |
Recifarium | 1:1224cf3799a5 | 928 | UMPlus DCD xUMPlus |
Recifarium | 0:df922596d756 | 929 | xUMPlus POP {WRK} |
Recifarium | 0:df922596d756 | 930 | SUBS WRK2, WRK2 |
Recifarium | 0:df922596d756 | 931 | ADDS WRK,WRK,TOS |
Recifarium | 0:df922596d756 | 932 | BCC UMPlus1 |
Recifarium | 0:df922596d756 | 933 | ADDS WRK2, #1 |
Recifarium | 0:df922596d756 | 934 | UMPlus1 MOVS TOS, WRK2 |
Recifarium | 0:df922596d756 | 935 | PUSH {WRK} |
Recifarium | 1:1224cf3799a5 | 936 | Next |
Recifarium | 0:df922596d756 | 937 | |
Recifarium | 0:df922596d756 | 938 | ;-(D+)------------------------------(double,double -- double) |
Recifarium | 0:df922596d756 | 939 | LDPlus LINK LUMPlus |
Recifarium | 0:df922596d756 | 940 | DCB 2, "D+" |
Recifarium | 1:1224cf3799a5 | 941 | DPlus DCD xDPlus |
Recifarium | 0:df922596d756 | 942 | xDPlus POP {WRK} ; low1 |
Recifarium | 0:df922596d756 | 943 | POP {WRK1} ; high2 |
Recifarium | 0:df922596d756 | 944 | POP {WRK2} ; low2 |
Recifarium | 0:df922596d756 | 945 | ADDS WRK, WRK2 ; low1 + low2 |
Recifarium | 0:df922596d756 | 946 | ADCS TOS, WRK1 ; high1+ high2 +carry |
Recifarium | 0:df922596d756 | 947 | PUSH {WRK} |
Recifarium | 1:1224cf3799a5 | 948 | Next |
Recifarium | 0:df922596d756 | 949 | |
Recifarium | 0:df922596d756 | 950 | ;-(D-)------------------------------(double,double -- double) |
Recifarium | 0:df922596d756 | 951 | LDMinus LINK LDPlus |
Recifarium | 1:1224cf3799a5 | 952 | DCB 2, "D-" |
Recifarium | 1:1224cf3799a5 | 953 | DMinus DCD doCol |
Recifarium | 1:1224cf3799a5 | 954 | DCD DNeg, DPlus |
Recifarium | 1:1224cf3799a5 | 955 | DCD Exit |
Recifarium | 0:df922596d756 | 956 | |
Recifarium | 0:df922596d756 | 957 | ;-(DNEGATE)-------------------------(double -- -double) |
Recifarium | 0:df922596d756 | 958 | LDNeg LINK LDMinus |
Recifarium | 1:1224cf3799a5 | 959 | DCB 7, "DNEGATE" |
Recifarium | 1:1224cf3799a5 | 960 | DNeg DCD xDNeg |
Recifarium | 1:1224cf3799a5 | 961 | xDNeg POP {WRK0} |
Recifarium | 1:1224cf3799a5 | 962 | SUBS WRK1, WRK1 |
Recifarium | 1:1224cf3799a5 | 963 | MVNS WRK0, WRK0 |
Recifarium | 1:1224cf3799a5 | 964 | MVNS TOS, TOS |
Recifarium | 1:1224cf3799a5 | 965 | ADDS WRK0, #1 |
Recifarium | 1:1224cf3799a5 | 966 | ADCS TOS, WRK1 |
Recifarium | 1:1224cf3799a5 | 967 | PUSH {WRK0} |
Recifarium | 1:1224cf3799a5 | 968 | Next |
Recifarium | 0:df922596d756 | 969 | |
Recifarium | 0:df922596d756 | 970 | ;-(S>D)-----------------------------(number -- double) |
Recifarium | 0:df922596d756 | 971 | LStoD LINK LDNeg |
Recifarium | 0:df922596d756 | 972 | DCB 3 |
Recifarium | 0:df922596d756 | 973 | DCB "S>D" |
Recifarium | 1:1224cf3799a5 | 974 | StoD DCD xStoD |
Recifarium | 0:df922596d756 | 975 | xStoD PUSH {TOS} |
Recifarium | 1:1224cf3799a5 | 976 | ASRS TOS, #32 ; Extend sign |
Recifarium | 1:1224cf3799a5 | 977 | Next |
Recifarium | 0:df922596d756 | 978 | |
Recifarium | 0:df922596d756 | 979 | ;-(U<)------------------------------(u1, u2 -- flag) |
Recifarium | 0:df922596d756 | 980 | LULess LINK LStoD |
Recifarium | 0:df922596d756 | 981 | DCB 2 |
Recifarium | 0:df922596d756 | 982 | DCB "U<" |
Recifarium | 1:1224cf3799a5 | 983 | ULess DCD doCol |
Recifarium | 1:1224cf3799a5 | 984 | DCD TDup, Xor, IsNeg |
Recifarium | 0:df922596d756 | 985 | ZBranch ULess1 |
Recifarium | 0:df922596d756 | 986 | |
Recifarium | 1:1224cf3799a5 | 987 | DCD Swap, Drop, IsNeg |
Recifarium | 0:df922596d756 | 988 | Branch ULess2 |
Recifarium | 0:df922596d756 | 989 | |
Recifarium | 1:1224cf3799a5 | 990 | ULess1 DCD Minus, IsNeg |
Recifarium | 1:1224cf3799a5 | 991 | ULess2 DCD Exit |
Recifarium | 0:df922596d756 | 992 | |
Recifarium | 0:df922596d756 | 993 | ;-(U/MOD)---------------------------(ud, u -- ur , uq) |
Recifarium | 0:df922596d756 | 994 | LUmod LINK LULess |
Recifarium | 0:df922596d756 | 995 | DCB 6 |
Recifarium | 0:df922596d756 | 996 | DCB "UM/MOD" |
Recifarium | 1:1224cf3799a5 | 997 | UMSMod DCD xUMSMod |
Recifarium | 0:df922596d756 | 998 | ; From Pygmy Forth |
Recifarium | 0:df922596d756 | 999 | ; divide 64 bit r1:r2 by 32 bit TOS |
Recifarium | 0:df922596d756 | 1000 | xUMSMod POP {WRK1} ; Hi reg from ud |
Recifarium | 0:df922596d756 | 1001 | POP {WRK2} ; low reg from ud |
Recifarium | 0:df922596d756 | 1002 | MOVS WRK, #32 ; Loop Index |
Recifarium | 0:df922596d756 | 1003 | USMod1 |
Recifarium | 0:df922596d756 | 1004 | ADDS WRK2, WRK2 |
Recifarium | 0:df922596d756 | 1005 | ADCS WRK1, WRK1 |
Recifarium | 0:df922596d756 | 1006 | CMP WRK1, TOS |
Recifarium | 0:df922596d756 | 1007 | BCC USMod2 |
Recifarium | 0:df922596d756 | 1008 | ADDS WRK2, #1 |
Recifarium | 0:df922596d756 | 1009 | SUBS WRK1, TOS |
Recifarium | 0:df922596d756 | 1010 | USMod2 |
Recifarium | 0:df922596d756 | 1011 | SUBS WRK, #1 |
Recifarium | 0:df922596d756 | 1012 | BNE USMod1 |
Recifarium | 0:df922596d756 | 1013 | PUSH {WRK1} |
Recifarium | 0:df922596d756 | 1014 | MOV TOS, WRK2 |
Recifarium | 1:1224cf3799a5 | 1015 | Next |
Recifarium | 0:df922596d756 | 1016 | |
Recifarium | 0:df922596d756 | 1017 | ;-(LF)------------------------------; : LF 10 EMIT ; |
Recifarium | 0:df922596d756 | 1018 | LLinF LINK LUmod |
Recifarium | 0:df922596d756 | 1019 | DCB 2, "LF" |
Recifarium | 1:1224cf3799a5 | 1020 | Lf DCD doCol |
Recifarium | 1:1224cf3799a5 | 1021 | DCD Ten, Emit |
Recifarium | 1:1224cf3799a5 | 1022 | DCD Exit |
Recifarium | 0:df922596d756 | 1023 | |
Recifarium | 0:df922596d756 | 1024 | ;-(CR)------------------------------; : CR 13 EMIT LF ; |
Recifarium | 0:df922596d756 | 1025 | LCr LINK LLinF |
Recifarium | 0:df922596d756 | 1026 | DCB 2, "CR" |
Recifarium | 1:1224cf3799a5 | 1027 | Cr DCD doCol |
Recifarium | 1:1224cf3799a5 | 1028 | DCD Lit32, 0x0d, Emit, Lf |
Recifarium | 1:1224cf3799a5 | 1029 | DCD Exit |
Recifarium | 0:df922596d756 | 1030 | |
Recifarium | 0:df922596d756 | 1031 | ;-(BL)------------------------------ |
Recifarium | 0:df922596d756 | 1032 | LBl LINK LCr |
Recifarium | 1:1224cf3799a5 | 1033 | DCB 2, "BL" |
Recifarium | 1:1224cf3799a5 | 1034 | Bl DCD xBl |
Recifarium | 0:df922596d756 | 1035 | xBl PUSH {TOS} |
Recifarium | 0:df922596d756 | 1036 | MOVS TOS, #' ' |
Recifarium | 1:1224cf3799a5 | 1037 | Next |
Recifarium | 1:1224cf3799a5 | 1038 | |
Recifarium | 1:1224cf3799a5 | 1039 | ;-(Esc)------------------------------; Escape char |
Recifarium | 1:1224cf3799a5 | 1040 | LEsc LINK LBl |
Recifarium | 1:1224cf3799a5 | 1041 | DCB 3, "ESC" |
Recifarium | 1:1224cf3799a5 | 1042 | Esc DCD doCol |
Recifarium | 1:1224cf3799a5 | 1043 | DCD Lit32, 0x1b, Emit |
Recifarium | 1:1224cf3799a5 | 1044 | DCD Exit |
Recifarium | 0:df922596d756 | 1045 | |
Recifarium | 0:df922596d756 | 1046 | ;-(SPACE)------------------------------ |
Recifarium | 1:1224cf3799a5 | 1047 | LSpace LINK LEsc |
Recifarium | 0:df922596d756 | 1048 | DCB 5,"SPACE" |
Recifarium | 1:1224cf3799a5 | 1049 | Space DCD doCol |
Recifarium | 1:1224cf3799a5 | 1050 | DCD Bl, Emit |
Recifarium | 1:1224cf3799a5 | 1051 | DCD Exit |
Recifarium | 0:df922596d756 | 1052 | |
Recifarium | 0:df922596d756 | 1053 | ;-(SPACES)--------------------------;(n --) |
Recifarium | 0:df922596d756 | 1054 | LSpaces LINK LSpace |
Recifarium | 0:df922596d756 | 1055 | DCB 6,"SPACES" |
Recifarium | 1:1224cf3799a5 | 1056 | Spaces DCD doCol |
Recifarium | 1:1224cf3799a5 | 1057 | Spaces1 DCD DupNZ |
Recifarium | 0:df922596d756 | 1058 | ZBranch Spaces2 |
Recifarium | 1:1224cf3799a5 | 1059 | DCD Space, Minus1 |
Recifarium | 0:df922596d756 | 1060 | Branch Spaces1 |
Recifarium | 1:1224cf3799a5 | 1061 | Spaces2 DCD Exit |
Recifarium | 0:df922596d756 | 1062 | |
Recifarium | 0:df922596d756 | 1063 | ;-(DIGIT)---------------------------;(n -- char) |
Recifarium | 0:df922596d756 | 1064 | LDigit LINK LSpaces |
Recifarium | 0:df922596d756 | 1065 | DCB 5, "DIGIT" |
Recifarium | 1:1224cf3799a5 | 1066 | Digit DCD doCol ; : Digit 9 Over < 7 And + 48 + ; |
Recifarium | 1:1224cf3799a5 | 1067 | DCD Lit32, 9, Over, Lt |
Recifarium | 1:1224cf3799a5 | 1068 | DCD Lit32, 7, And, Plus |
Recifarium | 1:1224cf3799a5 | 1069 | DCD Lit32, '0', Plus |
Recifarium | 1:1224cf3799a5 | 1070 | DCD Exit |
Recifarium | 0:df922596d756 | 1071 | |
Recifarium | 0:df922596d756 | 1072 | ;-(FILL)----------------------------( addr,u,char -- ) |
Recifarium | 0:df922596d756 | 1073 | LFill LINK LDigit |
Recifarium | 0:df922596d756 | 1074 | DCB 4 |
Recifarium | 0:df922596d756 | 1075 | DCB "FILL" |
Recifarium | 1:1224cf3799a5 | 1076 | Fill DCD xFill |
Recifarium | 0:df922596d756 | 1077 | xFill POP {WRK} ; Get u |
Recifarium | 0:df922596d756 | 1078 | POP {WRK2} ; Get addr |
Recifarium | 0:df922596d756 | 1079 | Fill1 CMP WRK, #0 |
Recifarium | 0:df922596d756 | 1080 | BEQ Fill2 ; Finish? |
Recifarium | 0:df922596d756 | 1081 | STRB TOS, [WRK2] ; Put char |
Recifarium | 0:df922596d756 | 1082 | ADDS WRK2, #1 ; addr= addr+1 |
Recifarium | 0:df922596d756 | 1083 | SUBS WRK, #1 ; u = u-1 |
Recifarium | 0:df922596d756 | 1084 | B Fill1 ; One more time |
Recifarium | 0:df922596d756 | 1085 | Fill2 POP {TOS} ; Update TOS |
Recifarium | 1:1224cf3799a5 | 1086 | Next |
Recifarium | 0:df922596d756 | 1087 | |
Recifarium | 0:df922596d756 | 1088 | ;-(CODE:)---------------------------?Future?????????????? |
Recifarium | 0:df922596d756 | 1089 | LBCode LINK LFill |
Recifarium | 0:df922596d756 | 1090 | DCB 5+Cmponly ; CODE: CANNOT be Inline ! |
Recifarium | 1:1224cf3799a5 | 1091 | DCB "CODE:" |
Recifarium | 1:1224cf3799a5 | 1092 | BCode DCD xBCode |
Recifarium | 0:df922596d756 | 1093 | xBCode ADDS IPTR, #1 ; to align at |
Recifarium | 0:df922596d756 | 1094 | LSRS IPTR, IPTR, #1 ; the next halfword |
Recifarium | 0:df922596d756 | 1095 | LSLS IPTR, IPTR, #1 ; boundary |
Recifarium | 0:df922596d756 | 1096 | ADDS IPTR, #1 ; Because of Thumb boundary |
Recifarium | 0:df922596d756 | 1097 | MOV PC, IPTR ; Jump to code itself |
Recifarium | 1:1224cf3799a5 | 1098 | Next |
Recifarium | 0:df922596d756 | 1099 | |
Recifarium | 0:df922596d756 | 1100 | ;-(;CODE)---------------------------?Future?????????????? |
Recifarium | 0:df922596d756 | 1101 | LECode LINK LBCode |
Recifarium | 1:1224cf3799a5 | 1102 | DCB 5+Cmponly ; It MUST be inline ???? |
Recifarium | 0:df922596d756 | 1103 | DCB ";CODE" |
Recifarium | 1:1224cf3799a5 | 1104 | ECode DCD xECode+1 |
Recifarium | 1:1224cf3799a5 | 1105 | xECode BL THere ; Where are we ? Collect address in lr |
Recifarium | 1:1224cf3799a5 | 1106 | THere MOV IPTR, lr ; |
Recifarium | 0:df922596d756 | 1107 | ADDS IPTR, #5 ; To point after the RET |
Recifarium | 1:1224cf3799a5 | 1108 | Next |
Recifarium | 0:df922596d756 | 1109 | |
Recifarium | 1:1224cf3799a5 | 1110 | ;-(TOUPPER)-------------------------(char -- upchar) |
Recifarium | 0:df922596d756 | 1111 | LToupp LINK LECode |
Recifarium | 0:df922596d756 | 1112 | DCB 7 |
Recifarium | 0:df922596d756 | 1113 | DCB "TOUPPER" |
Recifarium | 1:1224cf3799a5 | 1114 | ToUpp DCD xToUpp |
Recifarium | 1:1224cf3799a5 | 1115 | xToUpp CMP TOS, #'a'-1 |
Recifarium | 0:df922596d756 | 1116 | BLE Toupp1 |
Recifarium | 0:df922596d756 | 1117 | CMP TOS, #'z'+1 |
Recifarium | 0:df922596d756 | 1118 | BGE Toupp1 |
Recifarium | 0:df922596d756 | 1119 | SUBS TOS, #'a'-'A' |
Recifarium | 1:1224cf3799a5 | 1120 | Toupp1 Next |
Recifarium | 0:df922596d756 | 1121 | |
Recifarium | 0:df922596d756 | 1122 | ;-(NOOP)----------------------------() |
Recifarium | 0:df922596d756 | 1123 | LNoop LINK LToupp |
Recifarium | 0:df922596d756 | 1124 | DCB 4 |
Recifarium | 1:1224cf3799a5 | 1125 | DCB "NOOP" |
Recifarium | 1:1224cf3799a5 | 1126 | Noop DCD xNoop |
Recifarium | 1:1224cf3799a5 | 1127 | xNoop Next |
Recifarium | 1:1224cf3799a5 | 1128 | |
Recifarium | 0:df922596d756 | 1129 | ;-(UPPER)---------------------------(addr, count --) |
Recifarium | 0:df922596d756 | 1130 | LUpper LINK LNoop |
Recifarium | 0:df922596d756 | 1131 | DCB 5 |
Recifarium | 0:df922596d756 | 1132 | DCB "UPPER" |
Recifarium | 1:1224cf3799a5 | 1133 | Upper DCD xUpper |
Recifarium | 1:1224cf3799a5 | 1134 | xUpper POP {WRK} ; Get addr |
Recifarium | 1:1224cf3799a5 | 1135 | Upper1 CMP TOS, #0 ; count=0? |
Recifarium | 1:1224cf3799a5 | 1136 | BEQ Upper3 ; yes |
Recifarium | 0:df922596d756 | 1137 | LDRB WRK2, [WRK] |
Recifarium | 0:df922596d756 | 1138 | CMP WRK2, #'a'-1 |
Recifarium | 1:1224cf3799a5 | 1139 | BLE Upper2 |
Recifarium | 0:df922596d756 | 1140 | CMP WRK2, #'z'+1 |
Recifarium | 1:1224cf3799a5 | 1141 | BGE Upper2 |
Recifarium | 0:df922596d756 | 1142 | SUBS WRK2, #'a'-'A' |
Recifarium | 0:df922596d756 | 1143 | STRB WRK2, [WRK] |
Recifarium | 1:1224cf3799a5 | 1144 | Upper2 ADDS WRK, #1 |
Recifarium | 0:df922596d756 | 1145 | SUBS TOS, #1 |
Recifarium | 1:1224cf3799a5 | 1146 | B Upper1 |
Recifarium | 1:1224cf3799a5 | 1147 | Upper3 POP {TOS} |
Recifarium | 1:1224cf3799a5 | 1148 | Next |
Recifarium | 1:1224cf3799a5 | 1149 | |
Recifarium | 1:1224cf3799a5 | 1150 | ;xUpper doCol |
Recifarium | 1:1224cf3799a5 | 1151 | ;Upper1 DCB DupNZ ; (addr, count, count) |
Recifarium | 1:1224cf3799a5 | 1152 | ; ZBranch Upper2 |
Recifarium | 1:1224cf3799a5 | 1153 | ; DCB Minus1, ToR |
Recifarium | 1:1224cf3799a5 | 1154 | ; DCB Dup, Dup, CAt |
Recifarium | 1:1224cf3799a5 | 1155 | ; DCB Toupp, Swap, Store |
Recifarium | 1:1224cf3799a5 | 1156 | ; DCB Plus1, FromR |
Recifarium | 1:1224cf3799a5 | 1157 | ; Branch Upper1 |
Recifarium | 1:1224cf3799a5 | 1158 | ;Upper2 DCB TDrop, Exit ; ( ) |
Recifarium | 1:1224cf3799a5 | 1159 | |
Recifarium | 0:df922596d756 | 1160 | |
Recifarium | 0:df922596d756 | 1161 | ;-(FALSE)---------------------------(--Fflag) |
Recifarium | 0:df922596d756 | 1162 | LFalse LINK LUpper |
Recifarium | 0:df922596d756 | 1163 | DCB 5, "FALSE" |
Recifarium | 1:1224cf3799a5 | 1164 | False DCD doCon |
Recifarium | 1:1224cf3799a5 | 1165 | DCD 0 |
Recifarium | 0:df922596d756 | 1166 | |
Recifarium | 0:df922596d756 | 1167 | ;-(TRUE)----------------------------(--Tflag) |
Recifarium | 0:df922596d756 | 1168 | LTrue LINK LFalse |
Recifarium | 0:df922596d756 | 1169 | DCB 4, "TRUE" |
Recifarium | 1:1224cf3799a5 | 1170 | True DCD doCon |
Recifarium | 1:1224cf3799a5 | 1171 | DCD 0xffffffff |
Recifarium | 0:df922596d756 | 1172 | |
Recifarium | 0:df922596d756 | 1173 | ;-(DECIMAL)-------------------------() |
Recifarium | 0:df922596d756 | 1174 | LDecim LINK LTrue |
Recifarium | 1:1224cf3799a5 | 1175 | DCB 7, "DECIMAL" |
Recifarium | 1:1224cf3799a5 | 1176 | Dec DCD xDec |
Recifarium | 1:1224cf3799a5 | 1177 | xDec MOVS WRK2, #10 |
Recifarium | 1:1224cf3799a5 | 1178 | B SetBase |
Recifarium | 0:df922596d756 | 1179 | |
Recifarium | 1:1224cf3799a5 | 1180 | ;-(BINARY)--------------------------() |
Recifarium | 0:df922596d756 | 1181 | LBin LINK LDecim |
Recifarium | 1:1224cf3799a5 | 1182 | DCB 6, "BINARY" |
Recifarium | 1:1224cf3799a5 | 1183 | Bin DCD xBin |
Recifarium | 1:1224cf3799a5 | 1184 | xBin MOVS WRK2, #2 |
Recifarium | 1:1224cf3799a5 | 1185 | B SetBase |
Recifarium | 0:df922596d756 | 1186 | |
Recifarium | 0:df922596d756 | 1187 | ;-(HEX)------------------------------() |
Recifarium | 0:df922596d756 | 1188 | LHex LINK LBin |
Recifarium | 0:df922596d756 | 1189 | DCB 3, "HEX" |
Recifarium | 1:1224cf3799a5 | 1190 | Hex DCD xHex |
Recifarium | 1:1224cf3799a5 | 1191 | xHex MOVS WRK2, #16 |
Recifarium | 1:1224cf3799a5 | 1192 | SetBase LDR WRK1, =VBase |
Recifarium | 1:1224cf3799a5 | 1193 | STR WRK2, [WRK1] |
Recifarium | 1:1224cf3799a5 | 1194 | Next |
Recifarium | 0:df922596d756 | 1195 | |
Recifarium | 0:df922596d756 | 1196 | ;-(HLD)-----------------------------() |
Recifarium | 0:df922596d756 | 1197 | LHld LINK LHex |
Recifarium | 0:df922596d756 | 1198 | DCB 3, "HLD" |
Recifarium | 1:1224cf3799a5 | 1199 | Hld DCD doVar |
Recifarium | 1:1224cf3799a5 | 1200 | DCD AHLD |
Recifarium | 1:1224cf3799a5 | 1201 | |
Recifarium | 0:df922596d756 | 1202 | ;-(<#)------------------------------() |
Recifarium | 0:df922596d756 | 1203 | LStrPic LINK LHld |
Recifarium | 0:df922596d756 | 1204 | DCB 2, "<#" |
Recifarium | 1:1224cf3799a5 | 1205 | StrPic DCD doCol |
Recifarium | 1:1224cf3799a5 | 1206 | DCD Pad , Lit32, 127, Plus |
Recifarium | 1:1224cf3799a5 | 1207 | DCD Hld, Store |
Recifarium | 1:1224cf3799a5 | 1208 | DCD Exit |
Recifarium | 0:df922596d756 | 1209 | |
Recifarium | 0:df922596d756 | 1210 | ;-(HOLD)----------------------------() |
Recifarium | 0:df922596d756 | 1211 | LHold LINK LStrPic |
Recifarium | 0:df922596d756 | 1212 | DCB 4, "HOLD" |
Recifarium | 1:1224cf3799a5 | 1213 | Hold DCD doCol |
Recifarium | 1:1224cf3799a5 | 1214 | DCD Hld, At, Minus1 |
Recifarium | 1:1224cf3799a5 | 1215 | DCD Dup, Hld, Store, CStore |
Recifarium | 1:1224cf3799a5 | 1216 | DCD Exit |
Recifarium | 0:df922596d756 | 1217 | |
Recifarium | 0:df922596d756 | 1218 | ;-(#)------------------------------() |
Recifarium | 0:df922596d756 | 1219 | LNumb LINK LHold |
Recifarium | 0:df922596d756 | 1220 | DCB 1, "#" |
Recifarium | 1:1224cf3799a5 | 1221 | Numb DCD doCol |
Recifarium | 1:1224cf3799a5 | 1222 | DCD Base, At |
Recifarium | 1:1224cf3799a5 | 1223 | DCD Extract |
Recifarium | 1:1224cf3799a5 | 1224 | DCD Hold |
Recifarium | 1:1224cf3799a5 | 1225 | DCD Exit |
Recifarium | 0:df922596d756 | 1226 | |
Recifarium | 0:df922596d756 | 1227 | ;-(#S)------------------------------() |
Recifarium | 0:df922596d756 | 1228 | LNumStr LINK LNumb |
Recifarium | 0:df922596d756 | 1229 | DCB 2, "#S" |
Recifarium | 1:1224cf3799a5 | 1230 | NumStr DCD doCol |
Recifarium | 1:1224cf3799a5 | 1231 | NumStr1 DCD Numb, Dup |
Recifarium | 1:1224cf3799a5 | 1232 | DCD IsNull |
Recifarium | 0:df922596d756 | 1233 | ZBranch NumStr1 |
Recifarium | 1:1224cf3799a5 | 1234 | DCD Exit |
Recifarium | 0:df922596d756 | 1235 | |
Recifarium | 0:df922596d756 | 1236 | ;-(SIGN)----------------------------() |
Recifarium | 0:df922596d756 | 1237 | LSign LINK LNumStr |
Recifarium | 0:df922596d756 | 1238 | DCB 4, "SIGN" |
Recifarium | 1:1224cf3799a5 | 1239 | Sign DCD doCol |
Recifarium | 1:1224cf3799a5 | 1240 | DCD IsNeg |
Recifarium | 0:df922596d756 | 1241 | ZBranch Sign1 |
Recifarium | 1:1224cf3799a5 | 1242 | DCD Lit32, '-', Hold |
Recifarium | 1:1224cf3799a5 | 1243 | Sign1 DCD Exit |
Recifarium | 0:df922596d756 | 1244 | |
Recifarium | 0:df922596d756 | 1245 | ;-(#>)------------------------------() |
Recifarium | 0:df922596d756 | 1246 | LEndPic LINK LSign |
Recifarium | 0:df922596d756 | 1247 | DCB 2, "#>" |
Recifarium | 1:1224cf3799a5 | 1248 | EndPic DCD doCol |
Recifarium | 1:1224cf3799a5 | 1249 | DCD Drop, Hld, At |
Recifarium | 1:1224cf3799a5 | 1250 | DCD Pad, Lit32, 127, Plus |
Recifarium | 1:1224cf3799a5 | 1251 | DCD Over, Minus |
Recifarium | 1:1224cf3799a5 | 1252 | DCD Exit |
Recifarium | 0:df922596d756 | 1253 | |
Recifarium | 0:df922596d756 | 1254 | ;-(STR)-----------------------------() |
Recifarium | 0:df922596d756 | 1255 | LStr LINK LEndPic |
Recifarium | 0:df922596d756 | 1256 | DCB 3, "STR" |
Recifarium | 1:1224cf3799a5 | 1257 | Str DCD doCol |
Recifarium | 1:1224cf3799a5 | 1258 | DCD Dup, ToR, Abs, StrPic |
Recifarium | 1:1224cf3799a5 | 1259 | DCD NumStr, FromR, Sign, EndPic |
Recifarium | 1:1224cf3799a5 | 1260 | DCD Exit |
Recifarium | 0:df922596d756 | 1261 | |
Recifarium | 0:df922596d756 | 1262 | ;-(DotR)----------------------------() |
Recifarium | 0:df922596d756 | 1263 | LDotR LINK LStr |
Recifarium | 0:df922596d756 | 1264 | DCB 2, ".R" |
Recifarium | 1:1224cf3799a5 | 1265 | DotR DCD doCol |
Recifarium | 1:1224cf3799a5 | 1266 | DCD ToR, Str, FromR |
Recifarium | 1:1224cf3799a5 | 1267 | DCD Over, Minus, Spaces |
Recifarium | 1:1224cf3799a5 | 1268 | DCD Type |
Recifarium | 1:1224cf3799a5 | 1269 | DCD Exit |
Recifarium | 0:df922596d756 | 1270 | |
Recifarium | 0:df922596d756 | 1271 | ;-(UdR)----------------------------() |
Recifarium | 0:df922596d756 | 1272 | LUdR LINK LDotR |
Recifarium | 0:df922596d756 | 1273 | DCB 3, "U.R" |
Recifarium | 1:1224cf3799a5 | 1274 | UDotR DCD doCol |
Recifarium | 1:1224cf3799a5 | 1275 | DCD ToR, StrPic, NumStr |
Recifarium | 1:1224cf3799a5 | 1276 | DCD EndPic, FromR, Over |
Recifarium | 1:1224cf3799a5 | 1277 | DCD Minus, Spaces, Type |
Recifarium | 1:1224cf3799a5 | 1278 | DCD Exit |
Recifarium | 0:df922596d756 | 1279 | |
Recifarium | 0:df922596d756 | 1280 | ;-(U.)------------------------------() |
Recifarium | 0:df922596d756 | 1281 | LUDot LINK LUdR |
Recifarium | 0:df922596d756 | 1282 | DCB 2, "U." |
Recifarium | 1:1224cf3799a5 | 1283 | UDot DCD doCol |
Recifarium | 1:1224cf3799a5 | 1284 | DCD StrPic, NumStr, EndPic |
Recifarium | 1:1224cf3799a5 | 1285 | DCD Space, Type |
Recifarium | 1:1224cf3799a5 | 1286 | DCD Exit |
Recifarium | 0:df922596d756 | 1287 | |
Recifarium | 0:df922596d756 | 1288 | ;-(.)------------------------------() |
Recifarium | 0:df922596d756 | 1289 | LDot LINK LUDot |
Recifarium | 0:df922596d756 | 1290 | DCB 1, "." |
Recifarium | 1:1224cf3799a5 | 1291 | Dot DCD doCol |
Recifarium | 1:1224cf3799a5 | 1292 | DCD Base, At, Ten |
Recifarium | 1:1224cf3799a5 | 1293 | DCD Xor |
Recifarium | 0:df922596d756 | 1294 | ZBranch Dot1 |
Recifarium | 1:1224cf3799a5 | 1295 | DCD UDot |
Recifarium | 0:df922596d756 | 1296 | Branch Dot2 |
Recifarium | 1:1224cf3799a5 | 1297 | Dot1 DCD Str, Space, Type |
Recifarium | 1:1224cf3799a5 | 1298 | Dot2 DCD Exit |
Recifarium | 0:df922596d756 | 1299 | |
Recifarium | 0:df922596d756 | 1300 | ;-(.S)------------------------------() |
Recifarium | 0:df922596d756 | 1301 | LDotS LINK LDot |
Recifarium | 0:df922596d756 | 1302 | DCB 2, ".S" |
Recifarium | 1:1224cf3799a5 | 1303 | DotS DCD doCol |
Recifarium | 1:1224cf3799a5 | 1304 | DCD Depth ; (depth) |
Recifarium | 1:1224cf3799a5 | 1305 | DCD Sp0, Lit32,8, Minus ; (depth, Sp) |
Recifarium | 1:1224cf3799a5 | 1306 | DCD Swap ; (Sp, depth) |
Recifarium | 1:1224cf3799a5 | 1307 | DCD Dup ; (Sp, depth, depth) |
Recifarium | 1:1224cf3799a5 | 1308 | ZBranch DotS3 ; Stack empty at the beginning |
Recifarium | 1:1224cf3799a5 | 1309 | DotS1 DCD DupNZ ; (Sp, depth, depth) |
Recifarium | 1:1224cf3799a5 | 1310 | ZBranch DotS4 ; No more in stack |
Recifarium | 1:1224cf3799a5 | 1311 | ; (Sp, depth) |
Recifarium | 1:1224cf3799a5 | 1312 | DotS2 DCD Swap, Dup, At ; (Depth,Sp,@Sp) |
Recifarium | 1:1224cf3799a5 | 1313 | DCD Dot, Cr ; (Depth,Sp) |
Recifarium | 1:1224cf3799a5 | 1314 | DCD Lit32, 4, Minus ; (Depth,Sp-4) |
Recifarium | 1:1224cf3799a5 | 1315 | DCD Swap, Minus1 ; (Sp-4,Depth-1) |
Recifarium | 1:1224cf3799a5 | 1316 | Branch DotS1 ; next item |
Recifarium | 0:df922596d756 | 1317 | |
Recifarium | 1:1224cf3799a5 | 1318 | DotS3 DCD Drop |
Recifarium | 1:1224cf3799a5 | 1319 | DCD Lit32 |
Recifarium | 1:1224cf3799a5 | 1320 | DCD Mess6 ; Stack empty |
Recifarium | 1:1224cf3799a5 | 1321 | DCD Count, Type |
Recifarium | 1:1224cf3799a5 | 1322 | DotS4 DCD Drop ; () |
Recifarium | 1:1224cf3799a5 | 1323 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1324 | |
Recifarium | 0:df922596d756 | 1325 | |
Recifarium | 0:df922596d756 | 1326 | ;(C,)-------------------------------(char--) |
Recifarium | 0:df922596d756 | 1327 | LCComa LINK LDotS |
Recifarium | 0:df922596d756 | 1328 | DCB 2, "C," |
Recifarium | 1:1224cf3799a5 | 1329 | CComa DCD doCol |
Recifarium | 1:1224cf3799a5 | 1330 | ;............................... |
Recifarium | 1:1224cf3799a5 | 1331 | DCD Exit |
Recifarium | 0:df922596d756 | 1332 | |
Recifarium | 0:df922596d756 | 1333 | ;(H,)-------------------------------(halfword--) |
Recifarium | 0:df922596d756 | 1334 | LHComa LINK LCComa |
Recifarium | 0:df922596d756 | 1335 | DCB 2, "H," |
Recifarium | 1:1224cf3799a5 | 1336 | HComa DCD doCol |
Recifarium | 1:1224cf3799a5 | 1337 | DCD Lit32 |
Recifarium | 0:df922596d756 | 1338 | DCD Transit |
Recifarium | 1:1224cf3799a5 | 1339 | DCD Dup, MRot |
Recifarium | 1:1224cf3799a5 | 1340 | ; DCD Hstore |
Recifarium | 1:1224cf3799a5 | 1341 | ; DCD Dup, At, CComa |
Recifarium | 1:1224cf3799a5 | 1342 | ; DCD PlusOne, At, CComa |
Recifarium | 1:1224cf3799a5 | 1343 | DCD Exit |
Recifarium | 0:df922596d756 | 1344 | |
Recifarium | 0:df922596d756 | 1345 | ;(,)--------------------------------(word--) |
Recifarium | 0:df922596d756 | 1346 | LComa LINK LHComa |
Recifarium | 0:df922596d756 | 1347 | DCB 1, "," |
Recifarium | 1:1224cf3799a5 | 1348 | Coma DCD doCol |
Recifarium | 1:1224cf3799a5 | 1349 | DCD Lit32 |
Recifarium | 0:df922596d756 | 1350 | DCD Transit |
Recifarium | 1:1224cf3799a5 | 1351 | DCD Dup, MRot ;(TRansaddr, word, Transaddr) |
Recifarium | 1:1224cf3799a5 | 1352 | DCD Store ;(Transaddr) |
Recifarium | 1:1224cf3799a5 | 1353 | ; DCD Dup, At, HComa |
Recifarium | 1:1224cf3799a5 | 1354 | ; DCD TwoPlus, At, HComa |
Recifarium | 1:1224cf3799a5 | 1355 | DCD Exit |
Recifarium | 0:df922596d756 | 1356 | |
Recifarium | 0:df922596d756 | 1357 | ;(>IN)------------------------------(--address) |
Recifarium | 0:df922596d756 | 1358 | LtoIn LINK LComa |
Recifarium | 0:df922596d756 | 1359 | DCB 3, ">IN" |
Recifarium | 1:1224cf3799a5 | 1360 | toIn DCD doVar |
Recifarium | 1:1224cf3799a5 | 1361 | DCD AtoIn |
Recifarium | 0:df922596d756 | 1362 | |
Recifarium | 0:df922596d756 | 1363 | ;(PAD)-----------------------------(--address) |
Recifarium | 0:df922596d756 | 1364 | LPad LINK LtoIn |
Recifarium | 0:df922596d756 | 1365 | DCB 3, "PAD" |
Recifarium | 1:1224cf3799a5 | 1366 | Pad DCD doVar |
Recifarium | 1:1224cf3799a5 | 1367 | DCD APAD |
Recifarium | 1:1224cf3799a5 | 1368 | |
Recifarium | 0:df922596d756 | 1369 | ;(#TIB)-----------------------------(--address) |
Recifarium | 0:df922596d756 | 1370 | LnTib LINK LPad |
Recifarium | 0:df922596d756 | 1371 | DCB 4, "#TIB" |
Recifarium | 1:1224cf3799a5 | 1372 | nTib DCD doVar |
Recifarium | 1:1224cf3799a5 | 1373 | DCD AnTib |
Recifarium | 0:df922596d756 | 1374 | LTORG |
Recifarium | 1:1224cf3799a5 | 1375 | |
Recifarium | 0:df922596d756 | 1376 | ;(RS0)------------------------------ Headerless |
Recifarium | 1:1224cf3799a5 | 1377 | RS0 DCD xRS0 |
Recifarium | 0:df922596d756 | 1378 | xRS0 LDR RPTR, =Begin |
Recifarium | 1:1224cf3799a5 | 1379 | Next |
Recifarium | 0:df922596d756 | 1380 | |
Recifarium | 0:df922596d756 | 1381 | ;(QUIT)-----------------------------(word--) |
Recifarium | 0:df922596d756 | 1382 | LQuit LINK LnTib |
Recifarium | 0:df922596d756 | 1383 | DCB 4, "QUIT" |
Recifarium | 1:1224cf3799a5 | 1384 | Quit DCD doCol |
Recifarium | 1:1224cf3799a5 | 1385 | DCD Lit32 |
Recifarium | 0:df922596d756 | 1386 | DCD Begin ; Set RPTR Return Stack Pointer to |
Recifarium | 1:1224cf3799a5 | 1387 | DCD RS0 ; beginning of RAM |
Recifarium | 1:1224cf3799a5 | 1388 | DCD False, State, Store ; Set Interpret Mode |
Recifarium | 0:df922596d756 | 1389 | ; ........... |
Recifarium | 1:1224cf3799a5 | 1390 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1391 | LTORG |
Recifarium | 0:df922596d756 | 1392 | ;(ABORT)----------------------------(word--) |
Recifarium | 0:df922596d756 | 1393 | LAbort LINK LQuit |
Recifarium | 0:df922596d756 | 1394 | DCB 5, "ABORT" |
Recifarium | 0:df922596d756 | 1395 | ;................... |
Recifarium | 1:1224cf3799a5 | 1396 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1397 | |
Recifarium | 1:1224cf3799a5 | 1398 | ;(>NUMBER)--------------------------( u11 c-addr1 u12 -- u21 c-addr2 u22 ) |
Recifarium | 1:1224cf3799a5 | 1399 | LTNumber LINK LAbort |
Recifarium | 1:1224cf3799a5 | 1400 | DCB 7, ">NUMBER" |
Recifarium | 1:1224cf3799a5 | 1401 | TNbr DCD doCol |
Recifarium | 1:1224cf3799a5 | 1402 | ; DCD DotS ; (0,addr, n) Debug |
Recifarium | 1:1224cf3799a5 | 1403 | DCD ToR ; (0,addr R:n) |
Recifarium | 1:1224cf3799a5 | 1404 | DCD Dup, CAt ; (0,addr, char R:n) |
Recifarium | 1:1224cf3799a5 | 1405 | DCD Dup ; (0,addr, char, char R:n) |
Recifarium | 1:1224cf3799a5 | 1406 | DCD Lit32, '-' |
Recifarium | 1:1224cf3799a5 | 1407 | DCD Eq |
Recifarium | 1:1224cf3799a5 | 1408 | ZBranch TNumbr1 |
Recifarium | 1:1224cf3799a5 | 1409 | |
Recifarium | 1:1224cf3799a5 | 1410 | DCD Lit32, -1, MRot |
Recifarium | 1:1224cf3799a5 | 1411 | ; DCD DotS |
Recifarium | 1:1224cf3799a5 | 1412 | DCD FromR, Minus1,ToR ; (0,-1, addr, char R: n-1) |
Recifarium | 1:1224cf3799a5 | 1413 | DCD Drop, Plus1 |
Recifarium | 1:1224cf3799a5 | 1414 | DCD Dup, CAt ; (0,-1, addr+1, char R: n-1) |
Recifarium | 1:1224cf3799a5 | 1415 | ; DCD DotS |
Recifarium | 1:1224cf3799a5 | 1416 | Branch TNumbr2 |
Recifarium | 0:df922596d756 | 1417 | |
Recifarium | 1:1224cf3799a5 | 1418 | TNumbr1 DCD Lit32, 1, MRot ; (0,1, addr, char R:n) |
Recifarium | 1:1224cf3799a5 | 1419 | |
Recifarium | 1:1224cf3799a5 | 1420 | TNumbr2 DCD ToR, ToR, Swap |
Recifarium | 1:1224cf3799a5 | 1421 | DCD FromR, FromR |
Recifarium | 1:1224cf3799a5 | 1422 | TNumbr3 DCD Base, At, isDigit ; (-1|1, cumul, addr, u,f R:n ) |
Recifarium | 1:1224cf3799a5 | 1423 | ZBranch TNumbr4 ; It's not a number |
Recifarium | 1:1224cf3799a5 | 1424 | |
Recifarium | 1:1224cf3799a5 | 1425 | DCD Rot, Base, At, Mul ; |
Recifarium | 1:1224cf3799a5 | 1426 | DCD Plus, Swap ; (-1|1, cumul, addr R:n ) |
Recifarium | 1:1224cf3799a5 | 1427 | DCD FromR, Minus1 |
Recifarium | 1:1224cf3799a5 | 1428 | DCD DupNZ |
Recifarium | 1:1224cf3799a5 | 1429 | ZBranch TNumbr5 |
Recifarium | 1:1224cf3799a5 | 1430 | |
Recifarium | 1:1224cf3799a5 | 1431 | DCD ToR, Plus1, Dup, CAt |
Recifarium | 1:1224cf3799a5 | 1432 | Branch TNumbr3 |
Recifarium | 1:1224cf3799a5 | 1433 | |
Recifarium | 1:1224cf3799a5 | 1434 | TNumbr4 DCD Drop, MRot, TDrop |
Recifarium | 1:1224cf3799a5 | 1435 | DCD FromR, False |
Recifarium | 1:1224cf3799a5 | 1436 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1437 | |
Recifarium | 1:1224cf3799a5 | 1438 | TNumbr5 DCD Drop, Mul, True ; |
Recifarium | 1:1224cf3799a5 | 1439 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1440 | |
Recifarium | 1:1224cf3799a5 | 1441 | ;(INTERPRET)------------------------(word--) Still to be cleaned |
Recifarium | 1:1224cf3799a5 | 1442 | LInterp LINK LTNumber |
Recifarium | 0:df922596d756 | 1443 | DCB 9, "INTERPRET" |
Recifarium | 1:1224cf3799a5 | 1444 | Inter DCD doCol |
Recifarium | 1:1224cf3799a5 | 1445 | Interp DCD nTib, At ; Get # of char entered |
Recifarium | 1:1224cf3799a5 | 1446 | DCD toIn, At ; Get # of char processed |
Recifarium | 1:1224cf3799a5 | 1447 | DCD Eq |
Recifarium | 0:df922596d756 | 1448 | ZBranch Intrp5 ; Still some char to process |
Recifarium | 0:df922596d756 | 1449 | Intrp2 |
Recifarium | 1:1224cf3799a5 | 1450 | DCD Lit32 |
Recifarium | 1:1224cf3799a5 | 1451 | DCD Mess4 |
Recifarium | 1:1224cf3799a5 | 1452 | DCD Count, Type |
Recifarium | 1:1224cf3799a5 | 1453 | ; DCD Lit32, '>', Emit ; Prompt |
Recifarium | 1:1224cf3799a5 | 1454 | DCD Lit32 |
Recifarium | 0:df922596d756 | 1455 | DCD TIB |
Recifarium | 1:1224cf3799a5 | 1456 | DCD Lit32, 50, Accept ; Refill with a new line |
Recifarium | 1:1224cf3799a5 | 1457 | ; DCD DotS ; Debug <<<<<<<<<<<<<<< |
Recifarium | 1:1224cf3799a5 | 1458 | DCD Dup, Zero, Eq ; Is it a null line? |
Recifarium | 0:df922596d756 | 1459 | ZBranch Intrp4 ; No |
Recifarium | 0:df922596d756 | 1460 | Intrp3 |
Recifarium | 1:1224cf3799a5 | 1461 | DCD Drop ; Discard length |
Recifarium | 0:df922596d756 | 1462 | Branch Intrp2 ; and retry |
Recifarium | 0:df922596d756 | 1463 | Intrp4 |
Recifarium | 1:1224cf3799a5 | 1464 | DCD Lit32, AnTib, Store ; Update #TIB |
Recifarium | 1:1224cf3799a5 | 1465 | DCD Zero, toIn, Store ; Point to the beginning |
Recifarium | 0:df922596d756 | 1466 | Intrp5 |
Recifarium | 1:1224cf3799a5 | 1467 | DCD Bl ; space is the separator |
Recifarium | 1:1224cf3799a5 | 1468 | DCD Word ; Try to find a WORD |
Recifarium | 1:1224cf3799a5 | 1469 | DCD Dup, CAt ; Get length |
Recifarium | 1:1224cf3799a5 | 1470 | DCD Zero, Eq, Not ; Not a blank line? |
Recifarium | 1:1224cf3799a5 | 1471 | ZBranch Intrp3 ; no! get new one |
Recifarium | 1:1224cf3799a5 | 1472 | ; here we have a string ! |
Recifarium | 1:1224cf3799a5 | 1473 | DCD Dup, Count |
Recifarium | 1:1224cf3799a5 | 1474 | DCD Upper ; Convert to uppercase |
Recifarium | 1:1224cf3799a5 | 1475 | DCD Find ; try to find it in dictionary |
Recifarium | 1:1224cf3799a5 | 1476 | DCD Dup ; Duplicate flag from Find: 0 mean not found |
Recifarium | 1:1224cf3799a5 | 1477 | ZBranch Intrp8 ; Not a Word may be a number |
Recifarium | 1:1224cf3799a5 | 1478 | ; It's in dictionary |
Recifarium | 1:1224cf3799a5 | 1479 | DCD Dup |
Recifarium | 1:1224cf3799a5 | 1480 | DCD Lit32, 1, Eq ; Immed? |
Recifarium | 1:1224cf3799a5 | 1481 | ZBranch Intrp6 |
Recifarium | 0:df922596d756 | 1482 | |
Recifarium | 1:1224cf3799a5 | 1483 | DCD DotS, Key, Drop ; Debug <<<<<<<<<<<<<<< |
Recifarium | 1:1224cf3799a5 | 1484 | DCD State, At |
Recifarium | 1:1224cf3799a5 | 1485 | DCD Eq ; Are we compiling? |
Recifarium | 1:1224cf3799a5 | 1486 | ZBranch Intrp7 ; if not execute it |
Recifarium | 0:df922596d756 | 1487 | ; |
Recifarium | 0:df922596d756 | 1488 | ; compile |
Recifarium | 1:1224cf3799a5 | 1489 | DCD Lit32, Mess7 |
Recifarium | 1:1224cf3799a5 | 1490 | DCD Count, Type |
Recifarium | 1:1224cf3799a5 | 1491 | DCD Dot, Cr |
Recifarium | 1:1224cf3799a5 | 1492 | DCD Key, Drop |
Recifarium | 0:df922596d756 | 1493 | Branch Intrp10 |
Recifarium | 1:1224cf3799a5 | 1494 | Intrp6 |
Recifarium | 1:1224cf3799a5 | 1495 | DCD Drop |
Recifarium | 1:1224cf3799a5 | 1496 | Intrp7 |
Recifarium | 1:1224cf3799a5 | 1497 | DCD Execute ; Do the job and continue |
Recifarium | 1:1224cf3799a5 | 1498 | Branch Interp |
Recifarium | 1:1224cf3799a5 | 1499 | Intrp8 ; Try to convert as a number |
Recifarium | 1:1224cf3799a5 | 1500 | DCD Swap, Count |
Recifarium | 1:1224cf3799a5 | 1501 | DCD TNbr |
Recifarium | 1:1224cf3799a5 | 1502 | ZBranch Intrp11 |
Recifarium | 1:1224cf3799a5 | 1503 | |
Recifarium | 0:df922596d756 | 1504 | Intrp10 |
Recifarium | 0:df922596d756 | 1505 | Branch Interp |
Recifarium | 1:1224cf3799a5 | 1506 | Intrp11 |
Recifarium | 1:1224cf3799a5 | 1507 | DCD Type, Bl, Emit |
Recifarium | 1:1224cf3799a5 | 1508 | DCD Lit32 |
Recifarium | 1:1224cf3799a5 | 1509 | DCD Mess3 |
Recifarium | 1:1224cf3799a5 | 1510 | DCD Count, Type, Cr |
Recifarium | 1:1224cf3799a5 | 1511 | Branch Interp |
Recifarium | 1:1224cf3799a5 | 1512 | |
Recifarium | 0:df922596d756 | 1513 | |
Recifarium | 0:df922596d756 | 1514 | ;(CallR0)---------------------------(word--) |
Recifarium | 0:df922596d756 | 1515 | LCallR0 LINK LInterp |
Recifarium | 0:df922596d756 | 1516 | DCB 6 |
Recifarium | 0:df922596d756 | 1517 | DCB "CallR0" |
Recifarium | 1:1224cf3799a5 | 1518 | CallR0 DCD doCol |
Recifarium | 0:df922596d756 | 1519 | ;...............; |
Recifarium | 0:df922596d756 | 1520 | |
Recifarium | 1:1224cf3799a5 | 1521 | DCD Exit |
Recifarium | 0:df922596d756 | 1522 | |
Recifarium | 1:1224cf3799a5 | 1523 | ;(DIGIT?)---------------------------(char, base --u,f) |
Recifarium | 0:df922596d756 | 1524 | LisDigit LINK LCallR0 |
Recifarium | 0:df922596d756 | 1525 | DCB 6, "DIGIT?" |
Recifarium | 1:1224cf3799a5 | 1526 | isDigit DCD doCol |
Recifarium | 1:1224cf3799a5 | 1527 | DCD ToR ;(char) |
Recifarium | 1:1224cf3799a5 | 1528 | DCD Lit32, '0', Minus ;(num) |
Recifarium | 1:1224cf3799a5 | 1529 | DCD Dup ;(num,num) |
Recifarium | 1:1224cf3799a5 | 1530 | DCD Lit32, 9, Gt ;(num, flag) |
Recifarium | 0:df922596d756 | 1531 | ZBranch isDigit1 |
Recifarium | 1:1224cf3799a5 | 1532 | |
Recifarium | 1:1224cf3799a5 | 1533 | DCD Lit32, ('A'-'9'-1) |
Recifarium | 1:1224cf3799a5 | 1534 | DCD Minus |
Recifarium | 0:df922596d756 | 1535 | isDigit1 ;(num) |
Recifarium | 1:1224cf3799a5 | 1536 | DCD Dup, FromR, ULess |
Recifarium | 1:1224cf3799a5 | 1537 | DCD Exit |
Recifarium | 0:df922596d756 | 1538 | |
Recifarium | 0:df922596d756 | 1539 | ;(CHAR)-----------------------------( -- char) |
Recifarium | 0:df922596d756 | 1540 | LChar LINK LisDigit |
Recifarium | 0:df922596d756 | 1541 | DCB 4, "CHAR" |
Recifarium | 1:1224cf3799a5 | 1542 | Char DCD doCol |
Recifarium | 1:1224cf3799a5 | 1543 | DCD Bl, Word, Plus1, CAt |
Recifarium | 1:1224cf3799a5 | 1544 | DCD Exit |
Recifarium | 0:df922596d756 | 1545 | |
Recifarium | 1:1224cf3799a5 | 1546 | ;(EXTRACT)--------------------------( n base -- n c) |
Recifarium | 0:df922596d756 | 1547 | LExtract LINK LChar |
Recifarium | 0:df922596d756 | 1548 | DCB 7, "EXTRACT" |
Recifarium | 1:1224cf3799a5 | 1549 | Extract DCD doCol |
Recifarium | 1:1224cf3799a5 | 1550 | DCD Zero, Swap, UMSMod, Swap, Digit |
Recifarium | 1:1224cf3799a5 | 1551 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1552 | |
Recifarium | 0:df922596d756 | 1553 | ;(')--------------------------------( -- address) |
Recifarium | 0:df922596d756 | 1554 | LTick LINK LExtract |
Recifarium | 0:df922596d756 | 1555 | DCB 1, "'" |
Recifarium | 1:1224cf3799a5 | 1556 | Tick DCD doCol |
Recifarium | 1:1224cf3799a5 | 1557 | DCD Bl, Word |
Recifarium | 1:1224cf3799a5 | 1558 | DCD Dup, Count, Upper |
Recifarium | 1:1224cf3799a5 | 1559 | DCD Find, Not |
Recifarium | 0:df922596d756 | 1560 | ZBranch Tick1 |
Recifarium | 1:1224cf3799a5 | 1561 | |
Recifarium | 1:1224cf3799a5 | 1562 | DCD Count, Type, Bl, Emit |
Recifarium | 1:1224cf3799a5 | 1563 | DCD Lit32 |
Recifarium | 0:df922596d756 | 1564 | DCD Mess3 |
Recifarium | 1:1224cf3799a5 | 1565 | DCD Count, Type, Cr |
Recifarium | 1:1224cf3799a5 | 1566 | Tick1 DCD Exit |
Recifarium | 0:df922596d756 | 1567 | |
Recifarium | 0:df922596d756 | 1568 | ;( ( )------------------------------( -- ) |
Recifarium | 0:df922596d756 | 1569 | LParan LINK LTick |
Recifarium | 0:df922596d756 | 1570 | DCB 1, "(" |
Recifarium | 1:1224cf3799a5 | 1571 | Paran DCD doCol |
Recifarium | 1:1224cf3799a5 | 1572 | DCD Lit32, ')' , Word |
Recifarium | 1:1224cf3799a5 | 1573 | DCD Drop |
Recifarium | 1:1224cf3799a5 | 1574 | DCD Exit |
Recifarium | 0:df922596d756 | 1575 | |
Recifarium | 0:df922596d756 | 1576 | ;(M/MOD)----------------------------( d, n -- r, q) |
Recifarium | 0:df922596d756 | 1577 | LMSMod LINK LParan |
Recifarium | 0:df922596d756 | 1578 | DCB 5, "M/MOD" |
Recifarium | 1:1224cf3799a5 | 1579 | MSMod DCD doCol |
Recifarium | 1:1224cf3799a5 | 1580 | DCD Dup, IsNeg, Dup, ToR |
Recifarium | 0:df922596d756 | 1581 | ZBranch UMSMod1 |
Recifarium | 0:df922596d756 | 1582 | |
Recifarium | 1:1224cf3799a5 | 1583 | DCD Neg, ToR, DNeg, FromR |
Recifarium | 1:1224cf3799a5 | 1584 | UMSMod1 DCD ToR, Dup, IsNeg |
Recifarium | 0:df922596d756 | 1585 | ZBranch UMSMod2 |
Recifarium | 0:df922596d756 | 1586 | |
Recifarium | 1:1224cf3799a5 | 1587 | DCD RAt, Plus |
Recifarium | 1:1224cf3799a5 | 1588 | UMSMod2 DCD FromR, UMSMod, FromR |
Recifarium | 0:df922596d756 | 1589 | ZBranch UMSMod3 |
Recifarium | 0:df922596d756 | 1590 | |
Recifarium | 1:1224cf3799a5 | 1591 | DCD Swap, Neg, Swap |
Recifarium | 1:1224cf3799a5 | 1592 | UMSMod3 DCD Exit |
Recifarium | 0:df922596d756 | 1593 | |
Recifarium | 0:df922596d756 | 1594 | ;( /MOD )---------------------------( n, n -- r, q) |
Recifarium | 0:df922596d756 | 1595 | LSMod LINK LMSMod |
Recifarium | 0:df922596d756 | 1596 | DCB 4, "/MOD" |
Recifarium | 1:1224cf3799a5 | 1597 | SMod DCD doCol |
Recifarium | 1:1224cf3799a5 | 1598 | DCD Over, IsNeg, Swap, MSMod |
Recifarium | 1:1224cf3799a5 | 1599 | DCD Exit |
Recifarium | 0:df922596d756 | 1600 | LTORG |
Recifarium | 0:df922596d756 | 1601 | |
Recifarium | 0:df922596d756 | 1602 | ;( MOD )----------------------------(n, n -- r ) |
Recifarium | 0:df922596d756 | 1603 | LMod LINK LSMod |
Recifarium | 0:df922596d756 | 1604 | DCB 3, "MOD" |
Recifarium | 1:1224cf3799a5 | 1605 | Mod DCD doCol |
Recifarium | 1:1224cf3799a5 | 1606 | DCD SMod, Drop |
Recifarium | 1:1224cf3799a5 | 1607 | DCD Exit |
Recifarium | 0:df922596d756 | 1608 | |
Recifarium | 1:1224cf3799a5 | 1609 | ;( / )------------------------------( n, n -- q ) |
Recifarium | 0:df922596d756 | 1610 | LDiv LINK LMod |
Recifarium | 0:df922596d756 | 1611 | DCB 1, "/" |
Recifarium | 1:1224cf3799a5 | 1612 | Div DCD doCol |
Recifarium | 1:1224cf3799a5 | 1613 | DCD SMod, Swap, Drop |
Recifarium | 1:1224cf3799a5 | 1614 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1615 | |
Recifarium | 1:1224cf3799a5 | 1616 | ;( [ )------------------------------( ) |
Recifarium | 1:1224cf3799a5 | 1617 | LOBrtk LINK LDiv |
Recifarium | 1:1224cf3799a5 | 1618 | DCB 1, "[" |
Recifarium | 1:1224cf3799a5 | 1619 | OBrtk DCD doCol |
Recifarium | 1:1224cf3799a5 | 1620 | DCD False, State, Store ; Set to Interpret mode |
Recifarium | 1:1224cf3799a5 | 1621 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1622 | |
Recifarium | 1:1224cf3799a5 | 1623 | ;( ] )------------------------------( ) |
Recifarium | 1:1224cf3799a5 | 1624 | LCBrtk LINK LOBrtk |
Recifarium | 1:1224cf3799a5 | 1625 | DCB 1, "]" |
Recifarium | 1:1224cf3799a5 | 1626 | CBrtk DCD doCol |
Recifarium | 1:1224cf3799a5 | 1627 | DCD True, State, Store ; Set to Compile mode |
Recifarium | 1:1224cf3799a5 | 1628 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1629 | LTORG |
Recifarium | 0:df922596d756 | 1630 | |
Recifarium | 1:1224cf3799a5 | 1631 | ;( DMP )---------------------------(addr-- ) |
Recifarium | 1:1224cf3799a5 | 1632 | LDump LINK LCBrtk |
Recifarium | 1:1224cf3799a5 | 1633 | DCB 3,"DMP" |
Recifarium | 1:1224cf3799a5 | 1634 | Dump DCD doCol |
Recifarium | 1:1224cf3799a5 | 1635 | DCD Base, At, ToR ;(addr R:oldbase) |
Recifarium | 1:1224cf3799a5 | 1636 | DCD Hex |
Recifarium | 1:1224cf3799a5 | 1637 | DCD Lit32, -4, And ; word align |
Recifarium | 1:1224cf3799a5 | 1638 | Dump2 DCD Dup,Lit32,9,DotR |
Recifarium | 1:1224cf3799a5 | 1639 | DCD Dup, At ;(addr,word R:oldbase) |
Recifarium | 1:1224cf3799a5 | 1640 | DCD StrPic, Numb, Numb |
Recifarium | 1:1224cf3799a5 | 1641 | DCD Numb, Numb |
Recifarium | 1:1224cf3799a5 | 1642 | DCD Numb, Numb |
Recifarium | 1:1224cf3799a5 | 1643 | DCD Numb, Numb, EndPic |
Recifarium | 1:1224cf3799a5 | 1644 | DCD Space, Type, Cr |
Recifarium | 1:1224cf3799a5 | 1645 | DCD Key |
Recifarium | 1:1224cf3799a5 | 1646 | DCD Lit32,0x1b, Eq, Not ; Esc key ? |
Recifarium | 1:1224cf3799a5 | 1647 | ZBranch Dump3 |
Recifarium | 1:1224cf3799a5 | 1648 | DCD Cell, Plus |
Recifarium | 1:1224cf3799a5 | 1649 | Branch Dump2 |
Recifarium | 1:1224cf3799a5 | 1650 | Dump3 DCD Drop |
Recifarium | 1:1224cf3799a5 | 1651 | DCD FromR, Base, Store |
Recifarium | 1:1224cf3799a5 | 1652 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1653 | |
Recifarium | 1:1224cf3799a5 | 1654 | ;( ALIGNED )---------------------------(addr -- w.addr) |
Recifarium | 1:1224cf3799a5 | 1655 | LAligned LINK LDump |
Recifarium | 1:1224cf3799a5 | 1656 | DCB 7,"ALIGNED" |
Recifarium | 1:1224cf3799a5 | 1657 | Aligned DCD xAligned |
Recifarium | 1:1224cf3799a5 | 1658 | xAligned ADDS TOS, #3 |
Recifarium | 1:1224cf3799a5 | 1659 | LSRS TOS, #2 |
Recifarium | 1:1224cf3799a5 | 1660 | LSLS TOS, #2 |
Recifarium | 1:1224cf3799a5 | 1661 | Next |
Recifarium | 1:1224cf3799a5 | 1662 | |
Recifarium | 1:1224cf3799a5 | 1663 | ;( ALIGN )---------------------------( -- ) |
Recifarium | 1:1224cf3799a5 | 1664 | LAlign LINK LAligned |
Recifarium | 1:1224cf3799a5 | 1665 | DCB 5,"ALIGN" |
Recifarium | 1:1224cf3799a5 | 1666 | Align DCD doCol |
Recifarium | 1:1224cf3799a5 | 1667 | DCD Here, Dup, At, Aligned |
Recifarium | 1:1224cf3799a5 | 1668 | DCD Store |
Recifarium | 1:1224cf3799a5 | 1669 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1670 | |
Recifarium | 1:1224cf3799a5 | 1671 | ;( CREATE )---------------------------( -- ) |
Recifarium | 1:1224cf3799a5 | 1672 | LCreate LINK LAlign |
Recifarium | 1:1224cf3799a5 | 1673 | DCB 6,"CREATE" |
Recifarium | 1:1224cf3799a5 | 1674 | Create DCD doCol |
Recifarium | 1:1224cf3799a5 | 1675 | DCD Align, Here, Latest |
Recifarium | 1:1224cf3799a5 | 1676 | DCD Comma |
Recifarium | 1:1224cf3799a5 | 1677 | DCD Bl, Word |
Recifarium | 1:1224cf3799a5 | 1678 | DCD DotS |
Recifarium | 1:1224cf3799a5 | 1679 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1680 | |
Recifarium | 1:1224cf3799a5 | 1681 | Mess8 DCB 9,"Creating " |
Recifarium | 1:1224cf3799a5 | 1682 | ;( FLASH )---------------------------( -- ) |
Recifarium | 1:1224cf3799a5 | 1683 | LFlash LINK LCreate |
Recifarium | 1:1224cf3799a5 | 1684 | DCB 5,"FLASH" |
Recifarium | 1:1224cf3799a5 | 1685 | Flash DCD doCol |
Recifarium | 0:df922596d756 | 1686 | |
Recifarium | 1:1224cf3799a5 | 1687 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1688 | |
Recifarium | 1:1224cf3799a5 | 1689 | ;( RAM )---------------------------( -- ) |
Recifarium | 1:1224cf3799a5 | 1690 | LRam LINK LFlash |
Recifarium | 1:1224cf3799a5 | 1691 | DCB 3,"RAM" |
Recifarium | 1:1224cf3799a5 | 1692 | Ram DCD doCol |
Recifarium | 1:1224cf3799a5 | 1693 | DCD Here, At |
Recifarium | 1:1224cf3799a5 | 1694 | DCD CHere, Store |
Recifarium | 1:1224cf3799a5 | 1695 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1696 | |
Recifarium | 1:1224cf3799a5 | 1697 | ;( : )---------------------------( -- ) |
Recifarium | 1:1224cf3799a5 | 1698 | LColon LINK LRam |
Recifarium | 1:1224cf3799a5 | 1699 | DCB 1+Immed,":" |
Recifarium | 1:1224cf3799a5 | 1700 | Colon DCD doCol |
Recifarium | 1:1224cf3799a5 | 1701 | DCD Create |
Recifarium | 1:1224cf3799a5 | 1702 | DCD CBrtk ; Set compiler state on |
Recifarium | 1:1224cf3799a5 | 1703 | ; DCD |
Recifarium | 1:1224cf3799a5 | 1704 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1705 | |
Recifarium | 1:1224cf3799a5 | 1706 | ;( ; )---------------------------( -- ) |
Recifarium | 1:1224cf3799a5 | 1707 | LSemi LINK LColon |
Recifarium | 1:1224cf3799a5 | 1708 | DCB 1+Immed,";" |
Recifarium | 1:1224cf3799a5 | 1709 | Semi DCD doCol |
Recifarium | 1:1224cf3799a5 | 1710 | DCD Lit32, Exit |
Recifarium | 1:1224cf3799a5 | 1711 | DCD Comma |
Recifarium | 1:1224cf3799a5 | 1712 | DCD OBrtk ; Set compiler state off |
Recifarium | 1:1224cf3799a5 | 1713 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1714 | |
Recifarium | 1:1224cf3799a5 | 1715 | ;( , )---------------------------(w -- ) |
Recifarium | 1:1224cf3799a5 | 1716 | LComma LINK LSemi |
Recifarium | 1:1224cf3799a5 | 1717 | DCB 1+Cmponly,"," |
Recifarium | 1:1224cf3799a5 | 1718 | Comma DCD doCol |
Recifarium | 1:1224cf3799a5 | 1719 | DCD Here, At, Store |
Recifarium | 1:1224cf3799a5 | 1720 | DCD Cell, Here, AddSto |
Recifarium | 1:1224cf3799a5 | 1721 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1722 | |
Recifarium | 1:1224cf3799a5 | 1723 | ;( Hello )---------------------------(w -- ) |
Recifarium | 1:1224cf3799a5 | 1724 | LHello LINK LComma |
Recifarium | 1:1224cf3799a5 | 1725 | DCB 5+Immed,"HELLO" |
Recifarium | 1:1224cf3799a5 | 1726 | Hello DCD doCol |
Recifarium | 1:1224cf3799a5 | 1727 | DCD Lit32, Mess9 |
Recifarium | 1:1224cf3799a5 | 1728 | DCD Count, Type |
Recifarium | 1:1224cf3799a5 | 1729 | DCD Exit |
Recifarium | 1:1224cf3799a5 | 1730 | |
Recifarium | 0:df922596d756 | 1731 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 1732 | ; CONSTANTS |
Recifarium | 0:df922596d756 | 1733 | Mess1 DCB 11,"ENORA-Forth" |
Recifarium | 0:df922596d756 | 1734 | Mess2 DCB 5, "Error" |
Recifarium | 0:df922596d756 | 1735 | Mess3 DCB 7, "Unknown" |
Recifarium | 0:df922596d756 | 1736 | Mess4 DCB 3, "Ok>" |
Recifarium | 1:1224cf3799a5 | 1737 | Mess5 DCB 11,"Not numeric" |
Recifarium | 1:1224cf3799a5 | 1738 | Mess6 DCB 12,"Stack empty",0x0d |
Recifarium | 1:1224cf3799a5 | 1739 | Mess7 DCB 9,"Compiling " |
Recifarium | 1:1224cf3799a5 | 1740 | Mess9 DCB 5,"Hello",0x0d |
Recifarium | 0:df922596d756 | 1741 | DP0 DCD Begin |
Recifarium | 1:1224cf3799a5 | 1742 | Last DCD VLatest |
Recifarium | 1:1224cf3799a5 | 1743 | Avail DCD end_data |
Recifarium | 1:1224cf3799a5 | 1744 | ;----------------------------------- |
Recifarium | 0:df922596d756 | 1745 | |
Recifarium | 1:1224cf3799a5 | 1746 | NextEntry EQU . |
Recifarium | 0:df922596d756 | 1747 | |
Recifarium | 1:1224cf3799a5 | 1748 | VLatest EQU LHello |
Recifarium | 0:df922596d756 | 1749 | |
Recifarium | 1:1224cf3799a5 | 1750 | ;---------End of Dictionary |
Recifarium | 1:1224cf3799a5 | 1751 | |
Recifarium | 1:1224cf3799a5 | 1752 | AREA |.data|, DATA |
Recifarium | 1:1224cf3799a5 | 1753 | |
Recifarium | 1:1224cf3799a5 | 1754 | Begin DCD 0 |
Recifarium | 1:1224cf3799a5 | 1755 | SPACE ReturnStackLength |
Recifarium | 1:1224cf3799a5 | 1756 | SPACE RAMForIAP |
Recifarium | 1:1224cf3799a5 | 1757 | SPACE DataStackLength |
Recifarium | 1:1224cf3799a5 | 1758 | __initial_sp |
Recifarium | 1:1224cf3799a5 | 1759 | APAD SPACE 128 |
Recifarium | 1:1224cf3799a5 | 1760 | TIB SPACE 128 |
Recifarium | 1:1224cf3799a5 | 1761 | RomBuff SPACE BuffSize |
Recifarium | 1:1224cf3799a5 | 1762 | DLatest DCD 0 ; Point to latest link field |
Recifarium | 1:1224cf3799a5 | 1763 | ;Latest DCD 0 |
Recifarium | 1:1224cf3799a5 | 1764 | AState DCD 0 ; True= Compile False= Interpret |
Recifarium | 1:1224cf3799a5 | 1765 | VBase DCD 0 |
Recifarium | 1:1224cf3799a5 | 1766 | AnTib DCD 0 |
Recifarium | 1:1224cf3799a5 | 1767 | AtoIn DCD 0 |
Recifarium | 1:1224cf3799a5 | 1768 | Transit DCD 0 |
Recifarium | 1:1224cf3799a5 | 1769 | AHLD DCD 0 |
Recifarium | 1:1224cf3799a5 | 1770 | AHERE DCD 0 ; RAM pointer |
Recifarium | 1:1224cf3799a5 | 1771 | ACHERE DCD 0 ; code pointer |
Recifarium | 1:1224cf3799a5 | 1772 | ADHERE DCD 0 ; data pointer |
Recifarium | 0:df922596d756 | 1773 | |
Recifarium | 1:1224cf3799a5 | 1774 | end_data EQU . |
Recifarium | 1:1224cf3799a5 | 1775 | Length EQU end_data-Begin |
Recifarium | 1:1224cf3799a5 | 1776 | END |