0001 0000 ;*********************************************************** 0002 0000 ;* F O R T H P A M P U K 0003 0000 ;* H E C T O R 0004 0000 ;* 0005 0000 ;* Disassembly - Telemark Assembler TASM (Tom Anderson) 0006 0000 ;* 0007 0000 ;* tasm -80 forthhectorv11.asm -g3 0008 0000 ;* 0009 0000 ;* Desassemble et note par 0010 0000 ;* Dominique Contant 0011 0000 ;* 0012 0000 ;* v1.2 - 31 Mars 2021 0013 0000 ;*********************************************************** 0014 0000 0015 0000 0016 0000 lstchr: .EQU 0feadh ; DERNIER CARACTERE TAPE 0017 0000 0018 0000 0019 2000 .ORG 2000H 0020 2000 pfa_semis: 0021 2000 2A 8C FF LD HL,(RPP) 0022 2003 4E LD C,(HL) 0023 2004 23 INC HL 0024 2005 46 LD B,(HL) 0025 2006 23 INC HL 0026 2007 22 8C FF LD (RPP),HL 0027 200A c_NEXT: 0028 200A 0A LD A,(BC) 0029 200B 03 INC BC 0030 200C 6F LD L,A 0031 200D 0A LD A,(BC) 0032 200E 03 INC BC 0033 200F 67 LD H,A 0034 2010 5E LD E,(HL) 0035 2011 23 INC HL 0036 2012 56 LD D,(HL) 0037 2013 EB EX DE,HL 0038 2014 E9 JP (HL) 0039 2015 ;******************************* 0040 2015 ;* 0041 2015 ;* LE MOT LIT 0042 2015 ;* 0043 2015 ;* CREATE LIT 030A , 0A6F , etc... 0044 2015 ;* SMUDGE 0045 2015 ;******************************* 0046 2015 nfa_lit: 0047 2015 83 .DB 83H 0048 2016 4C 49 D4 .DB "LI",'T'+80H ; LIT 0049 2019 00 00 .DW 0 ; 0 = Marque fin de dictionnaire 0050 201B cfa_lit: 0051 201B 1D 20 .DW $+2 0052 201D pfa_lit: 0053 201D 0A LD A,(BC) 0054 201E 03 INC BC 0055 201F 6F LD L,A 0056 2020 0A LD A,(BC) 0057 2021 03 INC BC 0058 2022 67 LD H,A 0059 2023 E5 PUSH HL 0060 2024 DD E9 JP (IX) 0061 2026 ;******************************* 0062 2026 ;* 0063 2026 ;* LE MOT EXECUTE 0064 2026 ;* 0065 2026 ;* CREATE EXECUTE 5EE1 , etc 0066 2026 ;* SMUDGE 0067 2026 ;******************************* 0068 2026 nfa_execute: 0069 2026 87 .DB 87h 0070 2027 45 58 45 43 .DB "EXECUT",'E'+80H ; EXECUTE 0070 202B 55 54 C5 0071 202E 15 20 .DW nfa_lit 0072 2030 cfa_execute: 0073 2030 32 20 .DW $+2 0074 2032 E1 POP HL 0075 2033 5E LD E,(HL) 0076 2034 23 INC HL 0077 2035 56 LD D,(HL) 0078 2036 EB EX DE,HL 0079 2037 E9 JP (HL) 0080 2038 ;******************************* 0081 2038 ;* 0082 2038 ;* LE MOT OBRANCH 0083 2038 ;* 0084 2038 ;* CREATE OBRANCH 7DE1 , etc 0085 2038 ;* SMUDGE 0086 2038 ;******************************* 0087 2038 nfa_obranch : 0088 2038 87 .DB 87h 0089 2039 4F 42 52 41 .DB "OBRANC",'H'+80H ; OBRANCH 0089 203D 4E 43 C8 0090 2040 26 20 .DW nfa_execute 0091 2042 cfa_obranch: 0092 2042 44 20 .DW $+2 0093 2044 pfa_obranch: 0094 2044 E1 POP HL 0095 2045 7D LD A,L 0096 2046 B4 OR H 0097 2047 20 0B JR NZ,obranch2 0098 2049 obranch1: 0099 2049 60 LD H,B 0100 204A 69 LD L,C 0101 204B 5E LD E,(HL) 0102 204C 23 INC HL 0103 204D 56 LD D,(HL) 0104 204E 2B DEC HL 0105 204F 19 ADD HL,DE 0106 2050 4D LD C,L 0107 2051 44 LD B,H 0108 2052 DD E9 JP (IX) 0109 2054 obranch2: 0110 2054 03 INC BC 0111 2055 03 INC BC 0112 2056 DD E9 JP (IX) 0113 2058 ;******************************* 0114 2058 ;* 0115 2058 ;* LE MOT BRANCH 0116 2058 ;* 0117 2058 ;* CREATE BRANCH SMUDGE ' OBRANCH 5 + 0118 2058 ;* LATEST PFA CFA ! 0119 2058 ;******************************* 0120 2058 nfa_branch: 0121 2058 86 .DB 86h 0122 2059 42 52 41 4E .DB "BRANC",'H'+80H ; BRANCH 0122 205D 43 C8 0123 205F 38 20 .DW nfa_ obranch 0124 2061 cfa_branch: 0125 2061 49 20 .DW obranch1 0126 2063 ;******************************* 0127 2063 ;* 0128 2063 ;* LE MOT (LOOP) 0129 2063 ;* 0130 2063 ;* CREATE (LOOP) etc SMUDGE 0131 2063 ;* 0132 2063 ;******************************* 0133 2063 nfa_xloop: 0134 2063 86 .DB 86h 0135 2064 28 4C 4F 4F .DB "(LOOP",')'+80H ; (LOOP) 0135 2068 50 A9 0136 206A 58 20 .DW nfa_branch 0137 206C cfa_xloop: 0138 206C 6E 20 .DW $+2 0139 206E pfa_xloop: 0140 206E 11 01 00 LD DE,0001H 0141 2071 xloop1: 0142 2071 2A 8C FF LD HL,(RPP) 0143 2074 7E LD A,(HL) 0144 2075 83 ADD A,E 0145 2076 77 LD (HL),A 0146 2077 5F LD E,A 0147 2078 23 INC HL 0148 2079 7E LD A,(HL) 0149 207A 8A ADC A,D 0150 207B 77 LD (HL),A 0151 207C 23 INC HL 0152 207D CB 7A BIT 7,D 0153 207F 57 LD D,A 0154 2080 20 07 JR NZ,xloop2 0155 2082 7B LD A,E 0156 2083 96 SUB (HL) 0157 2084 7A LD A,D 0158 2085 23 INC HL 0159 2086 9E SBC A,(HL) 0160 2087 18 05 JR xloop3 0161 2089 xloop2: 0162 2089 7E LD A,(HL) 0163 208A 93 SUB E 0164 208B 23 INC HL 0165 208C 7E LD A,(HL) 0166 208D 9A SBC A,D 0167 208E xloop3: 0168 208E FA 49 20 JP M, obranch1 0169 2091 23 INC HL 0170 2092 22 8C FF LD (RPP),HL 0171 2095 03 INC BC 0172 2096 03 INC BC 0173 2097 DD E9 JP (IX) 0174 2099 ;******************************* 0175 2099 ;* 0176 2099 ;* LE MOT (+LOOP) 0177 2099 ;* 0178 2099 ;* CREATE (+LOOP) etc SMUDGE 0179 2099 ;* 0180 2099 ;******************************* 0181 2099 nfa_xploo: 0182 2099 87 .DB 87h 0183 209A 28 2B 4C 4F .DB "(+LOOP",')'+80H ; (+LOOP) 0183 209E 4F 50 A9 0184 20A1 63 20 .DW nfa_xloop 0185 20A3 cfa_xploo: 0186 20A3 A5 20 .DW $+2 0187 20A5 pfa_xploo: 0188 20A5 D1 POP DE 0189 20A6 C3 71 20 JP xloop1 0190 20A9 ;******************************* 0191 20A9 ;* 0192 20A9 ;* LE MOT (DO) 0193 20A9 ;* 0194 20A9 ;* CREATE (DO) etc SMUDGE 0195 20A9 ;* 0196 20A9 ;******************************* 0197 20A9 nfa_xdo: 0198 20A9 84 .DB 84h 0199 20AA 28 44 4F A9 .DB "(DO",')'+80H ; (DO) 0200 20AE 99 20 .DW nfa_xploo 0201 20B0 cfa_xdo: 0202 20B0 B2 20 .DW $+2 0203 20B2 pfa_xdo: 0204 20B2 D9 EXX 0205 20B3 2A 8C FF LD HL,(RPP) 0206 20B6 D1 POP DE 0207 20B7 C1 POP BC 0208 20B8 2B DEC HL 0209 20B9 70 LD (HL),B 0210 20BA 2B DEC HL 0211 20BB 71 LD (HL),C 0212 20BC 2B DEC HL 0213 20BD 72 LD (HL),D 0214 20BE 2B DEC HL 0215 20BF 73 LD (HL),E 0216 20C0 22 8C FF LD (RPP),HL 0217 20C3 D9 EXX 0218 20C4 DD E9 JP (IX) 0219 20C6 ;******************************* 0220 20C6 ;* 0221 20C6 ;* LE MOT I 0222 20C6 ;* 0223 20C6 ;* CREATE I etc SMUDGE 0224 20C6 ;* 0225 20C6 ;******************************* 0226 20C6 nfa_ido: 0227 20C6 81 .DB 81h 0228 20C7 C9 .DB 'I'+80H ;I 0229 20C8 A9 20 .DW nfa_xdo 0230 20CA cfa_ido: 0231 20CA CC 20 .DW $+2 0232 20CC pfa_ido1: 0233 20CC 2A 8C FF LD HL,(RPP) 0234 20CF 5E LD E,(HL) 0235 20D0 23 INC HL 0236 20D1 56 LD D,(HL) 0237 20D2 D5 PUSH DE 0238 20D3 DD E9 JP (IX) 0239 20D5 ;******************************* 0240 20D5 ;* 0241 20D5 ;* LE MOT DIGIT 0242 20D5 ;* 0243 20D5 ;* CREATE DIGIT etc SMUDGE 0244 20D5 ;* 0245 20D5 ;******************************* 0246 20D5 nfa_digit: 0247 20D5 85 .DB 85h 0248 20D6 44 49 47 49 .DB "DIGI",'T'+80H ; DIGIT 0248 20DA D4 0249 20DB C6 20 .DW nfa_ido 0250 20DD cfa_digit: 0251 20DD DF 20 .DW $+2 0252 20DF pfa_digit: 0253 20DF D9 EXX 0254 20E0 01 00 00 LD BC,0000H 0255 20E3 E1 POP HL 0256 20E4 D1 POP DE 0257 20E5 7B LD A,E 0258 20E6 D6 30 SUB 30H 0259 20E8 38 10 JR C,digit1 0260 20EA FE 0A CP 0AH 0261 20EC 38 06 JR C,digit2 0262 20EE D6 07 SUB 07H 0263 20F0 FE 0A CP 0AH 0264 20F2 38 06 JR C,digit1 0265 20F4 digit2: 0266 20F4 BD CP L 0267 20F5 30 03 JR NC,digit1 0268 20F7 5F LD E,A 0269 20F8 D5 PUSH DE 0270 20F9 03 INC BC 0271 20FA digit1: 0272 20FA C5 PUSH BC 0273 20FB D9 EXX 0274 20FC DD E9 JP (IX) 0275 20FE ;******************************* 0276 20FE ;* 0277 20FE ;* LE MOT (FIND) 0278 20FE ;* 0279 20FE ;* CREATE (FIND) etc SMUDGE 0280 20FE ;* 0281 20FE ;******************************* 0282 20FE nfa_xfind: 0283 20FE 86 .DB 86h 0284 20FF 28 46 49 4E .DB "(FIND",')'+80H ; (FIND) 0284 2103 44 A9 0285 2105 D5 20 .DW nfa_digit 0286 2107 cfa_xfind: 0287 2107 09 21 .DW $+2 0288 2109 pfa_xfind: 0289 2109 D1 POP DE 0290 210A xfind6: 0291 210A E1 POP HL 0292 210B E5 PUSH HL 0293 210C 1A LD A,(DE) 0294 210D AE XOR (HL) 0295 210E E6 3F AND 3FH 0296 2110 20 1F JR NZ,xfind2 0297 2112 xfind4: 0298 2112 23 INC HL 0299 2113 13 INC DE 0300 2114 1A LD A,(DE) 0301 2115 AE XOR (HL) 0302 2116 87 ADD A,A 0303 2117 20 16 JR NZ,xfind3 0304 2119 30 F7 JR NC,xfind4 0305 211B 21 05 00 LD HL,0005H 0306 211E 19 ADD HL,DE 0307 211F E3 EX (SP),HL 0308 2120 xfind1: 0309 2120 1B DEC DE 0310 2121 1A LD A,(DE) 0311 2122 B7 OR A 0312 2123 F2 20 21 JP P, xfind1 0313 2126 5F LD E,A 0314 2127 21 01 00 LD HL,0001H 0315 212A 54 LD D,H 0316 212B D5 PUSH DE 0317 212C E5 PUSH HL 0318 212D DD E9 JP (IX) 0319 212F xfind3: 0320 212F 38 06 JR C,xfind5 0321 2131 xfind2: 0322 2131 13 INC DE 0323 2132 1A LD A,(DE) 0324 2133 B7 OR A 0325 2134 F2 31 21 JP P, xfind2 0326 2137 xfind5: 0327 2137 13 INC DE 0328 2138 EB EX DE,HL 0329 2139 5E LD E,(HL) 0330 213A 23 INC HL 0331 213B 56 LD D,(HL) 0332 213C 7A LD A,D 0333 213D B3 OR E 0334 213E 20 CA JR NZ,xfind6 0335 2140 E1 POP HL 0336 2141 D5 PUSH DE 0337 2142 DD E9 JP (IX) 0338 2144 ;******************************* 0339 2144 ;* 0340 2144 ;* LE MOT ENCLOSE 0341 2144 ;* 0342 2144 ;* CREATE ENCLOSE etc SMUDGE 0343 2144 ;* 0344 2144 ;******************************* 0345 2144 nfa_enclose: 0346 2144 87 .DB 87h 0347 2145 45 4E 43 4C .DB "ENCLOS",'E'+80H ; ENCLOSE 0347 2149 4F 53 C5 0348 214C FE 20 .DW nfa_xfind 0349 214E cfa_enclose: 0350 214E 50 21 .DW $+2 0351 2150 pfa_enclose: 0352 2150 D9 EXX 0353 2151 D1 POP DE 0354 2152 E1 POP HL 0355 2153 E5 PUSH HL 0356 2154 7B LD A,E 0357 2155 57 LD D,A 0358 2156 01 FF FF LD BC,0FFFFH 0359 2159 2B DEC HL 0360 215A enclose1: 0361 215A 23 INC HL 0362 215B 03 INC BC 0363 215C BE CP (HL) 0364 215D 28 FB JR Z,enclose1 0365 215F C5 PUSH BC 0366 2160 7E LD A,(HL) 0367 2161 A7 AND A 0368 2162 20 07 JR NZ,enclose2 0369 2164 03 INC BC 0370 2165 C5 PUSH BC 0371 2166 0B DEC BC 0372 2167 C5 PUSH BC 0373 2168 D9 EXX 0374 2169 DD E9 JP (IX) 0375 216B enclose2: 0376 216B 7A LD A,D 0377 216C 23 INC HL 0378 216D 03 INC BC 0379 216E BE CP (HL) 0380 216F 28 09 JR Z,enclose3 0381 2171 7E LD A,(HL) 0382 2172 A7 AND A 0383 2173 20 F6 JR NZ,enclose2 0384 2175 C5 PUSH BC 0385 2176 C5 PUSH BC 0386 2177 D9 EXX 0387 2178 DD E9 JP (IX) 0388 217A enclose3: 0389 217A C5 PUSH BC 0390 217B 03 INC BC 0391 217C C5 PUSH BC 0392 217D D9 EXX 0393 217E DD E9 JP (IX) 0394 2180 ;******************************* 0395 2180 ;* 0396 2180 ;* LE MOT CMOVE 0397 2180 ;* 0398 2180 ;* CREATE CMOVE etc SMUDGE 0399 2180 ;* 0400 2180 ;******************************* 0401 2180 nfa_cmove: 0402 2180 85 .DB 85h 0403 2181 43 4D 4F 56 .DB "CMOV",'E'+80H ; CMOVE 0403 2185 C5 0404 2186 44 21 .DW nfa_enclose 0405 2188 cfa_cmove: 0406 2188 8A 21 .DW $+2 0407 218A pfa_cmove: 0408 218A D9 EXX 0409 218B C1 POP BC 0410 218C D1 POP DE 0411 218D E1 POP HL 0412 218E CD 95 21 CALL cmove1 0413 2191 D9 EXX 0414 2192 DD E9 JP (IX) 0415 2194 cmove2: 0416 2194 DF RST 18H 0417 2195 cmove1: 0418 2195 78 LD A,B 0419 2196 B1 OR C 0420 2197 C8 RET Z 0421 2198 ED B0 LDIR 0422 219A C9 RET 0423 219B ;******************************* 0424 219B ;* 0425 219B ;* LE MOT U* 0426 219B ;* 0427 219B ;* CREATE U* etc SMUDGE 0428 219B ;* 0429 219B ;******************************* 0430 219B nfa_ustar: 0431 219B 82 .DB 82h 0432 219C 55 AA .DB "U",'*'+80H ; U* 0433 219E 80 21 .DW nfa_cmove 0434 21A0 cfa_ustar: 0435 21A0 A2 21 .DW $+2 0436 21A2 pfa_ustar: 0437 21A2 D9 EXX 0438 21A3 E1 POP HL 0439 21A4 C1 POP BC 0440 21A5 AF XOR A 0441 21A6 57 LD D,A 0442 21A7 5F LD E,A 0443 21A8 ustar3: 0444 21A8 29 ADD HL,HL 0445 21A9 1F RRA 0446 21AA EB EX DE,HL 0447 21AB 29 ADD HL,HL 0448 21AC 30 01 JR NC,ustar1 0449 21AE 13 INC DE 0450 21AF ustar1: 0451 21AF 17 RLA 0452 21B0 30 04 JR NC,ustar2 0453 21B2 09 ADD HL,BC 0454 21B3 30 01 JR NC,ustar2 0455 21B5 13 INC DE 0456 21B6 ustar2: 0457 21B6 EB EX DE,HL 0458 21B7 C6 10 ADD A,10h 0459 21B9 30 ED JR NC,ustar3 0460 21BB D5 PUSH DE 0461 21BC E5 PUSH HL 0462 21BD D9 EXX 0463 21BE DD E9 JP (IX) 0464 21C0 ;******************************* 0465 21C0 ;* 0466 21C0 ;* LE MOT U/ 0467 21C0 ;* 0468 21C0 ;* CREATE U/ etc SMUDGE 0469 21C0 ;* 0470 21C0 ;******************************* 0471 21C0 nfa_uslas: 0472 21C0 82 .DB 82h 0473 21C1 55 AF .DB "U",'/'+80H ; U/ 0474 21C3 9B 21 .DW nfa_ustar 0475 21C5 cfa_uslas: 0476 21C5 C7 21 .DW $+2 0477 21C7 D9 EXX 0478 21C8 C1 POP BC 0479 21C9 E1 POP HL 0480 21CA D1 POP DE 0481 21CB 7D LD A,L 0482 21CC 91 SUB C 0483 21CD 7C LD A,H 0484 21CE 98 SBC A,B 0485 21CF 38 08 JR C,uslas1 0486 21D1 21 FF FF LD HL,0FFFFH 0487 21D4 E5 PUSH HL 0488 21D5 E5 PUSH HL 0489 21D6 D9 EXX 0490 21D7 DD E9 JP (IX) 0491 21D9 uslas1: 0492 21D9 3E 10 LD A,10H 0493 21DB uslas6: 0494 21DB 29 ADD HL,HL 0495 21DC 17 RLA 0496 21DD EB EX DE,HL 0497 21DE 29 ADD HL,HL 0498 21DF 30 02 JR NC,uslas2 0499 21E1 13 INC DE 0500 21E2 A7 AND A 0501 21E3 uslas2: 0502 21E3 EB EX DE,HL 0503 21E4 1F RRA 0504 21E5 08 EX AF,AF' 0505 21E6 B7 OR A 0506 21E7 ED 42 SBC HL,BC 0507 21E9 30 06 JR NC,uslas3 0508 21EB 08 EX AF,AF' 0509 21EC 38 04 JR C,uslas4 0510 21EE 09 ADD HL,BC 0511 21EF 18 02 JR uslas5 0512 21F1 uslas3: 0513 21F1 08 EX AF,AF' 0514 21F2 uslas4: 0515 21F2 13 INC DE 0516 21F3 uslas5: 0517 21F3 3D DEC A 0518 21F4 20 E5 JR NZ,uslas6 0519 21F6 E5 PUSH HL 0520 21F7 D5 PUSH DE 0521 21F8 D9 EXX 0522 21F9 DD E9 JP (IX) 0523 21FB ;******************************* 0524 21FB ;* 0525 21FB ;* LE MOT AND 0526 21FB ;* 0527 21FB ;* CREATE AND etc SMUDGE 0528 21FB ;* 0529 21FB ;******************************* 0530 21FB nfa_andd: 0531 21FB 83 .DB 83h 0532 21FC 41 4E C4 .DB "AN",'D'+80H ; AND 0533 21FF C0 21 .DW nfa_uslas 0534 2201 cfa_andd: 0535 2201 03 22 .DW $+2 0536 2203 pfa_andd: 0537 2203 D1 POP DE 0538 2204 E1 POP HL 0539 2205 7D LD A,L 0540 2206 A3 AND E 0541 2207 6F LD L,A 0542 2208 7C LD A,H 0543 2209 A2 AND D 0544 220A 67 LD H,A 0545 220B E5 PUSH HL 0546 220C DD E9 JP (IX) 0547 220E ;******************************* 0548 220E ;* 0549 220E ;* LE MOT OR 0550 220E ;* 0551 220E ;* CREATE OR etc SMUDGE 0552 220E ;* 0553 220E ;******************************* 0554 220E nfa_orr: 0555 220E 82 .DB 82h 0556 220F 4F D2 .DB "O",'R'+80H ; OR 0557 2211 FB 21 .DW nfa_andd 0558 2213 cfa_orr: 0559 2213 15 22 .DW $+2 0560 2215 pfa_orr: 0561 2215 D1 POP DE 0562 2216 E1 POP HL 0563 2217 7D LD A,L 0564 2218 B3 OR E 0565 2219 6F LD L,A 0566 221A 7C LD A,H 0567 221B B2 OR D 0568 221C 67 LD H,A 0569 221D E5 PUSH HL 0570 221E DD E9 JP (IX) 0571 2220 ;******************************* 0572 2220 ;* 0573 2220 ;* LE MOT XOR 0574 2220 ;* 0575 2220 ;* CREATE XOR etc SMUDGE 0576 2220 ;* 0577 2220 ;******************************* 0578 2220 nfa_xorr: 0579 2220 83 .DB 83h 0580 2221 58 4F D2 .DB "XO",'R'+80H ; XOR 0581 2224 0E 22 .DW nfa_orr 0582 2226 cfa_xorr: 0583 2226 28 22 .DW $+2 0584 2228 pfa_xorr: 0585 2228 D1 POP DE 0586 2229 E1 POP HL 0587 222A 7D LD A,L 0588 222B AB XOR E 0589 222C 6F LD L,A 0590 222D 7C LD A,H 0591 222E AA XOR D 0592 222F 67 LD H,A 0593 2230 E5 PUSH HL 0594 2231 DD E9 JP (IX) 0595 2233 ;******************************* 0596 2233 ;* 0597 2233 ;* LE MOT SP@ 0598 2233 ;* 0599 2233 ;* CREATE SP@ etc SMUDGE 0600 2233 ;* 0601 2233 ;******************************* 0602 2233 nfa_spat: 0603 2233 83 .DB 83h 0604 2234 53 50 C0 .DB "SP",'@'+80H ; SP@ 0605 2237 20 22 .DW nfa_xorr 0606 2239 cfa_spat: 0607 2239 3B 22 .DW $+2 0608 223B 21 00 00 LD HL,0000H 0609 223E 39 ADD HL,SP 0610 223F E5 PUSH HL 0611 2240 DD E9 JP (IX) 0612 2242 ;******************************* 0613 2242 ;* 0614 2242 ;* LE MOT SP! 0615 2242 ;* 0616 2242 ;* CREATE SP! etc SMUDGE 0617 2242 ;* 0618 2242 ;******************************* 0619 2242 nfa_spsto: 0620 2242 83 .DB 83h 0621 2243 53 50 A1 .DB "SP",'!'+80H ; SP! 0622 2246 33 22 .DW nfa_spat 0623 2248 cfa_spsto: 0624 2248 4A 22 .DW $+2 0625 224A 2A A1 FF LD HL,(adr_szero) 0626 224D F9 LD SP,HL 0627 224E DD E9 JP (IX) 0628 2250 ;******************************* 0629 2250 ;* 0630 2250 ;* LE MOT RP@ 0631 2250 ;* 0632 2250 ;* CREATE RP@ etc SMUDGE 0633 2250 ;* 0634 2250 ;******************************* 0635 2250 nfa_rpat: 0636 2250 83 .DB 83h 0637 2251 52 50 C0 .DB "RP",'@'+80H ; RP@ 0638 2254 42 22 .DW nfa_spsto 0639 2256 cfa_rpat: 0640 2256 58 22 .DW $+2 0641 2258 2A 8C FF LD HL,(RPP) 0642 225B E5 PUSH HL 0643 225C DD E9 JP (IX) 0644 225E ;******************************* 0645 225E ;* 0646 225E ;* LE MOT RP! 0647 225E ;* 0648 225E ;* CREATE RP! etc SMUDGE 0649 225E ;* 0650 225E ;******************************* 0651 225E nfa_rpsto: 0652 225E 83 .DB 83h 0653 225F 52 50 A1 .DB "RP",'!'+80H ; RP! 0654 2262 50 22 .DW nfa_rpat 0655 2264 cfa_rpsto: 0656 2264 66 22 .DW $+2 0657 2266 2A 5C FF LD HL,(UP) 0658 2269 22 8C FF LD (RPP),HL 0659 226C DD E9 JP (IX) 0660 226E ;******************************* 0661 226E ;* 0662 226E ;* LE MOT ;S 0663 226E ;* 0664 226E ;* CREATE ;S SMUDGE 2000 LATEST PFA CFA ! 0665 226E ;* 0666 226E ;******************************* 0667 226E nfa_semis: 0668 226E 82 .DB 82h 0669 226F 3B D3 .DB ";",'S'+80H ; ;S 0670 2271 5E 22 .DW nfa_rpsto 0671 2273 cfa_semis: 0672 2273 00 20 .DW pfa_semis 0673 2275 ;******************************* 0674 2275 ;* 0675 2275 ;* LE MOT LEAVE 0676 2275 ;* 0677 2275 ;* CREATE LEAVE etc SMUDGE 0678 2275 ;* 0679 2275 ;******************************* 0680 2275 nfa_leave: 0681 2275 85 .DB 85h 0682 2276 4C 45 41 56 .DB "LEAV",'E'+80H ; LEAVE 0682 227A C5 0683 227B 6E 22 .DW nfa_semis 0684 227D cfa_leave: 0685 227D 7F 22 .DW $+2 0686 227F 2A 8C FF LD HL,(RPP) 0687 2282 5E LD E,(HL) 0688 2283 23 INC HL 0689 2284 56 LD D,(HL) 0690 2285 23 INC HL 0691 2286 73 LD (HL),E 0692 2287 23 INC HL 0693 2288 72 LD (HL),D 0694 2289 DD E9 JP (IX) 0695 228B ;******************************* 0696 228B ;* 0697 228B ;* LE MOT >R 0698 228B ;* 0699 228B ;* CREATE >R etc SMUDGE 0700 228B ;* 0701 228B ;******************************* 0702 228B nfa_tor: 0703 228B 82 .DB 82h 0704 228C 3E D2 .DB ">",'R'+80H ; >R 0705 228E 75 22 .DW nfa_leave 0706 2290 cfa_tor: 0707 2290 92 22 .DW $+2 0708 2292 2A 8C FF LD HL,(RPP) 0709 2295 2B DEC HL 0710 2296 D1 POP DE 0711 2297 72 LD (HL),D 0712 2298 2B DEC HL 0713 2299 73 LD (HL),E 0714 229A 22 8C FF LD (RPP),HL 0715 229D DD E9 JP (IX) 0716 229F ;******************************* 0717 229F ;* 0718 229F ;* LE MOT R> 0719 229F ;* 0720 229F ;* CREATE R> etc SMUDGE 0721 229F ;* 0722 229F ;******************************* 0723 229F nfa_fromr: 0724 229F 82 .DB 82h 0725 22A0 52 BE .DB "R",'>'+80H ; R> 0726 22A2 8B 22 .DW nfa_tor 0727 22A4 cfa_fromr: 0728 22A4 A6 22 .DW $+2 0729 22A6 2A 8C FF LD HL,(RPP) 0730 22A9 5E LD E,(HL) 0731 22AA 23 INC HL 0732 22AB 56 LD D,(HL) 0733 22AC 23 INC HL 0734 22AD 22 8C FF LD (RPP),HL 0735 22B0 D5 PUSH DE 0736 22B1 DD E9 JP (IX) 0737 22B3 ;******************************* 0738 22B3 ;* 0739 22B3 ;* LE MOT R 0740 22B3 ;* 0741 22B3 ;* CREATE R SMUDGE ' I LATEST PFA CFA ! 0742 22B3 ;* 0743 22B3 ;******************************* 0744 22B3 nfa_frr: 0745 22B3 81 .DB 81h 0746 22B4 D2 .DB 'R'+80H ;R 0747 22B5 9F 22 .DW nfa_fromr 0748 22B7 cfa_frr: 0749 22B7 CC 20 .DW pfa_ido1 0750 22B9 ;******************************* 0751 22B9 ;* 0752 22B9 ;* LE MOT 0= 0753 22B9 ;* 0754 22B9 ;* CREATE 0= etc SMUDGE 0755 22B9 ;* 0756 22B9 ;******************************* 0757 22B9 nfa_z.equ: 0758 22B9 82 .DB 82h 0759 22BA 30 BD .DB "0",'='+80H ; 0= 0760 22BC B3 22 .DW nfa_frr 0761 22BE cfa_z.equ: 0762 22BE C0 22 .DW $+2 0763 22C0 pfa_z.equ: 0764 22C0 E1 POP HL 0765 22C1 7D LD A,L 0766 22C2 B4 OR H 0767 22C3 21 00 00 LD HL,0000H 0768 22C6 20 01 JR NZ,z.equ1 0769 22C8 23 INC HL 0770 22C9 z.equ1: 0771 22C9 E5 PUSH HL 0772 22CA DD E9 JP (IX) 0773 22CC ;******************************* 0774 22CC ;* 0775 22CC ;* LE MOT 0< 0776 22CC ;* 0777 22CC ;* CREATE 0< etc SMUDGE 0778 22CC ;* 0779 22CC ;******************************* 0780 22CC nfa_zless: 0781 22CC 82 .DB 82h 0782 22CD 30 BC .DB "0",'<'+80H ; 0< 0783 22CF B9 22 .DW nfa_z.equ 0784 22D1 cfa_zless: 0785 22D1 D3 22 .DW $+2 0786 22D3 E1 POP HL 0787 22D4 29 ADD HL,HL 0788 22D5 21 00 00 LD HL,0000H 0789 22D8 30 01 JR NC,zless1 0790 22DA 23 INC HL 0791 22DB zless1: 0792 22DB E5 PUSH HL 0793 22DC DD E9 JP (IX) 0794 22DE ;******************************* 0795 22DE ;* 0796 22DE ;* LE MOT + 0797 22DE ;* 0798 22DE ;* CREATE + E1D1 , E519 , E9DD , SMUDGE 0799 22DE ;* 0800 22DE ;******************************* 0801 22DE nfa_plus: 0802 22DE 81 .DB 81h 0803 22DF AB .DB '+'+80H ; + 0804 22E0 CC 22 .DW nfa_zless 0805 22E2 cfa_plus: 0806 22E2 E4 22 .DW $+2 0807 22E4 D1 POP DE 0808 22E5 E1 POP HL 0809 22E6 19 ADD HL,DE 0810 22E7 E5 PUSH HL 0811 22E8 DD E9 JP (IX) 0812 22EA ;******************************* 0813 22EA ;* 0814 22EA ;* LE MOT D+ 0815 22EA ;* 0816 22EA ;* CREATE D+ etc SMUDGE 0817 22EA ;* 0818 22EA ;******************************* 0819 22EA nfa_dplus: 0820 22EA 82 .DB 82h 0821 22EB 44 AB .DB "D",'+'+80H ; D+ 0822 22ED DE 22 .DW nfa_plus 0823 22EF cfa_dplus: 0824 22EF F1 22 .DW $+2 0825 22F1 D9 EXX 0826 22F2 D1 POP DE 0827 22F3 C1 POP BC 0828 22F4 E1 POP HL 0829 22F5 E3 EX (SP),HL 0830 22F6 09 ADD HL,BC 0831 22F7 E3 EX (SP),HL 0832 22F8 ED 5A ADC HL,DE 0833 22FA E5 PUSH HL 0834 22FB D9 EXX 0835 22FC DD E9 JP (IX) 0836 22FE ;******************************* 0837 22FE ;* 0838 22FE ;* LE MOT MINUS 0839 22FE ;* 0840 22FE ;* CREATE MINUS etc SMUDGE 0841 22FE ;* 0842 22FE ;******************************* 0843 22FE nfa_minus: 0844 22FE 85 .DB 85h 0845 22FF 4D 49 4E 55 .DB "MINU",'S'+80H ; MINUS 0845 2303 D3 0846 2304 EA 22 .DW nfa_dplus 0847 2306 cfa_minus: 0848 2306 08 23 .DW $+2 0849 2308 AF XOR A 0850 2309 67 LD H,A 0851 230A 6F LD L,A 0852 230B D1 POP DE 0853 230C ED 52 SBC HL,DE 0854 230E E5 PUSH HL 0855 230F DD E9 JP (IX) 0856 2311 ;******************************* 0857 2311 ;* 0858 2311 ;* LE MOT DMINUS 0859 2311 ;* 0860 2311 ;* CREATE DMINUS etc SMUDGE 0861 2311 ;* 0862 2311 ;******************************* 0863 2311 nfa_dminus: 0864 2311 86 .DB 86h 0865 2312 44 4D 49 4E .DB "DMINU",'S'+80H ; DMINUS 0865 2316 55 D3 0866 2318 FE 22 .DW nfa_minus 0867 231A cfa_dminus: 0868 231A 1C 23 .DW $+2 0869 231C D9 EXX 0870 231D C1 POP BC 0871 231E D1 POP DE 0872 231F AF XOR A 0873 2320 67 LD H,A 0874 2321 6F LD L,A 0875 2322 ED 52 SBC HL,DE 0876 2324 E5 PUSH HL 0877 2325 67 LD H,A 0878 2326 6F LD L,A 0879 2327 ED 42 SBC HL,BC 0880 2329 E5 PUSH HL 0881 232A D9 EXX 0882 232B DD E9 JP (IX) 0883 232D ;******************************* 0884 232D ;* 0885 232D ;* LE MOT OVER 0886 232D ;* 0887 232D ;* CREATE OVER etc SMUDGE 0888 232D ;* 0889 232D ;******************************* 0890 232D nfa_over: 0891 232D 84 .DB 84h 0892 232E 4F 56 45 D2 .DB "OVE",'R'+80H ; OVER 0893 2332 11 23 .DW nfa_dminus 0894 2334 cfa_over: 0895 2334 36 23 .DW $+2 0896 2336 D1 POP DE 0897 2337 E1 POP HL 0898 2338 E5 PUSH HL 0899 2339 D5 PUSH DE 0900 233A E5 PUSH HL 0901 233B DD E9 JP (IX) 0902 233D ;******************************* 0903 233D ;* 0904 233D ;* LE MOT DROP 0905 233D ;* 0906 233D ;* CREATE DROP etc SMUDGE 0907 233D ;* 0908 233D ;******************************* 0909 233D nfa_drop: 0910 233D 84 .DB 84h 0911 233E 44 52 4F D0 .DB "DRO",'P'+80H ; DROP 0912 2342 2D 23 .DW nfa_over 0913 2344 cfa_drop: 0914 2344 46 23 .DW $+2 0915 2346 E1 POP HL 0916 2347 DD E9 JP (IX) 0917 2349 ;******************************* 0918 2349 ;* 0919 2349 ;* LE MOT SWAP 0920 2349 ;* 0921 2349 ;* CREATE SWAP etc SMUDGE 0922 2349 ;* 0923 2349 ;******************************* 0924 2349 nfa_swap: 0925 2349 84 .DB 84h 0926 234A 53 57 41 D0 .DB "SWA",'P'+80H ; SWAP 0927 234E 3D 23 .DW nfa_drop 0928 2350 cfa_swap: 0929 2350 52 23 .DW $+2 0930 2352 E1 POP HL 0931 2353 E3 EX (SP),HL 0932 2354 E5 PUSH HL 0933 2355 DD E9 JP (IX) 0934 2357 ;******************************* 0935 2357 ;* 0936 2357 ;* LE MOT DUP 0937 2357 ;* 0938 2357 ;* CREATE DUP etc SMUDGE 0939 2357 ;* 0940 2357 ;******************************* 0941 2357 nfa_dup: 0942 2357 83 .DB 83h 0943 2358 44 55 D0 .DB "DU",'P'+80H ; DUP 0944 235B 49 23 .DW nfa_swap 0945 235D cfa_dup: 0946 235D 5F 23 .DW $+2 0947 235F E1 POP HL 0948 2360 E5 PUSH HL 0949 2361 E5 PUSH HL 0950 2362 DD E9 JP (IX) 0951 2364 ;******************************* 0952 2364 ;* 0953 2364 ;* LE MOT 2DUP 0954 2364 ;* 0955 2364 ;* CREATE 2DUP etc SMUDGE 0956 2364 ;* 0957 2364 ;******************************* 0958 2364 nfa_tdup: 0959 2364 84 .DB 84h 0960 2365 32 44 55 D0 .DB "2DU",'P'+80H ; 2DUP 0961 2369 57 23 .DW nfa_dup 0962 236B cfa_tdup: 0963 236B 6D 23 .DW $+2 0964 236D E1 POP HL 0965 236E D1 POP DE 0966 236F D5 PUSH DE 0967 2370 E5 PUSH HL 0968 2371 D5 PUSH DE 0969 2372 E5 PUSH HL 0970 2373 DD E9 JP (IX) 0971 2375 ;******************************* 0972 2375 ;* 0973 2375 ;* LE MOT +! 0974 2375 ;* 0975 2375 ;* CREATE +! etc SMUDGE 0976 2375 ;* 0977 2375 ;******************************* 0978 2375 nfa_pstor: 0979 2375 82 .DB 82h 0980 2376 2B A1 .DB "+",'!'+80H ; +! 0981 2378 64 23 .DW nfa_tdup 0982 237A cfa_pstor: 0983 237A 7C 23 .DW $+2 0984 237C E1 POP HL 0985 237D D1 POP DE 0986 237E 7E LD A,(HL) 0987 237F 83 ADD A,E 0988 2380 77 LD (HL),A 0989 2381 23 INC HL 0990 2382 7E LD A,(HL) 0991 2383 8A ADC A,D 0992 2384 77 LD (HL),A 0993 2385 DD E9 JP (IX) 0994 2387 ;******************************* 0995 2387 ;* 0996 2387 ;* LE MOT TOGGLE 0997 2387 ;* 0998 2387 ;* CREATE TOGGLE etc SMUDGE 0999 2387 ;* 1000 2387 ;******************************* 1001 2387 nfa_toggle: 1002 2387 86 .DB 86h 1003 2388 54 4F 47 47 .DB "TOGGL",'E'+80H ; TOGGLE 1003 238C 4C C5 1004 238E 75 23 .DW nfa_pstor 1005 2390 cfa_toggle: 1006 2390 92 23 .DW $+2 1007 2392 D1 POP DE 1008 2393 E1 POP HL 1009 2394 7E LD A,(HL) 1010 2395 AB XOR E 1011 2396 77 LD (HL),A 1012 2397 DD E9 JP (IX) 1013 2399 ;******************************* 1014 2399 ;* 1015 2399 ;* LE MOT @ 1016 2399 ;* 1017 2399 ;* CREATE @ etc SMUDGE 1018 2399 ;* 1019 2399 ;******************************* 1020 2399 nfa_at: 1021 2399 81 .DB 81h 1022 239A C0 .DB '@'+80H ; @ 1023 239B 87 23 .DW nfa_toggle 1024 239D cfa_at: 1025 239D 9F 23 .DW $+2 1026 239F E1 POP HL 1027 23A0 5E LD E,(HL) 1028 23A1 23 INC HL 1029 23A2 56 LD D,(HL) 1030 23A3 D5 PUSH DE 1031 23A4 DD E9 JP (IX) 1032 23A6 ;******************************* 1033 23A6 ;* 1034 23A6 ;* LE MOT C@ 1035 23A6 ;* 1036 23A6 ;* CREATE C@ etc SMUDGE 1037 23A6 ;* 1038 23A6 ;******************************* 1039 23A6 nfa_cat: 1040 23A6 82 .DB 82h 1041 23A7 43 C0 .DB "C",'@'+80H ; C@ 1042 23A9 99 23 .DW nfa_at 1043 23AB cfa_cat: 1044 23AB AD 23 .DW $+2 1045 23AD E1 POP HL 1046 23AE 6E LD L,(HL) 1047 23AF 26 00 LD H,00H 1048 23B1 E5 PUSH HL 1049 23B2 DD E9 JP (IX) 1050 23B4 ;******************************* 1051 23B4 ;* 1052 23B4 ;* LE MOT 2@ 1053 23B4 ;* 1054 23B4 ;* CREATE 2@ etc SMUDGE 1055 23B4 ;* 1056 23B4 ;******************************* 1057 23B4 nfa_tat: 1058 23B4 82 .DB 82h 1059 23B5 32 C0 .DB "2",'@'+80H ; 2@ 1060 23B7 A6 23 .DW nfa_cat 1061 23B9 cfa_tat: 1062 23B9 BB 23 .DW $+2 1063 23BB D9 EXX 1064 23BC E1 POP HL 1065 23BD 5E LD E,(HL) 1066 23BE 23 INC HL 1067 23BF 56 LD D,(HL) 1068 23C0 23 INC HL 1069 23C1 4E LD C,(HL) 1070 23C2 23 INC HL 1071 23C3 46 LD B,(HL) 1072 23C4 C5 PUSH BC 1073 23C5 D5 PUSH DE 1074 23C6 D9 EXX 1075 23C7 DD E9 JP (IX) 1076 23C9 ;******************************* 1077 23C9 ;* 1078 23C9 ;* LE MOT ! 1079 23C9 ;* 1080 23C9 ;* CREATE ! etc SMUDGE 1081 23C9 ;* 1082 23C9 ;******************************* 1083 23C9 nfa_store: 1084 23C9 81 .DB 81h 1085 23CA A1 .DB '!'+80H ; ! 1086 23CB B4 23 .DW nfa_tat 1087 23CD cfa_store: 1088 23CD CF 23 .DW $+2 1089 23CF pfa_store: 1090 23CF E1 POP HL 1091 23D0 D1 POP DE 1092 23D1 73 LD (HL),E 1093 23D2 23 INC HL 1094 23D3 72 LD (HL),D 1095 23D4 DD E9 JP (IX) 1096 23D6 ;******************************* 1097 23D6 ;* 1098 23D6 ;* LE MOT C! 1099 23D6 ;* 1100 23D6 ;* CREATE C! etc SMUDGE 1101 23D6 ;* 1102 23D6 ;******************************* 1103 23D6 nfa_cstore: 1104 23D6 82 .DB 82h 1105 23D7 43 A1 .DB "C",'!'+80H ; C! 1106 23D9 C9 23 .DW nfa_store 1107 23DB cfa_cstore: 1108 23DB DD 23 .DW $+2 1109 23DD E1 POP HL 1110 23DE D1 POP DE 1111 23DF 73 LD (HL),E 1112 23E0 DD E9 JP (IX) 1113 23E2 ;******************************* 1114 23E2 ;* 1115 23E2 ;* LE MOT 2! 1116 23E2 ;* 1117 23E2 ;* CREATE 2! etc SMUDGE 1118 23E2 ;* 1119 23E2 ;******************************* 1120 23E2 nfa_tstor: 1121 23E2 82 .DB 82h 1122 23E3 32 A1 .DB "2",'!'+80H ; 2! 1123 23E5 D6 23 .DW nfa_cstore 1124 23E7 cfa_tstor: 1125 23E7 E9 23 .DW $+2 1126 23E9 E1 POP HL 1127 23EA D1 POP DE 1128 23EB 73 LD (HL),E 1129 23EC 23 INC HL 1130 23ED 72 LD (HL),D 1131 23EE 23 INC HL 1132 23EF D1 POP DE 1133 23F0 73 LD (HL),E 1134 23F1 23 INC HL 1135 23F2 72 LD (HL),D 1136 23F3 DD E9 JP (IX) 1137 23F5 ;******************************* 1138 23F5 ;* 1139 23F5 ;* LE MOT 1+ 1140 23F5 ;* 1141 23F5 ;* CREATE 1+ etc SMUDGE 1142 23F5 ;* 1143 23F5 ;******************************* 1144 23F5 nfa_onep: 1145 23F5 82 .DB 82h 1146 23F6 31 AB .DB "1",'+'+80H ; 1+ 1147 23F8 E2 23 .DW nfa_tstor 1148 23FA cfa_onep: 1149 23FA FC 23 .DW $+2 1150 23FC E1 POP HL 1151 23FD 23 INC HL 1152 23FE E5 PUSH HL 1153 23FF DD E9 JP (IX) 1154 2401 ;******************************* 1155 2401 ;* 1156 2401 ;* LE MOT 2+ 1157 2401 ;* 1158 2401 ;* CREATE 2+ etc SMUDGE 1159 2401 ;* 1160 2401 ;******************************* 1161 2401 nfa_twop: 1162 2401 82 .DB 82h 1163 2402 32 AB .DB "2",'+'+80H ; 2+ 1164 2404 F5 23 .DW nfa_onep 1165 2406 cfa_twop: 1166 2406 08 24 .DW $+2 1167 2408 E1 POP HL 1168 2409 23 INC HL 1169 240A 23 INC HL 1170 240B E5 PUSH HL 1171 240C DD E9 JP (IX) 1172 240E ;******************************* 1173 240E ;* 1174 240E ;* LE MOT - 1175 240E ;* 1176 240E ;* CREATE - etc SMUDGE 1177 240E ;* 1178 240E ;******************************* 1179 240E nfa_subb: 1180 240E 81 .DB 81h 1181 240F AD .DB '-'+80H ; - (MINUS SIGN) 1182 2410 01 24 .DW nfa_twop 1183 2412 cfa_subb: 1184 2412 14 24 .DW $+2 1185 2414 D1 POP DE 1186 2415 E1 POP HL 1187 2416 B7 OR A 1188 2417 ED 52 SBC HL,DE 1189 2419 E5 PUSH HL 1190 241A DD E9 JP (IX) 1191 241C ;******************************* 1192 241C ;* 1193 241C ;* LE MOT = 1194 241C ;* 1195 241C ;* CREATE = E1D1 , etc SMUDGE 1196 241C ;* 1197 241C ;******************************* 1198 241C nfa_equal: 1199 241C 81 .DB 81h 1200 241D BD .DB '='+80H ; = .EQUAL SIGN 1201 241E 0E 24 .DW nfa_subb 1202 2420 cfa_equal: 1203 2420 22 24 .DW $+2 1204 2422 D1 POP DE 1205 2423 E1 POP HL 1206 2424 B7 OR A 1207 2425 ED 52 SBC HL,DE 1208 2427 7D LD A,L 1209 2428 B4 OR H 1210 2429 21 00 00 LD HL,0000H 1211 242C 20 01 JR NZ, equal1 1212 242E 23 INC HL 1213 242F equal1: 1214 242F E5 PUSH HL 1215 2430 DD E9 JP (IX) 1216 2432 ;******************************* 1217 2432 ;* 1218 2432 ;* LE MOT < 1219 2432 ;* 1220 2432 ;* CREATE < D1E1 , etc SMUDGE LATEST PFA DUP 4 + SWAP 1221 2432 ;* CFA ! 1222 2432 ;******************************* 1223 2432 nfa_less: 1224 2432 81 .DB 81h 1225 2433 BC .DB '<'+80H ; < 1226 2434 1C 24 .DW nfa_equal 1227 2436 cfa_less: 1228 2436 3C 24 .DW $+6 1229 2438 less1: 1230 2438 E1 POP HL 1231 2439 D1 POP DE 1232 243A 18 02 JR less2 1233 243C D1 POP DE 1234 243D E1 POP HL 1235 243E less2: 1236 243E 7A LD A,D 1237 243F AC XOR H 1238 2440 FA 45 24 JP M,less3 1239 2443 ED 52 SBC HL,DE 1240 2445 less3: 1241 2445 CB 7C BIT 7,H 1242 2447 21 00 00 LD HL,0000H 1243 244A 28 01 JR Z,less4 1244 244C 23 INC HL 1245 244D less4: 1246 244D E5 PUSH HL 1247 244E DD E9 JP (IX) 1248 2450 ;******************************* 1249 2450 ;* 1250 2450 ;* LE MOT > 1251 2450 ;* 1252 2450 ;* CREATE > SMUDGE ' < LATEST 1253 2450 ;* PFA CFA ! 1254 2450 ;******************************* 1255 2450 nfa_great: 1256 2450 81 .DB 81h 1257 2451 BE .DB '>'+80H ; > 1258 2452 32 24 .DW nfa_less 1259 2454 cfa_great: 1260 2454 38 24 .DW less1 1261 2456 ;******************************* 1262 2456 ;* 1263 2456 ;* LE MOT ROT 1264 2456 ;* 1265 2456 ;* CREATE ROT 21D1 , etc 1266 2456 ;* SMUDGE 1267 2456 ;******************************* 1268 2456 nfa_rot: 1269 2456 83 .DB 83h 1270 2457 52 4F D4 .DB "RO",'T'+80H ; ROT 1271 245A 50 24 .DW nfa_great 1272 245C cfa_rot: 1273 245C 5E 24 .DW $+2 1274 245E D1 POP DE 1275 245F E1 POP HL 1276 2460 E3 EX (SP),HL 1277 2461 D5 PUSH DE 1278 2462 E5 PUSH HL 1279 2463 DD E9 JP (IX) 1280 2465 ;******************************* 1281 2465 ;* 1282 2465 ;* LE MOT PICK 1283 2465 ;* 1284 2465 ;* CREATE PICK 28E1 , etc 1285 2465 ;* SMUDGE 1286 2465 ;******************************* 1287 2465 nfa_pick: 1288 2465 84 .DB 84h 1289 2466 50 49 43 CB .DB "PIC",'K'+80H ; PICK 1290 246A 56 24 .DW nfa_rot 1291 246C cfa_pick: 1292 246C 6E 24 .DW $+2 1293 246E E1 POP HL 1294 246F 2B DEC HL 1295 2470 29 ADD HL,HL 1296 2471 39 ADD HL,SP 1297 2472 5E LD E,(HL) 1298 2473 23 INC HL 1299 2474 56 LD D,(HL) 1300 2475 D5 PUSH DE 1301 2476 DD E9 JP (IX) 1302 2478 ;******************************* 1303 2478 ;* 1304 2478 ;* LE MOT ROLL 1305 2478 ;* 1306 2478 ;* CREATE ROLL E1D9 , 44 C, etc 1307 2478 ;* SMUDGE 1308 2478 ;******************************* 1309 2478 nfa_roll: 1310 2478 84 .DB 84h 1311 2479 52 4F 4C CC .DB "ROL",'L'+80H ; ROLL 1312 247D 65 24 .DW nfa_pick 1313 247F cfa_roll: 1314 247F 81 24 .DW $+2 1315 2481 D9 EXX 1316 2482 E1 POP HL 1317 2483 29 ADD HL,HL 1318 2484 44 LD B,H 1319 2485 4D LD C,L 1320 2486 39 ADD HL,SP 1321 2487 2B DEC HL 1322 2488 56 LD D,(HL) 1323 2489 2B DEC HL 1324 248A 5E LD E,(HL) 1325 248B D5 PUSH DE 1326 248C 23 INC HL 1327 248D 54 LD D,H 1328 248E 5D LD E,L 1329 248F 2B DEC HL 1330 2490 2B DEC HL 1331 2491 ED B8 LDDR 1332 2493 E1 POP HL 1333 2494 D9 EXX 1334 2495 DD E9 JP (IX) 1335 2497 ;******************************* 1336 2497 ;* 1337 2497 ;* LE MOT EXIT 1338 2497 ;* 1339 2497 ;* CREATE EXIT SMUDGE 2000 LATEST 1340 2497 ;* PFA CFA ! 1341 2497 ;******************************* 1342 2497 nfa_exit: 1343 2497 84 .DB 84h 1344 2498 45 58 49 D4 .DB "EXI",'T'+80H ; EXIT 1345 249C 78 24 .DW nfa_roll 1346 249E cfa_exit: 1347 249E 00 20 .DW pfa_semis 1348 24A0 ;******************************* 1349 24A0 ;* 1350 24A0 ;* LE MOT NOT 1351 24A0 ;* 1352 24A0 ;* CREATE NOT SMUDGE ' 0= LATEST 1353 24A0 ;* PFA CFA ! 1354 24A0 ;* 1355 24A0 ;******************************* 1356 24A0 nfa_not: 1357 24A0 83 .DB 83h 1358 24A1 4E 4F D4 .DB "NO",'T'+80H ; NOT 1359 24A4 97 24 .DW nfa_exit 1360 24A6 cfa_not: 1361 24A6 C0 22 .DW pfa_z.equ 1362 24A8 ;******************************* 1363 24A8 ;* 1364 24A8 ;* LE MOT SDROP 1365 24A8 ;* 1366 24A8 ;* CREATE SDROP etc 1367 24A8 ;* SMUDGE 1368 24A8 ;******************************* 1369 24A8 nfa_sdrop: 1370 24A8 85 .DB 85h 1371 24A9 53 44 52 4F .DB "SDRO",'P'+80H ; SDROP 1371 24AD D0 1372 24AE A0 24 .DW nfa_not 1373 24B0 cfa_sdrop: 1374 24B0 B2 24 .DW $+2 1375 24B2 E1 POP HL 1376 24B3 E3 EX (SP),HL 1377 24B4 DD E9 JP (IX) 1378 24B6 ;******************************* 1379 24B6 ;* 1380 24B6 ;* LE MOT I' 1381 24B6 ;* 1382 24B6 ;* CREATE I' etc 1383 24B6 ;* SMUDGE 1384 24B6 ;******************************* 1385 24B6 nfa_ipr: 1386 24B6 82 .DB 82h 1387 24B7 49 .DB "I" 1388 24B8 A7 .DB 0A7h ; I' 1389 24B9 A8 24 .DW nfa_sdrop 1390 24BB cfa_ipr: 1391 24BB C3 24 .DW pfa_regj 1392 24BD ;******************************* 1393 24BD ;* 1394 24BD ;* LE MOT J 1395 24BD ;* 1396 24BD ;* CREATE J etc 1397 24BD ;* SMUDGE 1398 24BD ;******************************* 1399 24BD nfa_regj 1400 24BD 81 .DB 81h 1401 24BE CA .DB 'J'+80H ; J 1402 24BF B6 24 .DW nfa_ipr 1403 24C1 cfa_regj: 1404 24C1 C8 24 .DW regj1 1405 24C3 pfa_regj 1406 24C3 2A 8C FF LD HL,(RPP) 1407 24C6 18 05 JR + regj2 1408 24C8 regj1: 1409 24C8 2A 8C FF LD HL,(RPP) 1410 24CB 23 INC HL 1411 24CC 23 INC HL 1412 24CD regj2: 1413 24CD 23 INC HL 1414 24CE 23 INC HL 1415 24CF 5E LD E,(HL) 1416 24D0 23 INC HL 1417 24D1 56 LD D,(HL) 1418 24D2 D5 PUSH DE 1419 24D3 DD E9 JP (IX) 1420 24D5 ;******************************* 1421 24D5 ;* 1422 24D5 ;* LE MOT 0> 1423 24D5 ;* 1424 24D5 ;* CREATE 0> etc 1425 24D5 ;* SMUDGE 1426 24D5 ;******************************* 1427 24D5 nfa_zmore: 1428 24D5 82 .DB 82h 1429 24D6 30 BE .DB "0",'>'+80H ; 0> 1430 24D8 BD 24 .DW nfa_regj 1431 24DA cfa_zmore: 1432 24DA DC 24 .DW $+2 1433 24DC E1 POP HL 1434 24DD 7C LD A,H 1435 24DE B5 OR L 1436 24DF 28 07 JR Z,zmore1 1437 24E1 29 ADD HL,HL 1438 24E2 21 00 00 LD HL,0000H 1439 24E5 38 01 JR C,zmore1 1440 24E7 23 INC HL 1441 24E8 zmore1: 1442 24E8 E5 PUSH HL 1443 24E9 DD E9 JP (IX) 1444 24EB ;******************************* 1445 24EB ;* 1446 24EB ;* LE MOT 1- 1447 24EB ;* 1448 24EB ;* CREATE 1- etc 1449 24EB ;* SMUDGE 1450 24EB ;******************************* 1451 24EB nfa_onel: 1452 24EB 82 .DB 82h 1453 24EC 31 AD .DB "1",'-'+80H ; 1- 1454 24EE D5 24 .DW nfa_zmore 1455 24F0 cfa_onel: 1456 24F0 F2 24 .DW $+2 1457 24F2 E1 POP HL 1458 24F3 2B DEC HL 1459 24F4 E5 PUSH HL 1460 24F5 DD E9 JP (IX) 1461 24F7 ;******************************* 1462 24F7 ;* 1463 24F7 ;* LE MOT 2- 1464 24F7 ;* 1465 24F7 ;* CREATE 2- etc 1466 24F7 ;* SMUDGE 1467 24F7 ;******************************* 1468 24F7 nfa_twol: 1469 24F7 82 .DB 82h 1470 24F8 32 AD .DB "2",'-'+80H ; 2- 1471 24FA EB 24 .DW nfa_onel 1472 24FC cfa_twol: 1473 24FC FE 24 .DW $+2 1474 24FE pfa_twol: 1475 24FE E1 POP HL 1476 24FF 2B DEC HL 1477 2500 2B DEC HL 1478 2501 E5 PUSH HL 1479 2502 DD E9 JP (IX) 1480 2504 ;******************************* 1481 2504 ;* 1482 2504 ;* LE MOT 2* 1483 2504 ;* 1484 2504 ;* CREATE 2* etc 1485 2504 ;* SMUDGE 1486 2504 ;******************************* 1487 2504 nfa_twice: 1488 2504 82 .DB 82h 1489 2505 32 AA .DB "2",'*'+80H ; 2* 1490 2507 F7 24 .DW nfa_twol 1491 2509 cfa_twice: 1492 2509 0B 25 .DW $+2 1493 250B E1 POP HL 1494 250C 29 ADD HL,HL 1495 250D E5 PUSH HL 1496 250E DD E9 JP (IX) 1497 2510 ;******************************* 1498 2510 ;* 1499 2510 ;* LE MOT 2/ 1500 2510 ;* 1501 2510 ;* CREATE 2/ etc 1502 2510 ;* SMUDGE 1503 2510 ;******************************* 1504 2510 nfa_twosl: 1505 2510 82 .DB 82h 1506 2511 32 AF .DB "2",'/'+80H ; 2/ 1507 2513 04 25 .DW nfa_twice 1508 2515 cfa_twosl 1509 2515 17 25 .DW $+2 1510 2517 E1 POP HL 1511 2518 CB 2C SRA H 1512 251A CB 1D RR L 1513 251C E5 PUSH HL 1514 251D DD E9 JP (IX) 1515 251F ;******************************* 1516 251F ;* 1517 251F ;* LE MOT 2SWAP 1518 251F ;* 1519 251F ;* CREATE 2SWAP etc 1520 251F ;* SMUDGE 1521 251F ;******************************* 1522 251F nfa_twosw: 1523 251F 85 .DB 85h 1524 2520 32 53 57 41 .DB "2SWA",'P'+80H ; 2SWAP 1524 2524 D0 1525 2525 10 25 .DW nfa_twosl 1526 2527 cfa_twosw: 1527 2527 29 25 .DW $+2 1528 2529 D1 POP DE 1529 252A E1 POP HL 1530 252B F1 POP AF 1531 252C E3 EX (SP),HL 1532 252D D5 PUSH DE 1533 252E E5 PUSH HL 1534 252F F5 PUSH AF 1535 2530 DD E9 JP (IX) 1536 2532 ;******************************* 1537 2532 ;* 1538 2532 ;* LE MOT 2OVER 1539 2532 ;* 1540 2532 ;* CREATE 2OVER etc 1541 2532 ;* SMUDGE 1542 2532 ;******************************* 1543 2532 nfa_twoover: 1544 2532 85 .DB 85h 1545 2533 32 4F 56 45 .DB "2OVE",'R'+80H ; 2OVER 1545 2537 D2 1546 2538 1F 25 .DW nfa_twosw 1547 253A cfa_twoover: 1548 253A 3C 25 .DW $+2 1549 253C D9 EXX 1550 253D E1 POP HL 1551 253E D1 POP DE 1552 253F C1 POP BC 1553 2540 F1 POP AF 1554 2541 F5 PUSH AF 1555 2542 C5 PUSH BC 1556 2543 D5 PUSH DE 1557 2544 E5 PUSH HL 1558 2545 F5 PUSH AF 1559 2546 C5 PUSH BC 1560 2547 D9 EXX 1561 2548 DD E9 JP (IX) 1562 254A ;******************************* 1563 254A ;* 1564 254A ;* LE MOT 2DROP 1565 254A ;* 1566 254A ;* CREATE 2DROP etc 1567 254A ;* SMUDGE 1568 254A ;******************************* 1569 254A nfa_twodrop: 1570 254A 85 .DB 85h 1571 254B 32 44 52 4F .DB "2DRO",'P'+80H ; 2DROP 1571 254F D0 1572 2550 32 25 .DW nfa_twoover 1573 2552 cfa_twodrop: 1574 2552 54 25 .DW $+2 1575 2554 E1 POP HL 1576 2555 E1 POP HL 1577 2556 DD E9 JP (IX) 1578 2558 ;******************************* 1579 2558 ;* 1580 2558 ;* LE MOT 2ROT 1581 2558 ;* 1582 2558 ;* CREATE 2ROT etc 1583 2558 ;* SMUDGE 1584 2558 ;******************************* 1585 2558 nfa_tworot: 1586 2558 84 .DB 84h 1587 2559 32 52 4F D4 .DB "2RO",'T'+80H ; 2ROT 1588 255D 4A 25 .DW nfa_twodrop 1589 255F cfa_tworot: 1590 255F 61 25 .DW $+2 1591 2561 D9 EXX 1592 2562 E1 POP HL 1593 2563 D1 POP DE 1594 2564 C1 POP BC 1595 2565 F1 POP AF 1596 2566 D9 EXX 1597 2567 E1 POP HL 1598 2568 D1 POP DE 1599 2569 D9 EXX 1600 256A F5 PUSH AF 1601 256B C5 PUSH BC 1602 256C D5 PUSH DE 1603 256D E5 PUSH HL 1604 256E D9 EXX 1605 256F D5 PUSH DE 1606 2570 E5 PUSH HL 1607 2571 DD E9 JP (IX) 1608 2573 ;******************************* 1609 2573 ;* 1610 2573 ;* LE MOT D- 1611 2573 ;* 1612 2573 ;* CREATE D- etc 1613 2573 ;* SMUDGE 1614 2573 ;******************************* 1615 2573 nfa_dmoins: 1616 2573 82 .DB 82h 1617 2574 44 AD .DB "D",'-'+80H ; D- 1618 2576 58 25 .DW nfa_tworot 1619 2578 cfa_dmoins: 1620 2578 7A 25 .DW $+2 1621 257A D9 EXX 1622 257B D1 POP DE 1623 257C C1 POP BC 1624 257D E1 POP HL 1625 257E E3 EX (SP),HL 1626 257F B7 OR A 1627 2580 ED 42 SBC HL,BC 1628 2582 E3 EX (SP),HL 1629 2583 ED 52 SBC HL,DE 1630 2585 E5 PUSH HL 1631 2586 D9 EXX 1632 2587 DD E9 JP (IX) 1633 2589 ;******************************* 1634 2589 ;* 1635 2589 ;* LE MOT DUP 2+ >R @ , ; 2560 28D1 ;* 2561 28D1 ;******************************* 2562 28D1 nfa_compile: 2563 28D1 87 .DB 87h 2564 28D2 43 4F 4D 50 .DB "COMPIL",'E'+80H ; COMPILE 2564 28D6 49 4C C5 2565 28D9 B8 28 .DW nfa_qcsp 2566 28DB cfa_compile: 2567 28DB C2 25 .DW docol 2568 28DD 7D 28 .DW cfa_qcomp 2569 28DF A4 22 .DW cfa_fromr 2570 28E1 5D 23 .DW cfa_dup 2571 28E3 06 24 .DW cfa_twop 2572 28E5 90 22 .DW cfa_tor 2573 28E7 9D 23 .DW cfa_at 2574 28E9 88 27 .DW cfa_comma 2575 28EB 73 22 .DW cfa_semis 2576 28ED ;******************************* 2577 28ED ;* 2578 28ED ;* LE MOT [ 2579 28ED ;* 2580 28ED ;* : [ 0 STATE ! ; IMMEDIATE 2581 28ED ;* 2582 28ED ;******************************* 2583 28ED nfa_lbrac: 2584 28ED C1 .DB 0c1h ; [ 2585 28EE DB .DB '['+80H ; [ LEFT BRACKET 2586 28EF D1 28 .DW nfa_compile 2587 28F1 cfa_lbrac: 2588 28F1 C2 25 .DW docol 2589 28F3 2E 26 .DW cfa_zero 2590 28F5 1B 27 .DW cfa_state 2591 28F7 CD 23 .DW cfa_store 2592 28F9 73 22 .DW cfa_semis 2593 28FB ;******************************* 2594 28FB ;* 2595 28FB ;* LE MOT ] 2596 28FB ;* 2597 28FB ;* : ] C0 STATE ! ; 2598 28FB ;* 2599 28FB ;******************************* 2600 28FB nfa_rbrac: 2601 28FB 81 .DB 81h 2602 28FC DD .DB ']'+80H ; ] RIGHT BRACKET 2603 28FD ED 28 .DW nfa_lbrac 2604 28FF cfa_rbrac: 2605 28FF C2 25 .DW docol 2606 2901 1B 20 .DW cfa_lit 2607 2903 C0 00 .DW 0c0h 2608 2905 1B 27 .DW cfa_state 2609 2907 CD 23 .DW cfa_store 2610 2909 73 22 .DW cfa_semis 2611 290B ;******************************* 2612 290B ;* 2613 290B ;* LE MOT SMUDGE 2614 290B ;* 2615 290B ;* : SMUDGE LATEST 20 TOGGLE ; IMMEDIATE 2616 290B ;* 2617 290B ;******************************* 2618 290B nfa_smudge: 2619 290B C6 .DB 0C6h 2620 290C 53 4D 55 44 .DB "SMUDG",'E'+80H ; SMUDGE (WITH FIG FORTH IS NOT IMMEDIATE) 2620 2910 47 C5 2621 2912 FB 28 .DW nfa_rbrac 2622 2914 cfa_smudge: 2623 2914 C2 25 .DW docol 2624 2916 01 28 .DW cfa_latest 2625 2918 1B 20 .DW cfa_lit 2626 291A 20 00 .DW 20h 2627 291C 90 23 .DW cfa_toggle 2628 291E 73 22 .DW cfa_semis 2629 2920 ;******************************* 2630 2920 ;* 2631 2920 ;* LE MOT HEX 2632 2920 ;* 2633 2920 ;* : HEX 10 BASE ! ; 2634 2920 ;* 2635 2920 ;******************************* 2636 2920 nfa_hex: 2637 2920 83 .DB 83h 2638 2921 48 45 D8 .DB "HE",'X'+80H ; HEX 2639 2924 0B 29 .DW nfa_smudge 2640 2926 cfa_hex: 2641 2926 C2 25 .DW docol 2642 2928 1B 20 .DW cfa_lit 2643 292A 10 00 .DW 10h 2644 292C 26 27 .DW cfa_base 2645 292E CD 23 .DW cfa_store 2646 2930 73 22 .DW cfa_semis 2647 2932 ;******************************* 2648 2932 ;* 2649 2932 ;* LE MOT DECIMAL 2650 2932 ;* 2651 2932 ;* : DECIMAL 0A BASE ! ; 2652 2932 ;* 2653 2932 ;******************************* 2654 2932 nfa_decimal: 2655 2932 87 .DB 87h 2656 2933 44 45 43 49 .DB "DECIMA",'L'+80H 2656 2937 4D 41 CC 2657 293A 20 29 .DW nfa_hex 2658 293C cfa_decimal: 2659 293C C2 25 .DW docol 2660 293E 1B 20 .DW cfa_lit 2661 2940 0A 00 .DW 0ah 2662 2942 26 27 .DW cfa_base 2663 2944 CD 23 .DW cfa_store 2664 2946 73 22 .DW cfa_semis 2665 2948 ;******************************* 2666 2948 ;* 2667 2948 ;* LE MOT (;CODE) 2668 2948 ;* 2669 2948 ;* : (;CODE) R> LATEST PFA CFA ! ; 2670 2948 ;* 2671 2948 ;******************************* 2672 2948 nfa_pscode: 2673 2948 87 .DB 87h 2674 2949 28 3B 43 4F .DB "(;CODE",')'+80H ; (;CODE) 2674 294D 44 45 A9 2675 2950 32 29 .DW nfa_decimal 2676 2952 cfa_pscode: 2677 2952 C2 25 .DW docol 2678 2954 A4 22 .DW cfa_fromr 2679 2956 01 28 .DW cfa_latest 2680 2958 3D 28 .DW cfa_pfa 2681 295A 11 28 .DW cfa_cfa 2682 295C CD 23 .DW cfa_store 2683 295E 73 22 .DW cfa_semis 2684 2960 ;******************************* 2685 2960 ;* 2686 2960 ;* LE MOT ;CODE 2687 2960 ;* 2688 2960 ;* : ;CODE ?CSP COMPILE (;CODE) [COMPILE] SMUDGE 2689 2960 ;* [COMPILE] [ FF7E @ EXECUTE ; IMMEDIATE 2690 2960 ;******************************* 2691 2960 nfa_semic: 2692 2960 C5 .DB 0c5h 2693 2961 3B 43 4F 44 .DB ";COD",'E'+80H ; ;CODE 2693 2965 C5 2694 2966 48 29 .DW nfa_pscode 2695 2968 cfa_scode: 2696 2968 C2 25 .DW docol 2697 296A BF 28 .DW cfa_qcsp 2698 296C DB 28 .DW cfa_compile 2699 296E 52 29 .DW cfa_pscode 2700 2970 14 29 .DW cfa_smudge 2701 2972 F1 28 .DW cfa_lbrac 2702 2974 1B 20 .DW cfa_lit 2703 2976 7E FF .DW adr_assadr ; adr 0ff7eh qui contient le cfa_quit 2704 2978 9D 23 .DW cfa_at 2705 297A 30 20 .DW cfa_execute ; execute QUIT 2706 297C 73 22 .DW cfa_semis 2707 297E ;******************************* 2708 297E ;* 2709 297E ;* LE MOT 2726 2990 ;* 2727 2990 ;* : DOES> R> LATEST PFA ! (;CODE) SMUDGE [ 2A C, FF8C , etc... 2728 2990 ;* 2729 2990 ;******************************* 2730 2990 nfa_does: 2731 2990 85 .DB 85h 2732 2991 44 4F 45 53 .DB "DOES",'>'+80H ; DOES> 2732 2995 BE 2733 2996 7E 29 .DW nfa_build 2734 2998 cfa_does: 2735 2998 C2 25 .DW docol 2736 299A A4 22 .DW cfa_fromr 2737 299C 01 28 .DW cfa_latest 2738 299E 3D 28 .DW cfa_pfa 2739 29A0 CD 23 .DW cfa_store 2740 29A2 52 29 .DW cfa_pscode 2741 29A4 c_dodoe: 2742 29A4 2A 8C FF LD HL,(RPP) 2743 29A7 2B DEC HL 2744 29A8 70 LD (HL),B 2745 29A9 2B DEC HL 2746 29AA 71 LD (HL),C 2747 29AB 22 8C FF LD (RPP),HL 2748 29AE 13 INC DE 2749 29AF EB EX DE,HL 2750 29B0 4E LD C,(HL) 2751 29B1 23 INC HL 2752 29B2 46 LD B,(HL) 2753 29B3 23 INC HL 2754 29B4 E5 PUSH HL 2755 29B5 DD E9 JP (IX) 2756 29B7 ;******************************* 2757 29B7 ;* 2758 29B7 ;* LE MOT COUNT 2759 29B7 ;* 2760 29B7 ;* CREATE COUNT etc SMUDGE 2761 29B7 ;* 2762 29B7 ;******************************* 2763 29B7 nfa_count: 2764 29B7 85 .DB 85h 2765 29B8 43 4F 55 4E .DB "COUN",'T'+80H ; COUNT 2765 29BC D4 2766 29BD 90 29 .DW nfa_does 2767 29BF cfa_count: 2768 29BF C1 29 .DW $+2 2769 29C1 E1 POP HL 2770 29C2 5E LD E,(HL) 2771 29C3 16 00 LD D,00H 2772 29C5 23 INC HL 2773 29C6 E5 PUSH HL 2774 29C7 D5 PUSH DE 2775 29C8 DD E9 JP (IX) 2776 29CA ;******************************* 2777 29CA ;* 2778 29CA ;* LE MOT TYPE 2779 29CA ;* 2780 29CA ;* CREATE TYPE SMUDGE 1794 LATEST PFA CFA ! 2781 29CA ;* 2782 29CA ;******************************* 2783 29CA nfa_type: 2784 29CA 84 .DB 84h 2785 29CB 54 59 50 C5 .DB "TYP",'E'+80H ; TYPE 2786 29CF B7 29 .DW nfa_count 2787 29D1 cfa_type: 2788 29D1 94 17 .DW 1794h ; APPEL ROM 1794H 2789 29D3 ;******************************* 2790 29D3 ;* 2791 29D3 ;* LE MOT -TRAILING 2792 29D3 ;* 2793 29D3 ;* CREATE -TRAILING etc SMUDGE 2794 29D3 ;* 2795 29D3 ;******************************* 2796 29D3 nfa_dtrai: 2797 29D3 89 .DB 89h 2798 29D4 2D 54 52 41 .DB "-TRAILIN",'G'+80H ; -TRAILING 2798 29D8 49 4C 49 4E 2798 29DC C7 2799 29DD CA 29 .DW nfa_type 2800 29DF cfa_dtrai: 2801 29DF E1 29 .DW $+2 2802 29E1 D1 POP DE 2803 29E2 E1 POP HL 2804 29E3 E5 PUSH HL 2805 29E4 19 ADD HL,DE 2806 29E5 dtrai2: 2807 29E5 7A LD A,D 2808 29E6 B3 OR E 2809 29E7 28 08 JR Z,dtrai1 2810 29E9 2B DEC HL 2811 29EA 7E LD A,(HL) 2812 29EB FE 20 CP 20H 2813 29ED 1B DEC DE 2814 29EE 28 F5 JR Z,dtrai2 2815 29F0 13 INC DE 2816 29F1 dtrai1: 2817 29F1 D5 PUSH DE 2818 29F2 DD E9 JP (IX) 2819 29F4 ;******************************* 2820 29F4 ;* 2821 29F4 ;* LE MOT (.") 2822 29F4 ;* 2823 29F4 ;* : (.") R COUNT DUP 1+ R> + >R TYPE ; 2824 29F4 ;* 2825 29F4 ;******************************* 2826 29F4 nfa_pdotq: 2827 29F4 84 .DB 84h 2828 29F5 28 2E 22 A9 .DB 28H,2EH,22H,0A9H ; (.") 2829 29F9 D3 29 .DW nfa_dtrai 2830 29FB cfa_pdotq: 2831 29FB C2 25 .DW docol 2832 29FD B7 22 .DW cfa_frr 2833 29FF BF 29 .DW cfa_count 2834 2A01 5D 23 .DW cfa_dup 2835 2A03 FA 23 .DW cfa_onep 2836 2A05 A4 22 .DW cfa_fromr 2837 2A07 E2 22 .DW cfa_plus 2838 2A09 90 22 .DW cfa_tor 2839 2A0B D1 29 .DW cfa_type 2840 2A0D 73 22 .DW cfa_semis 2841 2A0F ;******************************* 2842 2A0F ;* 2843 2A0F ;* LE MOT ." 2844 2A0F ;* 2845 2A0F ;* : ." 22 STATE @ IF COMPILE (.") WORD HERE C@ 1+ ALLOT 2846 2A0F ;* [COMPILE] ;S ENDIF WORD HERE COUNT TYPE ; IMMEDIATE 2847 2A0F ;******************************* 2848 2A0F nfa_dotq: 2849 2A0F C2 .DB 0c2h 2850 2A10 2E A2 .DB 2EH,0A2H ; ." 2851 2A12 F4 29 .DW nfa_pdotq 2852 2A14 cfa_dotq: 2853 2A14 C2 25 .DW docol 2854 2A16 1B 20 .DW cfa_lit 2855 2A18 22 00 .DW 22h 2856 2A1A 1B 27 .DW cfa_state 2857 2A1C 9D 23 .DW cfa_at 2858 2A1E 42 20 .DW cfa_obranch 2859 2A20 12 00 .DW 12h 2860 2A22 DB 28 .DW cfa_compile 2861 2A24 FB 29 .DW cfa_pdotq 2862 2A26 C9 2A .DW cfa_word 2863 2A28 70 27 .DW cfa_here 2864 2A2A AB 23 .DW cfa_cat 2865 2A2C FA 23 .DW cfa_onep 2866 2A2E 7C 27 .DW cfa_allot 2867 2A30 73 22 .DW cfa_semis 2868 2A32 C9 2A .DW cfa_word 2869 2A34 70 27 .DW cfa_here 2870 2A36 BF 29 .DW cfa_count 2871 2A38 D1 29 .DW cfa_type 2872 2A3A 73 22 .DW cfa_semis 2873 2A3C ;******************************* 2874 2A3C ;* 2875 2A3C ;* LE MOT QUERRY 2876 2A3C ;* 2877 2A3C ;* : QUERRY TIB @ 50 EXPECT 0 IN ! ; 2878 2A3C ;* 2879 2A3C ;******************************* 2880 2A3C nfa_query: 2881 2A3C 85 .DB 85h 2882 2A3D 51 55 45 52 .DB "QUER",'Y'+80H ; QUERY 2882 2A41 D9 2883 2A42 0F 2A .DW nfa_dotq 2884 2A44 cfa_query 2885 2A44 C2 25 .DW docol 2886 2A46 A6 26 .DW cfa_tib 2887 2A48 9D 23 .DW cfa_at 2888 2A4A 1B 20 .DW cfa_lit 2889 2A4C 50 00 .DW 50h 2890 2A4E 3D 33 .DW cfa_expect 2891 2A50 2E 26 .DW cfa_zero 2892 2A52 E9 26 .DW cfa_in 2893 2A54 CD 23 .DW cfa_store 2894 2A56 73 22 .DW cfa_semis 2895 2A58 ;******************************* 2896 2A58 ;* 2897 2A58 ;* LE MOT FILL 2898 2A58 ;* 2899 2A58 ;* CREATE FILL etc SMUDGE LATEST PFA CFA DUP 2900 2A58 ;* A + SWAP ! 2901 2A58 ;******************************* 2902 2A58 nfa_fill: 2903 2A58 84 .DB 84h 2904 2A59 46 49 4C CC .DB "FIL",'L'+80H ; FILL 2905 2A5D 3C 2A .DW nfa_query 2906 2A5F cfa_fill: 2907 2A5F 69 2A .DW c_fill 2908 2A61 c_fill2: 2909 2A61 D9 EXX 2910 2A62 1E 20 LD E,20H 2911 2A64 21 .DB 21h ; Combine avec les instruction suivantes EXX .. fait LD HL,1ED9 NOP 2912 2A65 c_fill3: 2913 2A65 D9 EXX 2914 2A66 1E 00 LD E,00H 2915 2A68 21 .DB 21h ; 21 combine avec EXX (D9) POP DE (code D1) fait LD HL,0D1D9H 2916 2A69 c_fill: 2917 2A69 D9 EXX 2918 2A6A D1 POP DE 2919 2A6B C1 POP BC 2920 2A6C E1 POP HL 2921 2A6D CD 74 2A CALL c_fill1 2922 2A70 D9 EXX 2923 2A71 DD E9 JP (IX) 2924 2A73 c_fill4: 2925 2A73 DF RST 18H 2926 2A74 c_fill1: 2927 2A74 78 LD A,B 2928 2A75 B1 OR C 2929 2A76 C8 RET Z 2930 2A77 73 LD (HL),E 2931 2A78 0B DEC BC 2932 2A79 78 LD A,B 2933 2A7A B1 OR C 2934 2A7B C8 RET Z 2935 2A7C 54 LD D,H 2936 2A7D 5D LD E,L 2937 2A7E 13 INC DE 2938 2A7F ED B0 LDIR 2939 2A81 C9 RET 2940 2A82 ;******************************* 2941 2A82 ;* 2942 2A82 ;* LE MOT ERASE 2943 2A82 ;* 2944 2A82 ;* CREATE ERASE SMUDGE ' FILL 4 + LATEST PFA CFA ! 2945 2A82 ;* 2946 2A82 ;******************************* 2947 2A82 nfa_erasee: 2948 2A82 85 .DB 85h 2949 2A83 45 52 41 53 .DB "ERAS",'E'+80H ;ERASE 2949 2A87 C5 2950 2A88 58 2A .DW nfa_fill 2951 2A8A 65 2A .DW c_fill3 2952 2A8C ;******************************* 2953 2A8C ;* 2954 2A8C ;* LE MOT BLANKS 2955 2A8C ;* 2956 2A8C ;* CREATE BLANKS SMUDGE ' FILL LATEST PFA CFA ! 2957 2A8C ;* 2958 2A8C ;******************************* 2959 2A8C nfa_blanks: 2960 2A8C 86 .DB 86h 2961 2A8D 42 4C 41 4E .DB "BLANK",'S'+80H ; BLANKS 2961 2A91 4B D3 2962 2A93 82 2A .DW nfa_erasee 2963 2A95 cfa_blanks: 2964 2A95 61 2A .DW c_fill2 2965 2A97 ;******************************* 2966 2A97 ;* 2967 2A97 ;* LE MOT HOLD 2968 2A97 ;* 2969 2A97 ;* : HOLD -1 HLD +! HLD @ C! ; 2970 2A97 ;* 2971 2A97 ;******************************* 2972 2A97 nfa_hold: 2973 2A97 84 .DB 84h 2974 2A98 48 4F 4C C4 .DB "HOL",'D'+80H ; HOLD 2975 2A9C 8C 2A .DW nfa_blanks 2976 2A9E cfa_hold: 2977 2A9E C2 25 .DW docol 2978 2AA0 1B 20 .DW cfa_lit 2979 2AA2 FF FF .DW 0ffffh 2980 2AA4 4D 27 .DW cfa_hld 2981 2AA6 7A 23 .DW cfa_pstor 2982 2AA8 4D 27 .DW cfa_hld 2983 2AAA 9D 23 .DW cfa_at 2984 2AAC DB 23 .DW cfa_cstore 2985 2AAE 73 22 .DW cfa_semis 2986 2AB0 ;******************************* 2987 2AB0 ;* 2988 2AB0 ;* LE MOT PAD 2989 2AB0 ;* 2990 2AB0 ;* : PAD HERE 44 + ; 2991 2AB0 ;* 2992 2AB0 ;******************************* 2993 2AB0 nfa_pad: 2994 2AB0 83 .DB 83h 2995 2AB1 50 41 C4 .DB "PA",'D'+80H ; PAD 2996 2AB4 97 2A .DW nfa_hold 2997 2AB6 cfa_pad: 2998 2AB6 C2 25 .DW docol 2999 2AB8 70 27 .DW cfa_here 3000 2ABA 1B 20 .DW cfa_lit 3001 2ABC 44 00 .DW 44h 3002 2ABE E2 22 .DW cfa_plus 3003 2AC0 73 22 .DW cfa_semis 3004 2AC2 ;******************************* 3005 2AC2 ;* 3006 2AC2 ;* LE MOT WORD 3007 2AC2 ;* : WORD BLK @ -DUP IF FF46 @ EXECUTE ELSE TIB @ 3008 2AC2 ;* ENDIF IN @ + SWAP ENCLOSE HERE 22 BLANKS IN +! OVER - 3009 2AC2 ;* >R R HERE C! + HERE 1+ R> CMOVE ; 3010 2AC2 ;******************************* 3011 2AC2 nfa_word: 3012 2AC2 84 .DB 84h 3013 2AC3 57 4F 52 C4 .DB "WOR",'D'+80H ; WORD 3014 2AC7 B0 2A .DW nfa_pad 3015 2AC9 cfa_word: 3016 2AC9 C2 25 .DW docol 3017 2ACB E0 26 .DW cfa_blk 3018 2ACD 9D 23 .DW cfa_at 3019 2ACF D6 27 .DW cfa_ddup 3020 2AD1 42 20 .DW cfa_obranch 3021 2AD3 0E 00 .DW 0eh 3022 2AD5 1B 20 .DW cfa_lit 3023 2AD7 46 FF .DW 0ff46h ; Contient cfa_block 3024 2AD9 9D 23 .DW cfa_at 3025 2ADB 30 20 .DW cfa_execute ; execute BLOCK 3026 2ADD 61 20 .DW cfa_branch 3027 2ADF 06 00 .DW 06h 3028 2AE1 A6 26 .DW cfa_tib 3029 2AE3 9D 23 .DW cfa_at 3030 2AE5 E9 26 .DW cfa_in 3031 2AE7 9D 23 .DW cfa_at 3032 2AE9 E2 22 .DW cfa_plus 3033 2AEB 50 23 .DW cfa_swap 3034 2AED 4E 21 .DW cfa_enclose 3035 2AEF 70 27 .DW cfa_here 3036 2AF1 1B 20 .DW cfa_lit 3037 2AF3 22 00 .DW 22h 3038 2AF5 95 2A .DW cfa_blanks 3039 2AF7 E9 26 .DW cfa_in 3040 2AF9 7A 23 .DW cfa_pstor 3041 2AFB 34 23 .DW cfa_over 3042 2AFD 12 24 .DW cfa_subb 3043 2AFF 90 22 .DW cfa_tor 3044 2B01 B7 22 .DW cfa_frr 3045 2B03 70 27 .DW cfa_here 3046 2B05 DB 23 .DW cfa_cstore 3047 2B07 E2 22 .DW cfa_plus 3048 2B09 70 27 .DW cfa_here 3049 2B0B FA 23 .DW cfa_onep 3050 2B0D A4 22 .DW cfa_fromr 3051 2B0F 88 21 .DW cfa_cmove 3052 2B11 73 22 .DW cfa_semis 3053 2B13 ;******************************* 3054 2B13 ;* 3055 2B13 ;* LE MOT (NUMBER) 3056 2B13 ;* : (NUMBER) BEGIN 1+ DUP >R C@ BASE @ DIGIT WHILE SWAP BASE @ U* DROP ROT 3057 2B13 ;* BASE @ U* D+ DPL @ 1+ IF 1 DPL +! ENDIF R> REPEAT R> ; 3058 2B13 ;* 3059 2B13 ;******************************* 3060 2B13 nfa_pnumb: 3061 2B13 88 .DB 88h 3062 2B14 28 4E 55 4D .DB "(NUMBER",')'+80H ; (NUMBER) 3062 2B18 42 45 52 A9 3063 2B1C C2 2A .DW nfa_word 3064 2B1E cfa_pnumb: 3065 2B1E C2 25 .DW docol 3066 2B20 FA 23 .DW cfa_onep ; BEGIN 3067 2B22 5D 23 .DW cfa_dup 3068 2B24 90 22 .DW cfa_tor 3069 2B26 AB 23 .DW cfa_cat 3070 2B28 26 27 .DW cfa_base 3071 2B2A 9D 23 .DW cfa_at 3072 2B2C DD 20 .DW cfa_digit 3073 2B2E 42 20 .DW cfa_obranch ; WHILE 3074 2B30 2C 00 .DW 2ch 3075 2B32 50 23 .DW cfa_swap 3076 2B34 26 27 .DW cfa_base 3077 2B36 9D 23 .DW cfa_at 3078 2B38 A0 21 .DW cfa_ustar 3079 2B3A 44 23 .DW cfa_drop 3080 2B3C 5C 24 .DW cfa_rot 3081 2B3E 26 27 .DW cfa_base 3082 2B40 9D 23 .DW cfa_at 3083 2B42 A0 21 .DW cfa_ustar 3084 2B44 EF 22 .DW cfa_dplus 3085 2B46 30 27 .DW cfa_dpl 3086 2B48 9D 23 .DW cfa_at 3087 2B4A FA 23 .DW cfa_onep 3088 2B4C 42 20 .DW cfa_obranch ; IF 3089 2B4E 08 00 .DW 08h 3090 2B50 36 26 .DW cfa_one 3091 2B52 30 27 .DW cfa_dpl 3092 2B54 7A 23 .DW cfa_pstor 3093 2B56 A4 22 .DW cfa_fromr ; ENDIF 3094 2B58 61 20 .DW cfa_branch ; REPEAT 3095 2B5A C6 FF .DW 0ffc6h 3096 2B5C A4 22 .DW cfa_fromr ; SORTIE DE WHILE 3097 2B5E 73 22 .DW cfa_semis 3098 2B60 ;******************************* 3099 2B60 ;* 3100 2B60 ;* LE MOT NUMBER 3101 2B60 ;* : NUMBER FF80 @ EXECUTE [COMPILE] ;S [ 25C2 , ] 0 0 ROT DUP 1+ C@ 3102 2B60 ;* 2D = DUP >R + -1 BEGIN DPL ! (NUMBER) DUP C@ BL - WHILE DUP C@ 2E - 0 ?ERROR 3103 2B60 ;* 0 REPEAT DROP R> IF DMINUS ENDIF ; 3104 2B60 ;******************************* 3105 2B60 nfa_numb: 3106 2B60 86 .DB 86h 3107 2B61 4E 55 4D 42 .DB "NUMBE",'R'+80H ; NUMBER 3107 2B65 45 D2 3108 2B67 13 2B .DW nfa_pnumb 3109 2B69 cfa_numb: 3110 2B69 C2 25 .DW docol 3111 2B6B 1B 20 .DW cfa_lit 3112 2B6D 80 FF .DW 0ff80h ; contient cfa_numb2 - Execute par NUMBER 3113 2B6F 9D 23 .DW cfa_at 3114 2B71 30 20 .DW cfa_execute ; execute cfa_numb2 3115 2B73 73 22 .DW cfa_semis ; [COMPILE] ;S 3116 2B75 3117 2B75 cfa_numb2: 3118 2B75 C2 25 .DW docol ; [ 25C2 , ] 3119 2B77 2E 26 .DW cfa_zero 3120 2B79 2E 26 .DW cfa_zero 3121 2B7B 5C 24 .DW cfa_rot 3122 2B7D 5D 23 .DW cfa_dup 3123 2B7F FA 23 .DW cfa_onep 3124 2B81 AB 23 .DW cfa_cat 3125 2B83 1B 20 .DW cfa_lit 3126 2B85 2D 00 .DW 2dh 3127 2B87 20 24 .DW cfa_equal 3128 2B89 5D 23 .DW cfa_dup 3129 2B8B 90 22 .DW cfa_tor 3130 2B8D E2 22 .DW cfa_plus 3131 2B8F 1B 20 .DW cfa_lit 3132 2B91 FF FF .DW 0ffffh 3133 2B93 30 27 .DW cfa_dpl ; BEGIN 3134 2B95 CD 23 .DW cfa_store 3135 2B97 1E 2B .DW cfa_pnumb 3136 2B99 5D 23 .DW cfa_dup 3137 2B9B AB 23 .DW cfa_cat 3138 2B9D 4F 26 .DW cfa_bl 3139 2B9F 12 24 .DW cfa_subb 3140 2BA1 42 20 .DW cfa_obranch ; WHILE 3141 2BA3 16 00 .DW 16h 3142 2BA5 5D 23 .DW cfa_dup 3143 2BA7 AB 23 .DW cfa_cat 3144 2BA9 1B 20 .DW cfa_lit 3145 2BAB 2E 00 .DW 2eh 3146 2BAD 12 24 .DW cfa_subb 3147 2BAF 2E 26 .DW cfa_zero 3148 2BB1 65 28 .DW cfa_qerr 3149 2BB3 2E 26 .DW cfa_zero 3150 2BB5 61 20 .DW cfa_branch ; REPEAT 3151 2BB7 DC FF .DW 0ffdch 3152 2BB9 44 23 .DW cfa_drop ; SORTIE DE WHILE 3153 2BBB A4 22 .DW cfa_fromr 3154 2BBD 42 20 .DW cfa_obranch ; IF 3155 2BBF 04 00 .DW 04h 3156 2BC1 1A 23 .DW cfa_dminus 3157 2BC3 73 22 .DW cfa_semis ; ENDIF 3158 2BC5 ;******************************* 3159 2BC5 ;* 3160 2BC5 ;* LE MOT -FIND 3161 2BC5 ;* 3162 2BC5 ;* : -FIND BL WORD HERE COUNT CAPITAL HERE CONTEXT @ @ (FIND) DUP 0= 3163 2BC5 ;* IF DROP HERE LATEST (xfind) ENDIF ; 3164 2BC5 ;******************************* 3165 2BC5 nfa_dfind: 3166 2BC5 85 .DB 85h 3167 2BC6 2D 46 49 4E .DB "-FIN",'D'+80H ;-FIND (0-1) FAILURE 3167 2BCA C4 3168 2BCB 60 2B .DW nfa_numb 3169 2BCD cfa_dfind: 3170 2BCD C2 25 .DW docol 3171 2BCF 4F 26 .DW cfa_bl 3172 2BD1 C9 2A .DW cfa_word 3173 2BD3 70 27 .DW cfa_here 3174 2BD5 BF 29 .DW cfa_count 3175 2BD7 0D 33 .DW cfa_capital 3176 2BD9 70 27 .DW cfa_here 3177 2BDB 01 27 .DW cfa_context 3178 2BDD 9D 23 .DW cfa_at 3179 2BDF 9D 23 .DW cfa_at 3180 2BE1 07 21 .DW cfa_xfind 3181 2BE3 5D 23 .DW cfa_dup 3182 2BE5 BE 22 .DW cfa_z.equ 3183 2BE7 42 20 .DW cfa_obranch 3184 2BE9 0A 00 .DW 0ah 3185 2BEB 44 23 .DW cfa_drop 3186 2BED 70 27 .DW cfa_here 3187 2BEF 01 28 .DW cfa_latest 3188 2BF1 07 21 .DW cfa_xfind 3189 2BF3 73 22 .DW cfa_semis 3190 2BF5 ;******************************* 3191 2BF5 ;* 3192 2BF5 ;* LE MOT ERROR 3193 2BF5 ;* 3194 2BF5 ;* : ERROR FAST FF82 @ EXECUTE ; 3195 2BF5 ;* 3196 2BF5 ;******************************* 3197 2BF5 nfa_error: 3198 2BF5 85 .DB 85h 3199 2BF6 45 52 52 4F .DB "ERRO",'R'+80H ; ERROR 3199 2BFA D2 3200 2BFB C5 2B .DW nfa_dfind 3201 2BFD cfa_error: 3202 2BFD C2 25 .DW docol 3203 2BFF 43 2E .DW cfa_fast 3204 2C01 1B 20 .DW cfa_lit 3205 2C03 82 FF .DW 0ff82h ; contient cfa_error2 3206 2C05 9D 23 .DW cfa_at 3207 2C07 30 20 .DW cfa_execute ; execute cfa_error2 3208 2C09 73 22 .DW cfa_semis 3209 2C0B c_error1: ; adresse 2c0bh Init registre IX 3210 2C0B DD 21 0A 20 LD IX, c_NEXT 3211 2C0F 6F LD L,A 3212 2C10 26 00 LD H,00H 3213 2C12 E5 PUSH HL 3214 2C13 01 82 FF LD BC,0FF82H ; BC pointe vers cfa_error2 3215 2C16 DD E9 JP (IX) 3216 2C18 ;******************************* 3217 2C18 ;* 3218 2C18 ;* 3219 2C18 ;* 3220 2C18 ;* 25C2 , ] CR HERE COUNT TYPE ." ? " MESSAGE SP! IN @ BLK @ SLOW QUIT [ 3221 2C18 ;* 3222 2C18 ;******************************* 3223 2C18 cfa_error2: 3224 2C18 C2 25 .DW docol 3225 2C1A 31 33 .DW cfa_cr 3226 2C1C 70 27 .DW cfa_here 3227 2C1E BF 29 .DW cfa_count 3228 2C20 D1 29 .DW cfa_type 3229 2C22 FB 29 .DW cfa_pdotq 3230 2C24 02 .DB 02h 3231 2C25 3F 20 .DB "? " 3232 2C27 6B 32 .DW cfa_mess 3233 2C29 48 22 .DW cfa_spsto 3234 2C2B E9 26 .DW cfa_in 3235 2C2D 9D 23 .DW cfa_at 3236 2C2F E0 26 .DW cfa_blk 3237 2C31 9D 23 .DW cfa_at 3238 2C33 52 2E .DW cfa_slow 3239 2C35 7B 30 .DW cfa_quit 3240 2C37 ;******************************* 3241 2C37 ;* 3242 2C37 ;* LE MOT ID. 3243 2C37 ;* : ID. PAD BL 5F FILL DUP PFA LFA OVER 3244 2C37 ;* - PAD SWAP CMOVE PAD COUNT 1F AND TYPE SPACE ; 3245 2C37 ;* 3246 2C37 ;******************************* 3247 2C37 nfa_iddot: 3248 2C37 83 .DB 83h 3249 2C38 49 44 AE .DB "ID",'.'+80H ; ID. 3250 2C3B F5 2B .DW nfa_error 3251 2C3D cfa_iddot: 3252 2C3D C2 25 .DW docol 3253 2C3F B6 2A .DW cfa_pad 3254 2C41 4F 26 .DW cfa_bl 3255 2C43 1B 20 .DW cfa_lit 3256 2C45 5F 00 .DW 05fh 3257 2C47 5F 2A .DW cfa_fill 3258 2C49 5D 23 .DW cfa_dup 3259 2C4B 3D 28 .DW cfa_pfa 3260 2C4D 19 28 .DW cfa_lfa 3261 2C4F 34 23 .DW cfa_over 3262 2C51 12 24 .DW cfa_subb 3263 2C53 B6 2A .DW cfa_pad 3264 2C55 50 23 .DW cfa_swap 3265 2C57 88 21 .DW cfa_cmove 3266 2C59 B6 2A .DW cfa_pad 3267 2C5B BF 29 .DW cfa_count 3268 2C5D 1B 20 .DW cfa_lit 3269 2C5F 1F 00 .DW 01fh 3270 2C61 01 22 .DW cfa_andd 3271 2C63 D1 29 .DW cfa_type 3272 2C65 CC 27 .DW cfa_space 3273 2C67 73 22 .DW cfa_semis 3274 2C69 ;******************************* 3275 2C69 ;* 3276 2C69 ;* LE MOT CREATE 3277 2C69 ;* : CREATE -FIND IF DROP CR NFA ID. 4 MESSAGE ENDIF 3278 2C69 ;* HERE DUP C@ WIDTH @ MIN 1+ ALLOT DUP A0 TOGGLE HERE 1- 80 TOGGLE 3279 2C69 ;* LATEST , CURRENT @ ! HERE 2+ , ; 3280 2C69 ;******************************* 3281 2C69 nfa_creat: 3282 2C69 86 .DB 86h 3283 2C6A 43 52 45 41 .DB "CREAT",'E'+80H ; CREATE 3283 2C6E 54 C5 3284 2C70 37 2C .DW nfa_iddot 3285 2C72 cfa_create: 3286 2C72 C2 25 .DW docol 3287 2C74 CD 2B .DW cfa_dfind ; RECHERCHE (FLAG) 3288 2C76 42 20 .DW cfa_obranch ; IF 3289 2C78 10 00 .DW 10h 3290 2C7A 44 23 .DW cfa_drop ; SI FLAG 1 REJETTE 3291 2C7C 31 33 .DW cfa_cr ; 3292 2C7E 27 28 .DW cfa_nfa ; NAME ADRESSE 3293 2C80 3D 2C .DW cfa_iddot ; PRINT NAME 3294 2C82 1B 20 .DW cfa_lit 3295 2C84 04 00 .DW 04h 3296 2C86 6B 32 .DW cfa_mess ; MESSAGE ERREUR 4 3297 2C88 70 27 .DW cfa_here ; SINON 3298 2C8A 5D 23 .DW cfa_dup 3299 2C8C AB 23 .DW cfa_cat 3300 2C8E B2 26 .DW cfa_width 3301 2C90 9D 23 .DW cfa_at 3302 2C92 68 31 .DW cfa_min 3303 2C94 FA 23 .DW cfa_onep 3304 2C96 7C 27 .DW cfa_allot 3305 2C98 5D 23 .DW cfa_dup 3306 2C9A 1B 20 .DW cfa_lit 3307 2C9C A0 00 .DW 0a0h 3308 2C9E 90 23 .DW cfa_toggle 3309 2CA0 70 27 .DW cfa_here 3310 2CA2 F0 24 .DW cfa_onel 3311 2CA4 1B 20 .DW cfa_lit 3312 2CA6 80 00 .DW 80h 3313 2CA8 90 23 .DW cfa_toggle 3314 2CAA 01 28 .DW cfa_latest 3315 2CAC 88 27 .DW cfa_comma 3316 2CAE 0F 27 .DW cfa_current 3317 2CB0 9D 23 .DW cfa_at 3318 2CB2 CD 23 .DW cfa_store 3319 2CB4 70 27 .DW cfa_here 3320 2CB6 06 24 .DW cfa_twop 3321 2CB8 88 27 .DW cfa_comma 3322 2CBA 73 22 .DW cfa_semis 3323 2CBC ;******************************* 3324 2CBC ;* 3325 2CBC ;* LE MOT [COMPILE] 3326 2CBC ;* 3327 2CBC ;* : [COMPILE] -FIND 0= 0 ?ERROR DROP CFA , ; IMMEDIATE 3328 2CBC ;* 3329 2CBC ;******************************* 3330 2CBC nfa_bcomp: 3331 2CBC C9 .DB 0c9h 3332 2CBD 5B 43 4F 4D .DB "[COMPILE",']'+80H ; [COMPILE] 3332 2CC1 50 49 4C 45 3332 2CC5 DD 3333 2CC6 69 2C .DW nfa_creat 3334 2CC8 cfa_bcomp: 3335 2CC8 C2 25 .DW docol 3336 2CCA CD 2B .DW cfa_dfind 3337 2CCC BE 22 .DW cfa_z.equ 3338 2CCE 2E 26 .DW cfa_zero 3339 2CD0 65 28 .DW cfa_qerr 3340 2CD2 44 23 .DW cfa_drop 3341 2CD4 11 28 .DW cfa_cfa 3342 2CD6 88 27 .DW cfa_comma 3343 2CD8 73 22 .DW cfa_semis 3344 2CDA ;******************************* 3345 2CDA ;* 3346 2CDA ;* LE MOT LITERAL 3347 2CDA ;* 3348 2CDA ;* : LITERAL STATE @ IF COMPILE LIT , ENDIF ; IMMEDIATE 3349 2CDA ;* 3350 2CDA ;******************************* 3351 2CDA nfa_liter: 3352 2CDA C7 .DB 0c7h 3353 2CDB 4C 49 54 45 .DB "LITERA",'L'+80H ; LITERAL 3353 2CDF 52 41 CC 3354 2CE2 BC 2C .DW nfa_bcomp 3355 2CE4 cfa_liter: 3356 2CE4 C2 25 .DW docol 3357 2CE6 1B 27 .DW cfa_state 3358 2CE8 9D 23 .DW cfa_at 3359 2CEA 42 20 .DW cfa_obranch 3360 2CEC 08 00 .DW 08h 3361 2CEE DB 28 .DW cfa_compile 3362 2CF0 1B 20 .DW cfa_lit 3363 2CF2 88 27 .DW cfa_comma 3364 2CF4 73 22 .DW cfa_semis 3365 2CF6 ;******************************* 3366 2CF6 ;* 3367 2CF6 ;* LE MOT DLITERAL 3368 2CF6 ;* 3369 2CF6 ;* : DLITERAL STATE @ IF SWAP LITERAL LITERAL ENDIF ; IMMEDIATE 3370 2CF6 ;* 3371 2CF6 ;******************************* 3372 2CF6 nfa_dlite: 3373 2CF6 C8 .DB 0c8h 3374 2CF7 44 4C 49 54 .DB "DLITERA",'L'+80H ; DLITERAL 3374 2CFB 45 52 41 CC 3375 2CFF DA 2C .DW nfa_liter 3376 2D01 cfa_dlite: 3377 2D01 C2 25 .DW docol 3378 2D03 1B 27 .DW cfa_state 3379 2D05 9D 23 .DW cfa_at 3380 2D07 42 20 .DW cfa_obranch 3381 2D09 08 00 .DW 08h 3382 2D0B 50 23 .DW cfa_swap 3383 2D0D E4 2C .DW cfa_liter 3384 2D0F E4 2C .DW cfa_liter 3385 2D11 73 22 .DW cfa_semis 3386 2D13 ;******************************* 3387 2D13 ;* 3388 2D13 ;* LE MOT ?STACK 3389 2D13 ;* 3390 2D13 ;* CREATE ?STACK etc SMUDGE 3391 2D13 ;* 3392 2D13 ;******************************* 3393 2D13 nfa_qstac: 3394 2D13 86 .DB 86h 3395 2D14 3F 53 54 41 .DB "?STAC",'K'+80H ; ?STACK 3395 2D18 43 CB 3396 2D1A F6 2C .DW nfa_dlite 3397 2D1C cfa_qstac: 3398 2D1C 1E 2D .DW $+2 3399 2D1E 2A 64 FF LD HL,(adr_dp) 3400 2D21 EB EX DE,HL 3401 2D22 2A 56 FF LD HL,( adr_first) 3402 2D25 ED 52 SBC HL,DE 3403 2D27 30 05 JR NC, qstac1 3404 2D29 3E 02 LD A,02H 3405 2D2B C3 0B 2C JP c_error1 3406 2D2E qstac1: 3407 2D2E 32 00 08 LD (0800H),A 3408 2D31 2A 81 FE LD HL,(0FE81H) 3409 2D34 32 08 08 LD (0808H),A 3410 2D37 EB EX DE,HL 3411 2D38 21 00 FF LD HL,0FF00H 3412 2D3B 39 ADD HL,SP 3413 2D3C ED 52 SBC HL,DE 3414 2D3E 30 05 JR NC, qstac2 3415 2D40 3E 07 LD A,07H 3416 2D42 C3 0B 2C JP c_error1 3417 2D45 qstac2: 3418 2D45 19 ADD HL,DE 3419 2D46 24 INC H 3420 2D47 EB EX DE,HL 3421 2D48 2A A1 FF LD HL,(adr_szero) 3422 2D4B ED 52 SBC HL,DE 3423 2D4D 30 05 JR NC, qstac3 3424 2D4F 3E 01 LD A,01H 3425 2D51 C3 0B 2C JP c_error1 3426 2D54 qstac3: 3427 2D54 CD 5A 2D CALL qstac4 3428 2D57 C3 0A 20 JP c_NEXT 3429 2D5A qstac4: 3430 2D5A CD D3 10 CALL 10D3H 3431 2D5D C8 RET Z 3432 2D5E FE 1B CP 1BH 3433 2D60 20 05 JR NZ, qstac5 3434 2D62 3E 05 LD A,05H 3435 2D64 C3 0B 2C JP c_error1 3436 2D67 qstac5: 3437 2D67 DF RST 18H 3438 2D68 3E 01 LD A,01H 3439 2D6A 32 AE FE LD (0FEAEH),A 3440 2D6D C9 RET 3441 2D6E ;******************************* 3442 2D6E ;* 3443 2D6E ;* LE MOT INTERPRET 3444 2D6E ;* : INTERPRET BEGIN -FIND IF STATE @ < IF CFA , ELSE CFA EXECUTE ENDIF 3445 2D6E ;* ?STACK ELSE HERE NUMBER DPL @ 1+ IF [COMPILE] DLITERAL ELSE DROP [COMPILE] 3446 2D6E ;* LITERAL ENDIF ?STACK ENDIF AGAIN [ SMUDGE ;S ] 3447 2D6E ;******************************* 3448 2D6E nfa_inter: 3449 2D6E 89 .DB 89h 3450 2D6F 49 4E 54 45 .DB "INTERPRE",'T'+80H ; INTERPRET 3450 2D73 52 50 52 45 3450 2D77 D4 3451 2D78 13 2D .DW nfa_qstac 3452 2D7A cfa_inter: 3453 2D7A C2 25 .DW docol 3454 2D7C CD 2B .DW cfa_dfind ; BEGIN 3455 2D7E 42 20 .DW cfa_obranch ; IF 3456 2D80 1E 00 .DW 1eh 3457 2D82 1B 27 .DW cfa_state 3458 2D84 9D 23 .DW cfa_at 3459 2D86 36 24 .DW cfa_less 3460 2D88 42 20 .DW cfa_obranch ; IF 3461 2D8A 0A 00 .DW 0ah 3462 2D8C 11 28 .DW cfa_cfa 3463 2D8E 88 27 .DW cfa_comma 3464 2D90 61 20 .DW cfa_branch ; ELSE 3465 2D92 06 00 .DW 06h 3466 2D94 11 28 .DW cfa_cfa 3467 2D96 30 20 .DW cfa_execute 3468 2D98 1C 2D .DW cfa_qstac ; ENDIF 3469 2D9A 61 20 .DW cfa_branch ; ELSE 3470 2D9C 1C 00 .DW 1ch 3471 2D9E 70 27 .DW cfa_here 3472 2DA0 69 2B .DW cfa_numb 3473 2DA2 30 27 .DW cfa_dpl 3474 2DA4 9D 23 .DW cfa_at 3475 2DA6 FA 23 .DW cfa_onep 3476 2DA8 42 20 .DW cfa_obranch ; IF 3477 2DAA 08 00 .DW 08h 3478 2DAC 01 2D .DW cfa_dlite 3479 2DAE 61 20 .DW cfa_branch ; ELSE 3480 2DB0 06 00 .DW 06h 3481 2DB2 44 23 .DW cfa_drop 3482 2DB4 E4 2C .DW cfa_liter 3483 2DB6 1C 2D .DW cfa_qstac ; ENDIF 3484 2DB8 61 20 .DW cfa_branch ; ENDIF 3485 2DBA C2 FF .DW 0ffc2h ; AGAIN 3486 2DBC ;******************************* 3487 2DBC ;* 3488 2DBC ;* LE MOT IMMEDIATE 3489 2DBC ;* 3490 2DBC ;* : IMMEDIATE LATEST 40 TOGGLE ; 3491 2DBC ;* 3492 2DBC ;******************************* 3493 2DBC nfa_immed: 3494 2DBC 89 .DB 89h 3495 2DBD 49 4D 4D 45 .DB "IMMEDIAT",'E'+80H ; IMMEDIATE 3495 2DC1 44 49 41 54 3495 2DC5 C5 3496 2DC6 6E 2D .DW nfa_inter 3497 2DC8 cfa_immed: 3498 2DC8 C2 25 .DW docol 3499 2DCA 01 28 .DW cfa_latest 3500 2DCC 1B 20 .DW cfa_lit 3501 2DCE 40 00 .DW 40h 3502 2DD0 90 23 .DW cfa_toggle 3503 2DD2 73 22 .DW cfa_semis 3504 2DD4 ;******************************* 3505 2DD4 ;* 3506 2DD4 ;* LE MOT VOCABULARY 3507 2DD4 ;* 3508 2DD4 ;* : VOCABULARY 2+ CONTEXT ! ; IMMEDIATE 3510 2DD4 ;******************************* 3511 2DD4 nfa_vocab: 3512 2DD4 8A .DB 8ah 3513 2DD5 56 4F 43 41 .DB "VOCABULAR",'Y'+80H ; VOCABULARY 3513 2DD9 42 55 4C 41 3513 2DDD 52 D9 3514 2DDF BC 2D .DW nfa_immed 3515 2DE1 cfa_vocab: 3516 2DE1 C2 25 .DW docol 3517 2DE3 88 29 .DW cfa_build 3518 2DE5 1B 20 .DW cfa_lit 3519 2DE7 81 A0 .DW 0a081h 3520 2DE9 88 27 .DW cfa_comma 3521 2DEB 0F 27 .DW cfa_current 3522 2DED 9D 23 .DW cfa_at 3523 2DEF 11 28 .DW cfa_cfa 3524 2DF1 88 27 .DW cfa_comma 3525 2DF3 70 27 .DW cfa_here 3526 2DF5 D6 26 .DW cfa_voclink 3527 2DF7 9D 23 .DW cfa_at 3528 2DF9 88 27 .DW cfa_comma 3529 2DFB D6 26 .DW cfa_voclink 3530 2DFD CD 23 .DW cfa_store 3531 2DFF 98 29 .DW cfa_does 3532 2E01 06 24 .DW cfa_twop 3533 2E03 01 27 .DW cfa_context 3534 2E05 CD 23 .DW cfa_store 3535 2E07 73 22 .DW cfa_semis 3536 2E09 ;******************************* 3537 2E09 ;* 3538 2E09 ;* LE MOT C* 3539 2E09 ;* 3540 2E09 ;* CREATE C* etc SMUDGE 3541 2E09 ;* 3542 2E09 ;******************************* 3543 2E09 nfa_cstar: 3544 2E09 82 .DB 82h 3545 2E0A 43 AA .DB "C",'*'+80H ; C* 3546 2E0C D4 2D .DW nfa_vocab 3547 2E0E 10 2E .DW $+2 3548 2E10 cfa_cstar: 3549 2E10 D9 EXX 3550 2E11 E1 POP HL 3551 2E12 D1 POP DE 3552 2E13 63 LD H,E 3553 2E14 CD 6B 15 CALL 156BH 3554 2E17 E5 PUSH HL 3555 2E18 D9 EXX 3556 2E19 DD E9 JP (IX) 3557 2E1B ;******************************* 3558 2E1B ;* 3559 2E1B ;* LE MOT 256RND 3560 2E1B ;* 3561 2E1B ;* CREATE 256RND etc SMUDGE 3562 2E1B ;* 3563 2E1B ;******************************* 3564 2E1B nfa_tfsrnd: 3565 2E1B 86 .DB 86h 3566 2E1C 32 35 36 52 .DB "256RN",'D'+80H ; 256RND 3566 2E20 4E C4 3567 2E22 09 2E .DW nfa_cstar 3568 2E24 26 2E .DW $+2 3569 2E26 cfa_tfsrnd: 3570 2E26 21 88 FF LD HL,0FF88H 3571 2E29 7E LD A,(HL) 3572 2E2A 07 RLCA 3573 2E2B AE XOR (HL) 3574 2E2C 0F RRCA 3575 2E2D 23 INC HL 3576 2E2E 34 INC (HL) 3577 2E2F 86 ADD A,(HL) 3578 2E30 EA 34 2E JP PE, tfsrnd1 3579 2E33 34 INC (HL) 3580 2E34 tfsrnd1: 3581 2E34 2B DEC HL 3582 2E35 77 LD (HL),A 3583 2E36 6F LD L,A 3584 2E37 26 00 LD H,00H 3585 2E39 E5 PUSH HL 3586 2E3A DD E9 JP (IX) 3587 2E3C ;******************************* 3588 2E3C ;* 3589 2E3C ;* LE MOT FAST 3590 2E3C ;* 3591 2E3C ;* CREATE FAST etc SMUDGE 3592 2E3C ;* 3593 2E3C ;******************************* 3594 2E3C nfa_fast: 3595 2E3C 84 .DB 84h 3596 2E3D 46 41 53 D4 .DB "FAS",'T'+80H ; EXECUTE ; FAST 3597 2E41 1B 2E .DW nfa_tfsrnd 3598 2E43 cfa_fast: 3599 2E43 45 2E .DW $+2 3600 2E45 c_fast: 3601 2E45 DD 21 0A 20 LD IX, c_NEXT 3602 2E49 DD E9 JP (IX) 3603 2E4B ;******************************* 3604 2E4B ;* 3605 2E4B ;* LE MOT SLOW 3606 2E4B ;* 3607 2E4B ;* CREATE SLOW etc SMUDGE 3608 2E4B ;* 3609 2E4B ;******************************* 3610 2E4B nfa_slow: 3611 2E4B 84 .DB 84h 3612 2E4C 53 4C 4F D7 .DB "SLO",'W'+80H ; SLOW 3613 2E50 3C 2E .DW nfa_fast 3614 2E52 cfa_slow: 3615 2E52 54 2E .DW $+2 3616 2E54 c_slow: 3617 2E54 DD 21 1C 2D LD IX, cfa_qstac 3618 2E58 DD E9 JP (IX) 3619 2E5A ;******************************* 3620 2E5A ;* 3621 2E5A ;* LE MOT GET 3622 2E5A ;* 3623 2E5A ;* CREATE GET etc SMUDGE 3624 2E5A ;* 3625 2E5A ;******************************* 3626 2E5A nfa_get: 3627 2E5A 83 .DB 83h 3628 2E5B 47 45 D4 .DB "GE",'T'+80H ; GET 3629 2E5E 4B 2E .DW nfa_slow 3630 2E60 cfa_get: 3631 2E60 62 2E .DW $+2 3632 2E62 CD D3 10 CALL 10D3H ; routine ROM GET saisie au vol une touche : A=0 si rien 3633 2E65 6F LD L,A 3634 2E66 26 00 LD H,00H 3635 2E68 E5 PUSH HL 3636 2E69 DD E9 JP (IX) 3637 2E6B ;******************************* 3638 2E6B ;* 3639 2E6B ;* LE MOT KEY 3640 2E6B ;* 3641 2E6B ;* CREATE KEY etc SMUDGE 3642 2E6B ;* 3643 2E6B ;******************************* 3644 2E6B nfa_key: 3645 2E6B 83 .DB 83h 3646 2E6C 4B 45 D9 .DB "KE",'Y'+80H ; KEY 3647 2E6F 5A 2E .DW nfa_get 3648 2E71 cfa_key: 3649 2E71 73 2E .DW $+2 3650 2E73 CD CA 10 CALL 10CAH ; routine ROM KEY 3651 2E76 6F LD L,A 3652 2E77 26 00 LD H,00H 3653 2E79 E5 PUSH HL 3654 2E7A DD E9 JP (IX) 3655 2E7C ;******************************* 3656 2E7C ;* 3657 2E7C ;* LE MOT ?TERMINAL 3658 2E7C ;* 3659 2E7C ;* CREATE ?TERMINAL etc SMUDGE 3660 2E7C ;* 3661 2E7C ;******************************* 3662 2E7C nfa_qterm: 3663 2E7C 89 .DB 89h 3664 2E7D 3F 54 45 52 .DB "?TERMINA",'L'+80H ; ?TERMINAL 3664 2E81 4D 49 4E 41 3664 2E85 CC 3665 2E86 6B 2E .DW nfa_key 3666 2E88 cfa_qterm: 3667 2E88 8A 2E .DW $+2 3668 2E8A 21 00 00 LD HL,0000H 3669 2E8D CD D3 10 CALL 10D3H ; routine ROM GET saisie au vol une touche : A=0 si rien 3670 2E90 28 0C JR Z,qterm1 3671 2E92 FE 0D CP 0DH 3672 2E94 28 07 JR Z,qterm2 3673 2E96 CD CA 10 CALL 10CAH ; routine ROM KEY 3674 2E99 FE 0D CP 0DH 3675 2E9B 20 01 JR NZ,qterm1 3676 2E9D qterm2: 3677 2E9D 23 INC HL 3678 2E9E qterm1: 3679 2E9E E5 PUSH HL 3680 2E9F DD E9 JP (IX) 3681 2EA1 ;******************************* 3682 2EA1 ;* 3683 2EA1 ;* LE MOT V@ 3684 2EA1 ;* 3685 2EA1 ;* CREATE V@ etc SMUDGE 3686 2EA1 ;* 3687 2EA1 ;******************************* 3688 2EA1 nfa_vat: 3689 2EA1 82 .DB 82h 3690 2EA2 56 C0 .DB "V",'@'+80H ; V@ 3691 2EA4 7C 2E .DW nfa_ qterm 3692 2EA6 cfa_vat: 3693 2EA6 A8 2E .DW $+2 3694 2EA8 E1 POP HL 3695 2EA9 CD AF 2E CALL vat1 3696 2EAC D5 PUSH DE 3697 2EAD DD E9 JP (IX) 3698 2EAF vat1: 3699 2EAF DF RST 18H 3700 2EB0 5E LD E,(HL) 3701 2EB1 23 INC HL 3702 2EB2 56 LD D,(HL) 3703 2EB3 C9 RET 3704 2EB4 ;******************************* 3705 2EB4 ;* 3706 2EB4 ;* LE MOT VC@ 3707 2EB4 ;* 3708 2EB4 ;* CREATE VC@ etc SMUDGE 3709 2EB4 ;* 3710 2EB4 ;******************************* 3711 2EB4 nfa_vcat: 3712 2EB4 83 .DB 83h 3713 2EB5 56 43 C0 .DB "VC",'@'+80H ; VC@ 3714 2EB8 A1 2E .DW nfa_vat 3715 2EBA cfa_vcat: 3716 2EBA BC 2E .DW $+2 3717 2EBC E1 POP HL 3718 2EBD CD AF 2E CALL vat1 3719 2EC0 16 00 LD D,00H 3720 2EC2 D5 PUSH DE 3721 2EC3 DD E9 JP (IX) 3722 2EC5 ;******************************* 3723 2EC5 ;* 3724 2EC5 ;* LE MOT V! 3725 2EC5 ;* 3726 2EC5 ;* CREATE V! etc SMUDGE 3727 2EC5 ;* 3728 2EC5 ;******************************* 3729 2EC5 nfa_vstore: 3730 2EC5 82 .DB 82h 3731 2EC6 56 A1 .DB "V",'!'+80H ; V! 3732 2EC8 B4 2E .DW nfa_vcat 3733 2ECA cfa_vstore: 3734 2ECA CC 2E .DW $+2 3735 2ECC E1 POP HL 3736 2ECD D1 POP DE 3737 2ECE DD E5 PUSH IX 3738 2ED0 DF RST 18H 3739 2ED1 73 LD (HL),E 3740 2ED2 23 INC HL 3741 2ED3 72 LD (HL),D 3742 2ED4 C9 RET 3743 2ED5 ;******************************* 3744 2ED5 ;* 3745 2ED5 ;* LE MOT VC! 3746 2ED5 ;* 3747 2ED5 ;* CREATE VC! etc SMUDGE 3748 2ED5 ;* 3749 2ED5 ;******************************* 3750 2ED5 nfa_vcstore: 3751 2ED5 83 .DB 83h 3752 2ED6 56 43 A1 .DB "VC",'!'+80H ; VC! 3753 2ED9 C5 2E .DW nfa_vstore 3754 2EDB cfa_vcstore: 3755 2EDB DD 2E .DW $+2 3756 2EDD E1 POP HL 3757 2EDE D1 POP DE 3758 2EDF DD E5 PUSH IX 3759 2EE1 DF RST 18H 3760 2EE2 73 LD (HL),E 3761 2EE3 C9 RET 3762 2EE4 ;******************************* 3763 2EE4 ;* 3764 2EE4 ;* LE MOT VCMOVE 3765 2EE4 ;* 3766 2EE4 ;* CREATE VCMOVE etc SMUDGE 3767 2EE4 ;* 3768 2EE4 ;******************************* 3769 2EE4 nfa_vcmove: 3770 2EE4 86 .DB 86h 3771 2EE5 56 43 4D 4F .DB "VCMOV",'E'+80H ; VCMOVE 3771 2EE9 56 C5 3772 2EEB D5 2E .DW nfa_vcstore 3773 2EED cfa_vcmove: 3774 2EED EF 2E .DW $+2 3775 2EEF D9 EXX 3776 2EF0 C1 POP BC 3777 2EF1 D1 POP DE 3778 2EF2 E1 POP HL 3779 2EF3 CD 94 21 CALL cmove2 3780 2EF6 D9 EXX 3781 2EF7 DD E9 JP (IX) 3782 2EF9 ;******************************* 3783 2EF9 ;* 3784 2EF9 ;* LE MOT V DROP ; IMMEDIATE 80 LATEST 1+ C! 3974 3068 ;* 3975 3068 ;******************************* 3976 3068 nfa_null: 3977 3068 C1 .DB 0c1h 3978 3069 80 .DB 80h ; 0 (NULL,BINARY ZERO, CNTL @) 3979 306A 5A 30 .DW nfa_paren 3980 306C cfa_null: 3981 306C C2 25 .DW docol 3982 306E A4 22 .DW cfa_fromr 3983 3070 44 23 .DW cfa_drop 3984 3072 73 22 .DW cfa_semis 3985 3074 ;******************************* 3986 3074 ;* 3987 3074 ;* LE MOT QUIT 3988 3074 ;* 3989 3074 ;* : QUIT 0 BLK ! [COMPILE] [ BEGIN RP! CR QUERY INTERPRET STATE 3990 3074 ;* @ 0= IF 0D MESSAGE ENDIF AGAIN [ SMUDGE ;S ] 3991 3074 ;******************************* 3992 3074 nfa_quit: 3993 3074 84 .DB 84h 3994 3075 51 55 49 D4 .DB "QUI",'T'+80H ; QUIT 3995 3079 68 30 .DW nfa_null 3996 307B cfa_quit: 3997 307B C2 25 .DW docol 3998 307D 2E 26 .DW cfa_zero 3999 307F E0 26 .DW cfa_blk 4000 3081 CD 23 .DW cfa_store 4001 3083 F1 28 .DW cfa_lbrac 4002 3085 64 22 .DW cfa_rpsto ; BEGIN 4003 3087 31 33 .DW cfa_cr 4004 3089 44 2A .DW cfa_query 4005 308B 7A 2D .DW cfa_inter 4006 308D 1B 27 .DW cfa_state 4007 308F 9D 23 .DW cfa_at 4008 3091 BE 22 .DW cfa_z.equ 4009 3093 42 20 .DW cfa_obranch ; IF 4010 3095 08 00 .DW 08h 4011 3097 1B 20 .DW cfa_lit 4012 3099 0D 00 .DW 0dh 4013 309B 6B 32 .DW cfa_mess 4014 309D 61 20 .DW cfa_branch ; ENDIF 4015 309F E6 FF .DW 0ffe6h ; AGAIN 4016 30A1 ;******************************* 4017 30A1 ;* 4018 30A1 ;* LE MOT ABORT 4019 30A1 ;* 4020 30A1 ;* : ABORT BINIT LINIT SP! DECIMAL ?STACK 0F MESSAGE [ FF96 , ] 4021 30A1 ;* DEFINITIONS QUIT [ SMUDGE ;S ] 4022 30A1 ;******************************* 4023 30A1 nfa_abort: 4024 30A1 85 .DB 85h 4025 30A2 41 42 4F 52 .DB "ABOR",'T'+80H ; ABORT 4025 30A6 D4 4026 30A7 74 30 .DW nfa_quit 4027 30A9 cfa_abort: 4028 30A9 C2 25 .DW docol 4029 30AB 77 36 .DW cfa_binit 4030 30AD C7 35 .DW cfa_linit 4031 30AF 48 22 .DW cfa_spsto 4032 30B1 3C 29 .DW cfa_decimal 4033 30B3 1C 2D .DW cfa_qstac 4034 30B5 1B 20 .DW cfa_lit 4035 30B7 0F 00 .DW 0fh 4036 30B9 6B 32 .DW cfa_mess 4037 30BB 96 FF .DW adr_forth 4038 30BD 4E 30 .DW cfa_defin 4039 30BF 7B 30 .DW cfa_quit 4040 30C1 ;******************************* 4041 30C1 ;* 4042 30C1 ;* LE MOT COLD 4043 30C1 ;* 4044 30C1 ;* CREATE COLD etc SMUDGE LATEST PFA CFA DUP 9 + SWAP ! 4045 30C1 ;* 4046 30C1 ;******************************* 4047 30C1 nfa_cold: 4048 30C1 84 .DB 84h 4049 30C2 43 4F 4C C4 .DB "COL",'D'+80H ; COLD 4050 30C6 A1 30 .DW nfa_abort 4051 30C8 cfa_cold: 4052 30C8 D1 30 .DW c_cold3 4053 30CA c_cold2: 4054 30CA FB EI 4055 30CB 01 86 FF LD BC,0FF86H ; pointe vers cfa_abort 4056 30CE C3 45 2E JP c_fast 4057 30D1 4058 30D1 c_cold3: 4059 30D1 21 38 2F LD HL, cfa_initparamcold 4060 30D4 11 42 FF LD DE,0FF42H 4061 30D7 01 75 00 LD BC,0075H 4062 30DA ED B0 LDIR 4063 30DC CD F6 30 CALL c_emptbuf1 4064 30DF C3 A0 FF JP 0FFA0H ; re initialise SP et fait JP a c_cold2 (30CAh)) 4065 30E2 ;******************************* 4066 30E2 ;* 4067 30E2 ;* LE MOT EMPTY-BUFFERS 4068 30E2 ;* 4069 30E2 ;* CREATE EMPTY-BUFFERS etc SMUDGE 4070 30E2 ;* 4071 30E2 ;******************************* 4072 30E2 nfa_emptbuf: 4073 30E2 8D .DB 8dh 4074 30E3 45 4D 50 54 .DB "EMPTY-BUFFER",'S'+80H ; EMPTY-BUFFERS 4074 30E7 59 2D 42 55 4074 30EB 46 46 45 52 4074 30EF D3 4075 30F0 C1 30 .DW nfa_cold 4076 30F2 cfa_emptbuf: 4077 30F2 F4 30 .DW $+2 4078 30F4 DD E5 PUSH IX 4079 30F6 c_emptbuf1: 4080 30F6 D9 EXX 4081 30F7 2A 56 FF LD HL,(0FF56H) 4082 30FA EB EX DE,HL 4083 30FB 2A 58 FF LD HL,(0FF58H) 4084 30FE 37 SCF 4085 30FF ED 52 SBC HL,DE 4086 3101 44 LD B,H 4087 3102 4D LD C,L 4088 3103 62 LD H,D 4089 3104 6B LD L,E 4090 3105 13 INC DE 4091 3106 36 00 LD (HL),00H 4092 3108 ED B0 LDIR 4093 310A D9 EXX 4094 310B C9 RET 4095 310C ;******************************* 4096 310C ;* 4097 310C ;* LE MOT S->D 4098 310C ;* 4099 310C ;* CREATE S->D etc SMUDGE 4100 310C ;* 4101 310C ;******************************* 4102 310C nfa_stod: 4103 310C 84 .DB 84h 4104 310D 53 2D 3E C4 .DB "S->",'D'+80H ; 4105 3111 E2 30 .DW nfa_ emptbuf 4106 3113 cfa_stod: 4107 3113 15 31 .DW $+2 4108 3115 D1 POP DE 4109 3116 21 00 00 LD HL,0000H 4110 3119 CB 7A BIT 7,D 4111 311B 28 01 JR Z, stod1 4112 311D 2B DEC HL 4113 311E stod1: 4114 311E D5 PUSH DE 4115 311F E5 PUSH HL 4116 3120 DD E9 JP (IX) 4117 3122 ;******************************* 4118 3122 ;* 4119 3122 ;* LE MOT +- 4120 3122 ;* 4121 3122 ;* : +- 0< IF MINUS ENDIF ; 4122 3122 ;* 4123 3122 ;******************************* 4124 3122 nfa_pm: 4125 3122 82 .DB 82h 4126 3123 2B AD .DB "+",'-'+80H ; +- 4127 3125 0C 31 .DW nfa_stod 4128 3127 cfa_pm: 4129 3127 C2 25 .DW docol 4130 3129 D1 22 .DW cfa_zless 4131 312B 42 20 .DW cfa_obranch 4132 312D 04 00 .DW 04h 4133 312F 06 23 .DW cfa_minus 4134 3131 73 22 .DW cfa_semis 4135 3133 ;******************************* 4136 3133 ;* 4137 3133 ;* LE MOT D+- 4138 3133 ;* 4139 3133 ;* : D+- 0< IF DMINUS ENDIF ; 4140 3133 ;* 4141 3133 ;******************************* 4142 3133 nfa_dpm: 4143 3133 83 .DB 83h 4144 3134 44 2B AD .DB "D+",'-'+80H ; D+- 4145 3137 22 31 .DW nfa_pm 4146 3139 cfa_dpm: 4147 3139 C2 25 .DW docol 4148 313B D1 22 .DW cfa_zless 4149 313D 42 20 .DW cfa_obranch 4150 313F 04 00 .DW 04h 4151 3141 1A 23 .DW cfa_dminus 4152 3143 73 22 .DW cfa_semis 4153 3145 ;******************************* 4154 3145 ;* 4155 3145 ;* LE MOT ABS 4156 3145 ;* 4157 3145 ;* : ABS DUP +- ; 4158 3145 ;* 4159 3145 ;******************************* 4160 3145 nfa_abs: 4161 3145 83 .DB 83h 4162 3146 41 42 D3 .DB "AB",'S'+80H ; ABS 4163 3149 33 31 .DW nfa_dpm 4164 314B cfa_abs: 4165 314B C2 25 .DW docol 4166 314D 5D 23 .DW cfa_dup 4167 314F 27 31 .DW cfa_pm 4168 3151 73 22 .DW cfa_semis 4169 3153 ;******************************* 4170 3153 ;* 4171 3153 ;* LE MOT DABS 4172 3153 ;* 4173 3153 ;* : DABS DUP D+- ; 4174 3153 ;* 4175 3153 ;******************************* 4176 3153 nfa_dabs: 4177 3153 84 .DB 84h 4178 3154 44 41 42 D3 .DB "DAB",'S'+80H ; DABS 4179 3158 45 31 .DW nfa_abs 4180 315A cfa_dabs: 4181 315A C2 25 .DW docol 4182 315C 5D 23 .DW cfa_dup 4183 315E 39 31 .DW cfa_dpm 4184 3160 73 22 .DW cfa_semis 4185 3162 ;******************************* 4186 3162 ;* 4187 3162 ;* LE MOT MIN 4188 3162 ;* 4189 3162 ;* : MIN 2DUP > IF SWAP ENDIF DROP ; 4190 3162 ;* 4191 3162 ;******************************* 4192 3162 nfa_min: 4193 3162 83 .DB 83h 4194 3163 4D 49 CE .DB "MI",'N'+80H ; MIN 4195 3166 53 31 .DW nfa_dabs 4196 3168 cfa_min: 4197 3168 C2 25 .DW docol 4198 316A 6B 23 .DW cfa_tdup 4199 316C 54 24 .DW cfa_great 4200 316E 42 20 .DW cfa_obranch 4201 3170 04 00 .DW 04h 4202 3172 50 23 .DW cfa_swap 4203 3174 44 23 .DW cfa_drop 4204 3176 73 22 .DW cfa_semis 4205 3178 ;******************************* 4206 3178 ;* 4207 3178 ;* LE MOT MAX 4208 3178 ;* 4209 3178 ;* : MAX 2DUP < IF SWAP ENDIF DROP ; 4210 3178 ;* 4211 3178 ;******************************* 4212 3178 nfa_max: 4213 3178 83 .DB 83h 4214 3179 4D 41 D8 .DB "MA",'X'+80H ; MAX 4215 317C 62 31 .DW nfa_min 4216 317E cfa_max: 4217 317E C2 25 .DW docol 4218 3180 6B 23 .DW cfa_tdup 4219 3182 36 24 .DW cfa_less 4220 3184 42 20 .DW cfa_obranch 4221 3186 04 00 .DW 04h 4222 3188 50 23 .DW cfa_swap 4223 318A 44 23 .DW cfa_drop 4224 318C 73 22 .DW cfa_semis 4225 318E ;******************************* 4226 318E ;* 4227 318E ;* LE MOT WIPE 4228 318E ;* 4229 318E ;* : WIPE PREV @ 2+ C/NAME + B/BUF 4230 318E ;* BLANKS ; 4231 318E ;******************************* 4232 318E nfa_wipe: 4233 318E 84 .DB 84h 4234 318F 57 49 50 C5 .DB "WIP",'E'+80H ; WIPE 4235 3193 78 31 .DW nfa_max 4236 3195 cfa_wipe: 4237 3195 C2 25 .DW docol 4238 3197 65 27 .DW cfa_prev 4239 3199 9D 23 .DW cfa_at 4240 319B 06 24 .DW cfa_twop 4241 319D 8A 26 .DW cfa_cslname 4242 319F E2 22 .DW cfa_plus 4243 31A1 7D 26 .DW cfa_bbuf 4244 31A3 95 2A .DW cfa_blanks 4245 31A5 73 22 .DW cfa_semis 4246 31A7 ;******************************* 4247 31A7 ;* 4248 31A7 ;* LE MOT M* 4249 31A7 ;* 4250 31A7 ;* : M* 2DUP XOR >R ABS SWAP ABS U* R> D+- ; 4251 31A7 ;* 4252 31A7 ;******************************* 4253 31A7 nfa_mstar: 4254 31A7 82 .DB 82h 4255 31A8 4D AA .DB "M",'*'+80H ; M* 4256 31AA 8E 31 .DW nfa_wipe 4257 31AC cfa_mstar: 4258 31AC C2 25 .DW docol 4259 31AE 6B 23 .DW cfa_tdup 4260 31B0 26 22 .DW cfa_xorr 4261 31B2 90 22 .DW cfa_tor 4262 31B4 4B 31 .DW cfa_abs 4263 31B6 50 23 .DW cfa_swap 4264 31B8 4B 31 .DW cfa_abs 4265 31BA A0 21 .DW cfa_ustar 4266 31BC A4 22 .DW cfa_fromr 4267 31BE 39 31 .DW cfa_dpm 4268 31C0 73 22 .DW cfa_semis 4269 31C2 ;******************************* 4270 31C2 ;* 4271 31C2 ;* LE MOT M/ 4272 31C2 ;* 4273 31C2 ;* : M/ OVER >R >R DABS R ABS U/ R> R XOR +- 4274 31C2 ;* SWAP R> +- SWAP ; 4275 31C2 ;******************************* 4276 31C2 nfa_msla: 4277 31C2 82 .DB 82h 4278 31C3 4D AF .DB "M",'/'+80H ; M/ 4279 31C5 A7 31 .DW nfa_mstar 4280 31C7 cfa_msla: 4281 31C7 C2 25 .DW docol 4282 31C9 34 23 .DW cfa_over 4283 31CB 90 22 .DW cfa_tor 4284 31CD 90 22 .DW cfa_tor 4285 31CF 5A 31 .DW cfa_dabs 4286 31D1 B7 22 .DW cfa_frr 4287 31D3 4B 31 .DW cfa_abs 4288 31D5 C5 21 .DW cfa_uslas 4289 31D7 A4 22 .DW cfa_fromr 4290 31D9 B7 22 .DW cfa_frr 4291 31DB 26 22 .DW cfa_xorr 4292 31DD 27 31 .DW cfa_pm 4293 31DF 50 23 .DW cfa_swap 4294 31E1 A4 22 .DW cfa_fromr 4295 31E3 27 31 .DW cfa_pm 4296 31E5 50 23 .DW cfa_swap 4297 31E7 73 22 .DW cfa_semis 4298 31E9 ;******************************* 4299 31E9 ;* 4300 31E9 ;* LE MOT * 4301 31E9 ;* 4302 31E9 ;* : * M* DROP ; 4303 31E9 ;* 4304 31E9 ;******************************* 4305 31E9 nfa_star: 4306 31E9 81 .DB 81h 4307 31EA AA .DB '*'+80H ; * 4308 31EB C2 31 .DW nfa_msla 4309 31ED cfa_star 4310 31ED C2 25 .DW docol 4311 31EF AC 31 .DW cfa_mstar 4312 31F1 44 23 .DW cfa_drop 4313 31F3 73 22 .DW cfa_semis 4314 31F5 ;******************************* 4315 31F5 ;* 4316 31F5 ;* LE MOT /MOD 4317 31F5 ;* 4318 31F5 ;* : /MOD >R S->D R> M/ ; 4319 31F5 ;* 4320 31F5 ;******************************* 4321 31F5 nfa_slmod: 4322 31F5 84 .DB 84h 4323 31F6 2F 4D 4F C4 .DB "/MO",'D'+80H ; /MOD 4324 31FA E9 31 .DW nfa_star 4325 31FC cfa_slmod: 4326 31FC C2 25 .DW docol 4327 31FE 90 22 .DW cfa_tor 4328 3200 13 31 .DW cfa_stod 4329 3202 A4 22 .DW cfa_fromr 4330 3204 C7 31 .DW cfa_msla 4331 3206 73 22 .DW cfa_semis 4332 3208 ;******************************* 4333 3208 ;* 4334 3208 ;* LE MOT / 4335 3208 ;* 4336 3208 ;* : / /MOD SDROP ; 4337 3208 ;* 4338 3208 ;******************************* 4339 3208 nfa_slash: 4340 3208 81 .DB 81h 4341 3209 AF .DB '/'+80H ; / 4342 320A F5 31 .DW nfa_ slmod 4343 320C cfa_slash: 4344 320C C2 25 .DW docol 4345 320E FC 31 .DW cfa_slmod 4346 3210 B0 24 .DW cfa_sdrop 4347 3212 73 22 .DW cfa_semis 4348 3214 ;******************************* 4349 3214 ;* 4350 3214 ;* LE MOT MOD 4351 3214 ;* 4352 3214 ;* : MOD /MOD DROP ; 4353 3214 ;* 4354 3214 ;******************************* 4355 3214 nfa_mod: 4356 3214 83 .DB 83h 4357 3215 4D 4F C4 .DB "MO",'D'+80H ; MOD 4358 3218 08 32 .DW nfa_slash 4359 321A cfa_mod: 4360 321A C2 25 .DW docol 4361 321C FC 31 .DW cfa_slmod 4362 321E 44 23 .DW cfa_drop 4363 3220 73 22 .DW cfa_semis 4364 3222 ;******************************* 4365 3222 ;* 4366 3222 ;* LE MOT */MOD 4367 3222 ;* 4368 3222 ;* : */MOD >R M* R> M/ ; 4369 3222 ;* 4370 3222 ;******************************* 4371 3222 nfa_ssmod: 4372 3222 85 .DB 85h 4373 3223 2A 2F 4D 4F .DB "*/MO",'D'+80H ; */MOD 4373 3227 C4 4374 3228 14 32 .DW nfa_mod 4375 322A cfa_ssmod: 4376 322A C2 25 .DW docol 4377 322C 90 22 .DW cfa_tor 4378 322E AC 31 .DW cfa_mstar 4379 3230 A4 22 .DW cfa_fromr 4380 3232 C7 31 .DW cfa_msla 4381 3234 73 22 .DW cfa_semis 4382 3236 ;******************************* 4383 3236 ;* 4384 3236 ;* LE MOT */ 4385 3236 ;* 4386 3236 ;* : */ */MOD SDROP ; 4387 3236 ;* 4388 3236 ;******************************* 4389 3236 nfa_ssla: 4390 3236 82 .DB 82h 4391 3237 2A AF .DB "*",'/'+80H ; */ 4392 3239 22 32 .DW nfa_ssmod 4393 323B cfa_ssla: 4394 323B C2 25 .DW docol 4395 323D 2A 32 .DW cfa_ssmod 4396 323F B0 24 .DW cfa_sdrop 4397 3241 73 22 .DW cfa_semis 4398 3243 ;******************************* 4399 3243 ;* 4400 3243 ;* LE MOT M/MOD 4401 3243 ;* 4402 3243 ;* : M/MOD >R 0 R U/ SWAP >R U/ R> ; 4403 3243 ;* 4404 3243 ;******************************* 4405 3243 nfa_msmod: 4406 3243 85 .DB 85h 4407 3244 4D 2F 4D 4F .DB "M/MO",'D'+80H ; M/MOD 4407 3248 C4 4408 3249 36 32 .DW nfa_ ssla 4409 324B cfa_msmod: 4410 324B C2 25 .DW docol 4411 324D 90 22 .DW cfa_tor 4412 324F 2E 26 .DW cfa_zero 4413 3251 B7 22 .DW cfa_frr 4414 3253 C5 21 .DW cfa_uslas 4415 3255 A4 22 .DW cfa_fromr 4416 3257 50 23 .DW cfa_swap 4417 3259 90 22 .DW cfa_tor 4418 325B C5 21 .DW cfa_uslas 4419 325D A4 22 .DW cfa_fromr 4420 325F 73 22 .DW cfa_semis 4421 3261 ;******************************* 4422 3261 ;* 4423 3261 ;* LE MOT MESSAGE 4424 3261 ;* 4425 3261 ;* : MESSAGE FF8A @ (MSG) -DUP IF COUNT TYPE [COMPILE] ;S ENDIF 0E MESSAGE . ; 4426 3261 ;* 4427 3261 ;******************************* 4428 3261 nfa_mess: 4429 3261 87 .DB 87h 4430 3262 4D 45 53 53 .DB "MESSAG",'E'+80H ; MESSAGE 4430 3266 41 47 C5 4431 3269 43 32 .DW nfa_msmod 4432 326B cfa_mess: 4433 326B C2 25 .DW docol 4434 326D 1B 20 .DW cfa_lit 4435 326F 8A FF .DW adr_warning 4436 3271 9D 23 .DW cfa_at 4437 3273 93 32 .DW cfa_xmsg 4438 3275 D6 27 .DW cfa_ddup 4439 3277 42 20 .DW cfa_obranch 4440 3279 08 00 .DW 08h 4441 327B BF 29 .DW cfa_count 4442 327D D1 29 .DW cfa_type 4443 327F 73 22 .DW cfa_semis 4444 3281 1B 20 .DW cfa_lit 4445 3283 0E 00 .DW 0eh 4446 3285 6B 32 .DW cfa_mess 4447 3287 50 39 .DW cfa_dot 4448 3289 73 22 .DW cfa_semis 4449 328B ;******************************* 4450 328B ;* 4451 328B ;* LE MOT (MSG) 4452 328B ;* 4453 328B ;* CREATE (MSG) etc SMUDGE 4454 328B ;* 4455 328B ;******************************* 4456 328B nfa_xmsg: 4457 328B 85 .DB 85h 4458 328C 28 4D 53 47 .DB "(MSG",')'+80H ; (MSG) 4458 3290 A9 4459 3291 61 32 .DW nfa_mess 4460 3293 cfa_xmsg: 4461 3293 95 32 .DW $+2 4462 3295 E1 POP HL 4463 3296 D1 POP DE 4464 3297 xmsg2: 4465 3297 7B LD A,E 4466 3298 BE CP (HL) 4467 3299 20 04 JR NZ,xmsg1 4468 329B 23 INC HL 4469 329C E5 PUSH HL 4470 329D DD E9 JP (IX) 4471 329F xmsg1: 4472 329F 5F LD E,A 4473 32A0 2B DEC HL 4474 32A1 7E LD A,(HL) 4475 32A2 2B DEC HL 4476 32A3 6E LD L,(HL) 4477 32A4 67 LD H,A 4478 32A5 B5 OR L 4479 32A6 20 EF JR NZ, xmsg2 4480 32A8 54 LD D,H 4481 32A9 D5 PUSH DE 4482 32AA E5 PUSH HL 4483 32AB DD E9 JP (IX) 4484 32AD ;******************************* 4485 32AD ;* 4486 32AD ;* LE MOT MSG" 4487 32AD ;* 4488 32AD ;* : MSG" FF8A @ , HERE FF8A ! C, 22 WORD HERE C@ 1+ ALLOT ; 4489 32AD ;* 4490 32AD ;******************************* 4491 32AD nfa_msgq: 4492 32AD 84 .DB 84h 4493 32AE 4D 53 47 .DB "MSG" 4494 32B1 A2 .DB 0a2h ; MSG" 4495 32B2 8B 32 .DW nfa_xmsg 4496 32B4 cfa_msgq: 4497 32B4 C2 25 .DW docol 4498 32B6 1B 20 .DW cfa_lit 4499 32B8 8A FF .DW adr_warning 4500 32BA 9D 23 .DW cfa_at 4501 32BC 88 27 .DW cfa_comma 4502 32BE 70 27 .DW cfa_here 4503 32C0 1B 20 .DW cfa_lit 4504 32C2 8A FF .DW adr_warning 4505 32C4 CD 23 .DW cfa_store 4506 32C6 99 27 .DW cfa_ccomm 4507 32C8 1B 20 .DW cfa_lit 4508 32CA 22 00 .DW 22h 4509 32CC C9 2A .DW cfa_word 4510 32CE 70 27 .DW cfa_here 4511 32D0 AB 23 .DW cfa_cat 4512 32D2 FA 23 .DW cfa_onep 4513 32D4 7C 27 .DW cfa_allot 4514 32D6 73 22 .DW cfa_semis 4515 32D8 ;******************************* 4516 32D8 ;* 4517 32D8 ;* LE MOT MOTOR 4518 32D8 ;* 4519 32D8 ;* CREATE MOTOR etc SMUDGE 4520 32D8 ;* 4521 32D8 ;******************************* 4522 32D8 nfa_motor: 4523 32D8 85 .DB 85h 4524 32D9 4D 4F 54 4F .DB "MOTO",'R'+80H ; MOTOR 4524 32DD D2 4525 32DE AD 32 .DW nfa_msgq 4526 32E0 cfa_motor: 4527 32E0 E2 32 .DW $+2 4528 32E2 E1 POP HL 4529 32E3 DD E5 PUSH IX 4530 32E5 7D LD A,L 4531 32E6 B4 OR H 4532 32E7 CA 86 02 JP Z,0286H ; routine ROM TAPEOFF 4533 32EA C3 1B 04 JP 041BH ; routine ROM TAPEON 4534 32ED ;******************************* 4535 32ED ;* 4536 32ED ;* LE MOT REWIND 4537 32ED ;* 4538 32ED ;* CREATE REWIND etc SMUDGE 4539 32ED ;* 4540 32ED ;******************************* 4541 32ED nfa_rewind: 4542 32ED 86 .DB 86h 4543 32EE 52 45 57 49 .DB "REWIN",'D'+80H ; REWIND 4543 32F2 4E C4 4544 32F4 D8 32 .DW nfa_motor 4545 32F6 cfa_rewind: 4546 32F6 F8 32 .DW $+2 4547 32F8 CD 1B 04 CALL 041BH ; routine ROM TAPEON 4548 32FB CD CA 10 CALL 10CAH ; routine ROM KEY 4549 32FE CD 86 02 CALL 0286H ; routine ROM TAPEOFF 4550 3301 DD E9 JP (IX) 4551 3303 ;******************************* 4552 3303 ;* 4553 3303 ;* LE MOT CAPITAL 4554 3303 ;* 4555 3303 ;* CREATE CAPITAL etc SMUDGE 4556 3303 ;* 4557 3303 ;******************************* 4558 3303 nfa_capital: 4559 3303 87 .DB 87h 4560 3304 43 41 50 49 .DB "CAPITA",'L'+80H ; CAPITAL 4560 3308 54 41 CC 4561 330B ED 32 .DW nfa_rewind 4562 330D cfa_capital: 4563 330D 0F 33 .DW $+2 4564 330F D1 POP DE 4565 3310 E1 POP HL 4566 3311 capital2: 4567 3311 7E LD A,(HL) 4568 3312 FE 61 CP 61H 4569 3314 38 07 JR C, capital1 4570 3316 FE 7B CP 7BH 4571 3318 30 03 JR NC, capital1 4572 331A D6 20 SUB 20H 4573 331C 77 LD (HL),A 4574 331D capital1: 4575 331D 1D DEC E 4576 331E 23 INC HL 4577 331F 20 F0 JR NZ, capital2 4578 3321 DD E9 JP (IX) 4579 3323 ;******************************* 4580 3323 ;* 4581 3323 ;* LE MOT EMIT 4582 3323 ;* 4583 3323 ;* CREATE EMIT SMUDGE 1729 4584 3323 ;* LATEST PFA CFA ! 4585 3323 ;******************************* 4586 3323 nfa_emit: 4587 3323 84 .DB 84h 4588 3324 45 4D 49 D4 .DB "EMI",'T'+80H ; EMIT 4589 3328 03 33 .DW nfa_capital 4590 332A cfa_emit: 4591 332A 29 17 .DW 1729h ; Jump routine ROM 1729h 4592 332C ;******************************* 4593 332C ;* 4594 332C ;* LE MOT CR 4595 332C ;* 4596 332C ;* CREATE CR SMUDGE 1726 4597 332C ;* LATEST PFA CFA ! 0D C, 4598 332C ;* 4599 332C ;******************************* 4600 332C nfa_cr: 4601 332C 82 .DB 82h 4602 332D 43 D2 .DB "C",'R'+80H ; CR 4603 332F 23 33 .DW nfa_emit 4604 3331 cfa_cr: 4605 3331 26 17 .DW 1726h ; Jump routine ROM 1726h 4606 3333 0D .DB 0dh ; caractere CR 4607 3334 ;******************************* 4608 3334 ;* 4609 3334 ;* LE MOT EXPECT 4610 3334 ;* 4611 3334 ;* CREATE EXPECT SMUDGE 1953 LATEST 4612 3334 ;* PFA CFA ! 4613 3334 ;* 4614 3334 ;******************************* 4615 3334 nfa_expect: 4616 3334 86 .DB 86h 4617 3335 45 58 50 45 .DB "EXPEC",'T'+80H ; EXPECT 4617 3339 43 D4 4618 333B 2C 33 .DW nfa_cr 4619 333D cfa_expect: 4620 333D 53 19 .DW 1953h ; Jump routine ROM 1953h 4621 333F ;******************************* 4622 333F ;* 4623 333F ;* LE MOT USE 4624 333F ;* 4625 333F ;* 0ff4c CONSTANT USE 4626 333F ;* 4627 333F ;******************************* 4628 333F nfa_use: 4629 333F 83 .DB 83h 4630 3340 55 53 C5 .DB "US",'E'+80H ; USE 4631 3343 34 33 .DW nfa_expect 4632 3345 cfa_use: 4633 3345 01 26 .DW docons 4634 3347 4C FF .DW 0ff4ch 4635 3349 ;******************************* 4636 3349 ;* 4637 3349 ;* LE MOT L/SCR 4638 3349 ;* 4639 3349 ;* (USER n'est pas explicite) 4640 3349 ;* FF44 VARIABLE L/SCR ' VARIABLE 8 + LATEST 4641 3349 ;* PFA CFA ! 4642 3349 ;* 4643 3349 ;******************************* 4644 3349 nfa_lsscr: 4645 3349 85 .DB 85h 4646 334A 4C 2F 53 43 .DB "L/SC",'R'+80H ; L/SCR 4646 334E D2 4647 334F 3F 33 .DW nfa_use 4648 3351 cfa_lsscr: 4649 3351 1E 26 .DW douser 4650 3353 44 FF .DW 0ff44h 4651 3355 ;******************************* 4652 3355 ;* 4653 3355 ;* LE MOT R/W 4654 3355 ;* 4655 3355 ;* CREATE R/W etc SMUDGE 4656 3355 ;* 4657 3355 ;******************************* 4658 3355 nfa_rsw: 4659 3355 83 .DB 83h 4660 3356 52 2F D7 .DB "R/",'W'+80H ; R/W 4661 3359 49 33 .DW nfa_lsscr 4662 335B cfa_rsw: 4663 335B 5D 33 .DW $+2 4664 335D 2A 48 FF LD HL,(0FF48H) ; 3361h 4665 3360 E9 JP (HL) 4666 3361 cfa_rsw1: 4667 3361 E1 POP HL 4668 3362 7D LD A,L 4669 3363 B4 OR H 4670 3364 E1 POP HL 4671 3365 E1 POP HL 4672 3366 C5 PUSH BC 4673 3367 E5 PUSH HL 4674 3368 2A 5A FF LD HL,(0FF5AH) ; B/BUF 4675 336B EB EX DE,HL 4676 336C 2A 52 FF LD HL,(0FF52H) ; C/NAME 4677 336F 19 ADD HL,DE 4678 3370 EB EX DE,HL 4679 3371 E1 POP HL 4680 3372 01 00 03 LD BC,0300H 4681 3375 28 12 JR Z,rsw1 4682 3377 05 DEC B 4683 3378 F3 DI 4684 3379 CD 1B 04 CALL 041BH ; Routine ROM TAPEON 4685 337C CD 16 04 CALL 0416H 4686 337F CD 4B 3F CALL 03F4BH 4687 3382 FB EI 4688 3383 CD 86 02 CALL 0286H ; Routine ROM TAPEOFF 4689 3386 C1 POP BC 4690 3387 DD E9 JP (IX) 4691 3389 rsw1: 4692 3389 F3 DI 4693 338A CD 1B 04 CALL 041BH ; Routine ROM TAPEON 4694 338D CD 16 04 CALL 0416H 4695 3390 D9 EXX 4696 3391 CD CE 01 CALL 01CEH 4697 3394 F6 80 OR 80H 4698 3396 67 LD H,A 4699 3397 D9 EXX 4700 3398 CD 5A 3F CALL 3F5AH 4701 339B FB EI 4702 339C CD 86 02 CALL 0286H ; Routine ROM TAPEOFF 4703 339F C1 POP BC 4704 33A0 DD E9 JP (IX) 4705 33A2 ;******************************* 4706 33A2 ;* 4707 33A2 ;* LE MOT R/W? 4708 33A2 ;* 4709 33A2 ;* : R/W? FF4A @ EXECUTE ; 4710 33A2 ;* 4711 33A2 ;******************************* 4712 33A2 nfa_rswq 4713 33A2 84 .DB 84h 4714 33A3 52 2F 57 BF .DB "R/W",'?'+80H ; R/W? 4715 33A7 55 33 .DW nfa_rsw 4716 33A9 cfa_rswq: 4717 33A9 C2 25 .DW docol 4718 33AB 1B 20 .DW cfa_lit 4719 33AD 4A FF .DW 0ff4ah 4720 33AF 9D 23 .DW cfa_at 4721 33B1 30 20 .DW cfa_execute 4722 33B3 73 22 .DW cfa_semis 4723 33B5 ;******************************* 4724 33B5 ;* 4725 33B5 ;* ANNONCES - No - LONGUEUR - TEXTE 4726 33B5 ;* 4727 33B5 ;* 4728 33B5 ;* 4729 33B5 ;******************************* 4730 33B5 CD 2F .DW adr_annoncemsg 4731 33B7 pf_msgnull: 4732 33B7 00 .DB 00 ; nb_null: 4733 33B8 0C .DB 0ch 4734 33B9 4E 27 45 58 .DB "N'EXISTE PAS" ; N'EXISTE PAS 4734 33BD 49 53 54 45 4734 33C1 20 50 41 53 4735 33C5 B7 33 .DW pf_msgnull 4736 33C7 pf_msgone: 4737 33C7 01 .DB 01h ; nb_one: 4738 33C8 10 .DB 10h 4739 33C9 4C 41 20 50 .DB "LA PILE EST VIDE" ; LA PILE EST VIDE 4739 33CD 49 4C 45 20 4739 33D1 45 53 54 20 4739 33D5 56 49 44 45 4740 33D9 C7 33 .DW pf_msgone 4741 33DB pf_msgtwo: 4742 33DB 02 .DB 02h 4743 33DC 12 .DB 12h 4744 33DD 44 49 43 54 .DB "DICTIONNAIRE PLEIN" ; DICTIONNAIRE PLEIN. 4744 33E1 49 4F 4E 4E 4744 33E5 41 49 52 45 4744 33E9 20 50 4C 45 4744 33ED 49 4E 4745 33EF DB 33 .DW pf_msgtwo 4746 33F1 pf_msgfour: 4747 33F1 04 .DB 04h 4748 33F2 0E .DB 0eh 4749 33F3 45 58 49 53 .DB "EXISTE DEJA..." ; EXISTE DEJA 4749 33F7 54 45 20 44 4749 33FB 45 4A 41 2E 4749 33FF 2E 2E 4750 3401 F1 33 .DW pf_msgfour 4751 3403 pf_msgfive: 4752 3403 05 .DB 05h 4753 3404 0A .DB 0ah 4754 3405 49 4E 54 45 .DB "INTERROMPU" ; INTERROMPU 4754 3409 52 52 4F 4D 4754 340D 50 55 4755 340F 03 34 .DW pf_msgfive 4756 3411 pf_msgseven: 4757 3411 07 .DB 07h 4758 3412 12 .DB 12h 4759 3413 4C 41 20 50 .DB "LA PILE EST PLEINE" ; LA PILE EST PLEINE 4759 3417 49 4C 45 20 4759 341B 45 53 54 20 4759 341F 50 4C 45 49 4759 3423 4E 45 4760 3425 11 34 .DW pf_msgseven 4761 3427 pf_msgten: 4762 3427 0A .DB 0ah 4763 3428 07 .DB 07h 4764 3429 53 55 52 20 .DB "SUR K7 " SUR K7 4764 342D 4B 37 20 4765 3430 27 34 .DW pf_msgten 4766 3432 pf_msgeleven: 4767 3432 0B .DB 0bh 4768 3433 0D .DB 0dh 4769 3434 4C 45 43 54 .DB "LECTURE PRETE" ; LECTURE PRETE 4769 3438 55 52 45 20 4769 343C 50 52 45 54 4769 3440 45 4770 3441 32 34 .DW pf_msgeleven 4771 3443 pf_msgtwelve: 4772 3443 0C .DB 0ch 4773 3444 08 .DB 08h 4774 3445 45 43 52 41 .DB "ECRAN No" ; ECRAN No 4774 3449 4E 20 4E 6F 4775 344D 43 34 .DW pf_msgtwelve 4776 344F pf_msgthirteen: 4777 344F 0D .DB 0dh 4778 3450 03 .DB 03h 4779 3451 4F 75 69 .DB "Oui" ; Oui 4780 3454 4F 34 .DW pf_msgthirteen 4781 3456 pf_msgseventeen: 4782 3456 11 .DB 11h 4783 3457 12 .DB 12h 4784 3458 4D 4F 54 20 .DB "MOT DE COMPILATION" ; MOT DE COMPILATION 4784 345C 44 45 20 43 4784 3460 4F 4D 50 49 4784 3464 4C 41 54 49 4784 3468 4F 4E 4785 346A 56 34 .DW pf_msgseventeen 4786 346C pf_msgeighteen: 4787 346C 12 .DB 12h 4788 346D 0F .DB 0fH 4789 346E 4D 4F 54 20 .DB "MOT D'EXECUTION" ; MOT D'EXECUTION 4789 3472 44 27 45 58 4789 3476 45 43 55 54 4789 347A 49 4F 4E 4790 347D 6C 34 .DW pf_msgeighteen 4791 347F pf_msgnineteen: 4792 347F 13 .DB 13h 4793 3480 13 .DB 13h 4794 3481 45 52 52 45 .DB "ERREUR DE STRUCTURE" ; ERREUR DE STRUCTURE 4794 3485 55 52 20 44 4794 3489 45 20 53 54 4794 348D 52 55 43 54 4794 3491 55 52 45 4795 3494 7F 34 .DW pf_msgnineteen 4796 3496 pf_msgtwenty: 4797 3496 14 .DB 14h 4798 3497 14 .DB 14h 4799 3498 53 54 52 55 .DB "STRUCTURE INCOMPLETE" ; STRUCTURE INCOMPLETE 4799 349C 43 54 55 52 4799 34A0 45 20 49 4E 4799 34A4 43 4F 4D 50 4799 34A8 4C 45 54 45 4800 34AC 96 34 .DW pf_msgtwenty 4801 34AE pf_msgtwone: 4802 34AE 15 .DB 15h 4803 34AF 13 .DB 13h 4804 34B0 4E 45 20 50 .DB "NE PEUT ETRE OUBLIE" ; NE PEUT ETRE OUBLIE 4804 34B4 45 55 54 20 4804 34B8 45 54 52 45 4804 34BC 20 4F 55 42 4804 34C0 4C 49 45 4805 34C3 AE 34 .DW pf_msgtwone 4806 34C5 pf_msgtwthree: 4807 34C5 17 .DB 17h 4808 34C6 11 .DB 11h 4809 34C7 4C 49 47 4E .DB "LIGNE INEXISTANTE" ; LIGNE INEXISTANTE 4809 34CB 45 20 49 4E 4809 34CF 45 58 49 53 4809 34D3 54 41 4E 54 4809 34D7 45 4810 34D8 C5 34 .DW pf_msgtwthree 4811 34DA pf_msgtwfour: 4812 34DA 18 .DB 18h 4813 34DB 10 .DB 10h 4814 34DC 43 55 52 52 .DB "CURRENT<>CONTEXT" ; CURRENT<>CONTEXT 4814 34E0 45 4E 54 3C 4814 34E4 3E 43 4F 4E 4814 34E8 54 45 58 54 4815 34EC ;******************************* 4816 34EC ;* 4817 34EC ;* LE MOT BAR 4818 34EC ;* 4819 34EC ;* CREATE BAR SMUDGE 09FA LATEST PFA CFA ! 4820 34EC ;* 4821 34EC ;******************************* 4822 34EC nfa_bar: 4823 34EC 83 .DB 83h 4824 34ED 42 41 D2 .DB "BA",'R'+80H ; BAR 4825 34F0 A2 33 .DW nfa_rswq 4826 34F2 FA 09 .DW 09fah ; routine ROM 09fah 4827 34F4 ;******************************* 4828 34F4 ;* 4829 34F4 ;* LE MOT BIG 4830 34F4 ;* 4831 34F4 ;* CREATE BIG SMUDGE 0964 LATEST PFA CFA ! 4832 34F4 ;* 4833 34F4 ;******************************* 4834 34F4 nfa_big: 4835 34F4 83 .DB 83h 4836 34F5 42 49 C7 .DB "BI",'G'+80H ; BIG 4837 34F8 EC 34 .DW nfa_bar 4838 34FA 64 09 .DW 0964h ; routine ROM 0964h (IX pile SP + BIG) 4839 34FC ;******************************* 4840 34FC ;* 4841 34FC ;* LE MOT BOX 4842 34FC ;* 4843 34FC ;* CREATE BOX SMUDGE 0A69 LATEST PFA CFA ! 4844 34FC ;* 4845 34FC ;******************************* 4846 34FC nfa_box: 4847 34FC 83 .DB 83h 4848 34FD 42 4F D8 .DB "BO",'X'+80H ; BOX 4849 3500 F4 34 .DW nfa_big 4850 3502 69 0A .DW 0a69h ; ; routine ROM 0a69h (mise en forme registres + BOX) 4851 3504 ;******************************* 4852 3504 ;* 4853 3504 ;* LE MOT BRIGHT 4854 3504 ;* 4855 3504 ;* CREATE BRIGHT SMUDGE 0BE4 LATEST PFA CFA ! 4856 3504 ;* 4857 3504 ;******************************* 4858 3504 nfa_bright: 4859 3504 86 .DB 86h 4860 3505 42 52 49 47 .DB "BRIGH",'T'+80H ; BRIGHT 4860 3509 48 D4 4861 350B FC 34 .DW nfa_box 4862 350D E4 0B .DW 0be4h ; routine ROM 0be4h (IX pile SP + BRIGHT)Luminosite 4863 350F ;******************************* 4864 350F ;* 4865 350F ;* LE MOT COLOR 4866 350F ;* 4867 350F ;* CREATE COLOR SMUDGE 0BC9 LATEST PFA CFA ! 4868 350F ;* 4869 350F ;******************************* 4870 350F nfa_color: 4871 350F 85 .DB 85h 4872 3510 43 4F 4C 4F .DB "COLO",'R'+80H ; COLOR 4872 3514 D2 4873 3515 04 35 .DW nfa_bright 4874 3517 C9 0B .DW 0bc9h ; routine ROM 0bc9h COLOR Etablit les couleurs 4875 3519 ;******************************* 4876 3519 ;* 4877 3519 ;* LE MOT FIRE 4878 3519 ;* 4879 3519 ;* CREATE FIRE SMUDGE 0C1F LATEST PFA CFA ! 4880 3519 ;* 4881 3519 ;******************************* 4882 3519 nfa_fire: 4883 3519 84 .DB 84h 4884 351A 46 49 52 C5 .DB "FIR",'E'+80H ; FIRE 4885 351E 0F 35 .DW nfa_color 4886 3520 1F 0C .DW 0c1fh ; routine ROM 0c1fh FIRE Lit le bouton FEU 4887 3522 ;******************************* 4888 3522 ;* 4889 3522 ;* LE MOT FROM 4890 3522 ;* 4891 3522 ;* CREATE FROM SMUDGE 0B19 LATEST PFA CFA ! 4892 3522 ;* 4893 3522 ;******************************* 4894 3522 nfa_from: 4895 3522 84 .DB 84h 4896 3523 46 52 4F CD .DB "FRO",'M'+80H ; FROM 4897 3527 19 35 .DW nfa_fire 4898 3529 19 0B .DW 0b19h ; routine ROM 0b19h FROM origine d’une ligne 4899 352B ;******************************* 4900 352B ;* 4901 352B ;* LE MOT HUSH 4902 352B ;* 4903 352B ;* CREATE HUSH SMUDGE 0C5A LATEST PFA CFA ! 4904 352B ;* 4905 352B ;******************************* 4906 352B nfa_hush: 4907 352B 84 .DB 84h 4908 352C 48 55 53 C8 .DB "HUS",'H'+80H ; HUSH 4909 3530 22 35 .DW nfa_from 4910 3532 5A 0C .DW 0c5ah ; routine ROM 0c5ah 4911 3534 ;******************************* 4912 3534 ;* 4913 3534 ;* LE MOT INK 4914 3534 ;* 4915 3534 ;* CREATE INK SMUDGE 0BB9 LATEST PFA CFA ! 4916 3534 ;* 4917 3534 ;******************************* 4918 3534 nfa_ink: 4919 3534 83 .DB 83h 4920 3535 49 4E CB .DB "IN",'K'+80H ; INK 4921 3538 2B 35 .DW nfa_hush 4922 353A B9 0B .DW 0bb9h ; routine ROM 0bb9h 4923 353C ;******************************* 4924 353C ;* 4925 353C ;* LE MOT JOY 4926 353C ;* 4927 353C ;* CREATE JOY SMUDGE 0BF4 LATEST PFA CFA ! 4928 353C ;* 4929 353C ;******************************* 4930 353C nfa_joy: 4931 353C 83 .DB 83h 4932 353D 4A 4F D9 .DB "JO",'Y'+80H ; JOY 4933 3540 34 35 .DW nfa_ink 4934 3542 F4 0B .DW 0bf4h ; routine ROM 0bf4h 4935 3544 ;******************************* 4936 3544 ;* 4937 3544 ;* LE MOT LINE 4938 3544 ;* 4939 3544 ;* CREATE LINE SMUDGE 0B23 LATEST PFA CFA ! 4940 3544 ;* 4941 3544 ;******************************* 4942 3544 nfa_line: 4943 3544 84 .DB 84h 4944 3545 4C 49 4E C5 .DB "LIN",'E'+80H ; LINE 4945 3549 3C 35 .DW nfa_joy 4946 354B 23 0B .DW 0b23h ; routine ROM 0b23h 4947 354D ;******************************* 4948 354D ;* 4949 354D ;* LE MOT LITTLE 4950 354D ;* 4951 354D ;* CREATE LITTLE SMUDGE 0975 LATEST PFA CFA ! 4952 354D ;* 4953 354D ;******************************* 4954 354D nfa_little: 4955 354D 86 .DB 86h 4956 354E 4C 49 54 54 .DB "LITTL",'E'+80H ; LITTLE 4956 3552 4C C5 4957 3554 44 35 .DW nfa_line 4958 3556 75 09 .DW 0975h ; routine ROM 0975h 4959 3558 ;******************************* 4960 3558 ;* 4961 3558 ;* LE MOT PAINT 4962 3558 ;* 4963 3558 ;* CREATE PAINT SMUDGE 0B58 LATEST PFA CFA ! 4964 3558 ;* 4965 3558 ;******************************* 4966 3558 nfa_paint: 4967 3558 85 .DB 85h 4968 3559 50 41 49 4E .DB "PAIN",'T'+80H ; PAINT 4968 355D D4 4969 355E 4D 35 .DW nfa_little 4970 3560 58 0B .DW 0b58h ; routine ROM 0b58h 4971 3562 ;******************************* 4972 3562 ;* 4973 3562 ;* LE MOT PLOT 4974 3562 ;* 4975 3562 ;* CREATE PLOT SMUDGE 09A1 LATEST PFA CFA ! 4976 3562 ;* 4977 3562 ;******************************* 4978 3562 nfa_plot: 4979 3562 84 .DB 84h 4980 3563 50 4C 4F D4 .DB "PLO",'T'+80H ; PLOT 4981 3567 58 35 .DW nfa_paint 4982 3569 A1 09 .DW 09a1h ; routine ROM 09A1h 4983 356B ;******************************* 4984 356B ;* 4985 356B ;* LE MOT POINT 4986 356B ;* 4987 356B ;* CREATE POINT SMUDGE 09C7 LATEST PFA CFA ! 4988 356B ;* 4989 356B ;******************************* 4990 356B nfa_point: 4991 356B 85 .DB 85h 4992 356C 50 4F 49 4E .DB "POIN",'T'+80H ; POINT 4992 3570 D4 4993 3571 62 35 .DW nfa_plot 4994 3573 C7 09 .DW 09c7h ; routine ROM 09c7h 4995 3575 ;******************************* 4996 3575 ;* 4997 3575 ;* LE MOT PLOT 4998 3575 ;* 4999 3575 ;* CREATE PLOT SMUDGE 0C3B LATEST PFA CFA ! 5000 3575 ;* 5001 3575 ;******************************* 5002 3575 nfa_pot: 5003 3575 83 .DB 83h 5004 3576 50 4F D4 .DB "PO",'T'+80H ; POT 5005 3579 6B 35 .DW nfa_point 5006 357B 3B 0C .DW 0c3bh ; routine ROM 0c3bh 5007 357D ;******************************* 5008 357D ;* 5009 357D ;* LE MOT RINK 5010 357D ;* 5011 357D ;* CREATE RINK SMUDGE 0A91 LATEST PFA CFA ! 5012 357D ;* 5013 357D ;******************************* 5014 357D nfa_rink: 5015 357D 84 .DB 84h 5016 357E 52 49 4E CB .DB "RIN",'K'+80H ; RINK 5017 3582 75 35 .DW nfa_pot 5018 3584 91 0A .DW 0a91h ; routine ROM 0a91h 5019 3586 ;******************************* 5020 3586 ;* 5021 3586 ;* LE MOT SOUND 5022 3586 ;* 5023 3586 ;* CREATE SOUND SMUDGE 0C63 LATEST PFA CFA ! 5024 3586 ;* 5025 3586 ;******************************* 5026 3586 nfa_sound: 5027 3586 85 .DB 85h 5028 3587 53 4F 55 4E .DB "SOUN",'D'+80H ; SOUND 5028 358B C4 5029 358C 7D 35 .DW nfa_rink 5030 358E 63 0C .DW 0c63h ; routine ROM 0c63h 5031 3590 ;******************************* 5032 3590 ;* 5033 3590 ;* LE MOT TO 5034 3590 ;* 5035 3590 ;* CREATE TO SMUDGE 0AA6 LATEST PFA CFA ! 5036 3590 ;* 5037 3590 ;******************************* 5038 3590 nfa_to: 5039 3590 82 .DB 82h 5040 3591 54 CF .DB "T",'O'+80H ; TO 5041 3593 86 35 .DW nfa_sound 5042 3595 A6 0A .DW 0aa6h ; routine ROM 5043 3597 ;******************************* 5044 3597 ;* 5045 3597 ;* LE MOT TONE 5046 3597 ;* 5047 3597 ;* CREATE TONE SMUDGE 0C51 LATEST PFA CFA ! 5048 3597 ;* 5049 3597 ;******************************* 5050 3597 nfa_tone: 5051 3597 84 .DB 84h 5052 3598 54 4F 4E C5 .DB "TON",'E'+80H ; TONE 5053 359C 90 35 .DW nfa_to 5054 359E 51 0C .DW 0c51h ; routine ROM 5055 35A0 ;******************************* 5056 35A0 ;* 5057 35A0 ;* LE MOT RECTIFY 5058 35A0 ;* 5059 35A0 ;* CREATE RECTIFY SMUDGE 0195 LATEST PFA CFA ! 5060 35A0 ;* 5061 35A0 ;******************************* 5062 35A0 nfa_rectify: 5063 35A0 87 .DB 87h 5064 35A1 52 45 43 54 .DB "RECTIF",'Y'+80H ; RECTIFY 5064 35A5 49 46 D9 5065 35A8 97 35 .DW nfa_tone 5066 35AA cfa_rectify: 5067 35AA 5C 19 .DW 0195ch ; routine ROM 5068 35AC ;******************************* 5069 35AC ;* 5070 35AC ;* LE MOT LEMIT 5071 35AC ;* 5072 35AC ;* CREATE LEMIT SMUDGE 1682 LATEST PFA CFA ! 5073 35AC ;* 5074 35AC ;******************************* 5075 35AC nfa_lemit: 5076 35AC 85 .DB 85h 5077 35AD 4C 45 4D 49 .DB "LEMI",'T'+80H ; LEMIT 5077 35B1 D4 5078 35B2 A0 35 .DW nfa_rectify 5079 35B4 82 16 .DW 01682h ; routine ROM 5080 35B6 ;******************************* 5081 35B6 ;* 5082 35B6 ;* LE MOT MODE 5083 35B6 ;* 5084 35B6 ;* CREATE MODE SMUDGE 1666 LATEST PFA CFA ! 5085 35B6 ;* 5086 35B6 ;******************************* 5087 35B6 nfa_mode: 5088 35B6 84 .DB 84h 5089 35B7 4D 4F 44 C5 .DB "MOD",'E'+80H ; MODE 5090 35BB AC 35 .DW nfa_lemit 5091 35BD 66 16 .DW 01666h ; routine ROM 5092 35BF ;******************************* 5093 35BF ;* 5094 35BF ;* LE MOT LINIT 5095 35BF ;* 5096 35BF ;* CREATE LINIT SMUDGE 1677 LATEST PFA CFA ! 5097 35BF ;* 5098 35BF ;******************************* 5099 35BF nfa_linit: 5100 35BF 85 .DB 85h 5101 35C0 4C 49 4E 49 .DB "LINI",'T'+80H ; LINIT 5101 35C4 D4 5102 35C5 B6 35 .DW nfa_mode 5103 35C7 cfa_linit: 5104 35C7 77 16 .DW 01677h ; routine ROM 5105 35C9 ;******************************* 5106 35C9 ;* 5107 35C9 ;* LE MOT CURSOR 5108 35C9 ;* 5109 35C9 ;* CREATE CURSOR SMUDGE 17BA LATEST PFA CFA ! 5110 35C9 ;* 5111 35C9 ;******************************* 5112 35C9 nfa_cursor: 5113 35C9 86 .DB 86h 5114 35CA 43 55 52 53 .DB "CURSO",'R'+80H ; CURSOR 5114 35CE 4F D2 5115 35D0 BF 35 .DW nfa_linit 5116 35D2 cfa_cursor: 5117 35D2 BA 17 .DW 017baH ; routine ROM 5118 35D4 ;******************************* 5119 35D4 ;* 5120 35D4 ;* LE MOT DELAY 5121 35D4 ;* 5122 35D4 ;* CREATE DELAY SMUDGE 1807 LATEST PFA CFA ! 5123 35D4 ;* 5124 35D4 ;******************************* 5125 35D4 nfa_delay: 5126 35D4 85 .DB 85h 5127 35D5 44 45 4C 41 .DB "DELA",'Y'+80H ; DELAY 5127 35D9 D9 5128 35DA C9 35 .DW nfa_cursor 5129 35DC 07 18 .DW 01807h ; routine ROM 5130 35DE ;******************************* 5131 35DE ;* 5132 35DE ;* LE MOT SPECIAL 5133 35DE ;* 5134 35DE ;* CREATE SPECIAL SMUDGE 19CE LATEST PFA CFA ! 5135 35DE ;* 5136 35DE ;******************************* 5137 35DE nfa_special: 5138 35DE 87 .DB 87h 5139 35DF 53 50 45 43 .DB "SPECIA",'L'+80H ; SPECIAL 5139 35E3 49 41 CC 5140 35E6 D4 35 .DW nfa_delay 5141 35E8 CE 19 .DW 019ceh ; routine ROM 5142 35EA ;******************************* 5143 35EA ;* 5144 35EA ;* LE MOT STANDARD 5145 35EA ;* 5146 35EA ;* CREATE STANDARD SMUDGE 19D8 LATEST PFA CFA ! 5147 35EA ;* 5148 35EA ;******************************* 5149 35EA nfa_standard: 5150 35EA 88 .DB 88h 5151 35EB 53 54 41 4E .DB "STANDAR",'D'+80H ; STANDARD 5151 35EF 44 41 52 C4 5152 35F3 DE 35 .DW nfa_special 5153 35F5 cfa_standard: 5154 35F5 D8 19 .DW 019d8H ; routine ROM 5155 35F7 ;******************************* 5156 35F7 ;* 5157 35F7 ;* LE MOT PEN 5158 35F7 ;* 5159 35F7 ;* CREATE PEN SMUDGE 1726 LATEST PFA CFA ! 5160 35F7 ;* 1E C, 5161 35F7 ;******************************* 5162 35F7 nfa_pen: 5163 35F7 83 .DB 83h 5164 35F8 50 45 CE .DB "PE",'N'+80H ; PEN 5165 35FB EA 35 .DW nfa_standard 5166 35FD 26 17 .DW 01726h ; routine ROM 5167 35FF 1E .DB 01eh 5168 3600 ;******************************* 5169 3600 ;* 5170 3600 ;* LE MOT PAPER 5171 3600 ;* 5172 3600 ;* CREATE PAPER SMUDGE 1726 LATEST PFA CFA ! 5173 3600 ;* 1F C, 5174 3600 ;******************************* 5175 3600 nfa_paper: 5176 3600 85 .DB 85h 5177 3601 50 41 50 45 .DB "PAPE",'R'+80H ; PAPER 5177 3605 D2 5178 3606 F7 35 .DW nfa_pen 5179 3608 26 17 .DW 01726h ; routine ROM 5180 360A 1F .DB 01fh 5181 360B ;******************************* 5182 360B ;* 5183 360B ;* LE MOT SCALE 5184 360B ;* 5185 360B ;* CREATE SCALE SMUDGE 0964 LATEST PFA CFA ! 5186 360B ;* 1C C, 5187 360B ;******************************* 5188 360B nfa_scale: 5189 360B 85 .DB 85h 5190 360C 53 43 41 4C .DB "SCAL",'E'+80H ; SCALE 5190 3610 C5 5191 3611 00 36 .DW nfa_paper 5192 3613 26 17 .DW 01726h ; routine ROM 5193 3615 1C .DB 01ch 5194 3616 ;******************************* 5195 3616 ;* 5196 3616 ;* LE MOT AT 5197 3616 ;* 5198 3616 ;* CREATE AT SMUDGE 1726 LATEST PFA CFA ! 5199 3616 ;* 1B C, 5200 3616 ;******************************* 5201 3616 nfa_rom_at: 5202 3616 82 .DB 82h 5203 3617 41 D4 .DB "A",'T'+80H ; AT 5204 3619 0B 36 .DW nfa_scale 5205 361B 26 17 .DW 01726h ; routine ROM 5206 361D 1B .DB 01bh 5207 361E ;******************************* 5208 361E ;* 5209 361E ;* LE MOT WINDOW 5210 361E ;* 5211 361E ;* CREATE WINDOW SMUDGE 1726 LATEST PFA CFA ! 5212 361E ;* 1D C, 5213 361E ;******************************* 5214 361E nfa_window: 5215 361E 86 .DB 86h 5216 361F 57 49 4E 44 .DB "WINDO",'W'+80H ; WINDOW 5216 3623 4F D7 5217 3625 16 36 .DW nfa_rom_at 5218 3627 26 17 .DW 01726h ; routine ROM 5219 3629 1D .DB 01dH 5220 362A ;******************************* 5221 362A ;* 5222 362A ;* LE MOT HOME 5223 362A ;* 5224 362A ;* CREATE HOME SMUDGE 1726 LATEST PFA CFA ! 5225 362A ;* 01 C, 5226 362A ;******************************* 5227 362A nfa_home: 5228 362A 84 .DB 84h 5229 362B 48 4F 4D C5 .DB "HOM",'E'+80H ; HOME 5230 362F 1E 36 .DW nfa_window 5231 3631 26 17 .DW 01726h ; routine ROM 5232 3633 01 .DB 01h 5233 3634 ;******************************* 5234 3634 ;* 5235 3634 ;* LE MOT PAGE 5236 3634 ;* 5237 3634 ;* CREATE PAGE SMUDGE 1726 LATEST PFA CFA ! 5238 3634 ;* 0C C, 5239 3634 ;******************************* 5240 3634 nfa_page: 5241 3634 84 .DB 84h 5242 3635 50 41 47 C5 .DB "PAG",'E'+80H ; PAGE 5243 3639 2A 36 .DW nfa_home 5244 363B 26 17 .DW 01726h ; routine ROM 5245 363D 0C .DB 0ch 5246 363E ;******************************* 5247 363E ;* 5248 363E ;* LE MOT CLS 5249 363E ;* 5250 363E ;* CREATE CLS SMUDGE 1726 LATEST PFA CFA ! 5251 363E ;* 0B C, 5252 363E ;******************************* 5253 363E nfa_cls: 5254 363E 83 .DB 83h 5255 363F 43 4C D3 .DB "CL",'S'+80H ; CLS 5256 3642 34 36 .DW nfa_page 5257 3644 26 17 .DW 01726h ; routine ROM 5258 3646 0B .DB 0bh 5259 3647 ;******************************* 5260 3647 ;* 5261 3647 ;* LE MOT BCLEAR 5262 3647 ;* 5263 3647 ;* CREATE BCLEAR SMUDGE 0DB3 LATEST PFA CFA ! 5264 3647 ;* 5265 3647 ;******************************* 5266 3647 nfa_bclear: 5267 3647 86 .DB 86h 5268 3648 42 43 4C 45 .DB "BCLEA",'R'+80H ; BCLEAR 5268 364C 41 D2 5269 364E 3E 36 .DW nfa_cls 5270 3650 B3 0D .DW 0db3h ; routine ROM 5271 3652 ;******************************* 5272 3652 ;* 5273 3652 ;* LE MOT BDROP 5274 3652 ;* 5275 3652 ;* CREATE BDROP SMUDGE 0D50 LATEST PFA CFA ! 5276 3652 ;* 5277 3652 ;******************************* 5278 3652 nfa_bdrop: 5279 3652 85 .DB 85h 5280 3653 42 44 52 4F .DB "BDRO",'P'+80H ; BDROP 5280 3657 D0 5281 3658 47 36 .DW nfa_bclear 5282 365A 50 0D .DW 0d50h ; routine ROM 5283 365C ;******************************* 5284 365C ;* 5285 365C ;* LE MOT BPOP 5286 365C ;* 5287 365C ;* CREATE BPOP SMUDGE 0D6A LATEST PFA CFA ! 5288 365C ;* 5289 365C ;******************************* 5290 365C nfa_bpop: 5291 365C 84 .DB 84h 5292 365D 42 50 4F D0 .DB "BPO",'P'+80H ; BPOP 5293 3661 52 36 .DW nfa_bdrop 5294 3663 6A 0D .DW 0d6ah ; routine ROM 5295 3665 ;******************************* 5296 3665 ;* 5297 3665 ;* LE MOT BPUSH 5298 3665 ;* 5299 3665 ;* CREATE BPUSH SMUDGE 0CA4 LATEST PFA CFA ! 5300 3665 ;* 5301 3665 ;******************************* 5302 3665 nfa_bpush: 5303 3665 85 .DB 85h 5304 3666 42 50 55 53 .DB "BPUS",'H'+80H ; BPUSH 5304 366A C8 5305 366B 5C 36 .DW nfa_bpop 5306 366D A4 0C .DW 0ca4h ; routine ROM 5307 366F ;******************************* 5308 366F ;* 5309 366F ;* LE MOT BINIT 5310 366F ;* 5311 366F ;* CREATE BINIT SMUDGE 0C96 LATEST PFA CFA ! 5312 366F ;* 5313 366F ;******************************* 5314 366F nfa_binit: 5315 366F 85 .DB 85h 5316 3670 42 49 4E 49 .DB "BINI",'T'+80H ; BINIT 5316 3674 D4 5317 3675 65 36 .DW nfa_bpush 5318 3677 cfa_binit: 5319 3677 96 0C .DW 0c96h ; routine ROM 5320 3679 ;******************************* 5321 3679 ;* 5322 3679 ;* LE MOT DRAW 5323 3679 ;* 5324 3679 ;* CREATE DRAW SMUDGE 0E38 LATEST PFA CFA ! 5325 3679 ;* 5326 3679 ;******************************* 5327 3679 nfa_draw: 5328 3679 84 .DB 84h 5329 367A 44 52 41 D7 .DB "DRA",'W'+80H ; DRAW 5330 367E 6F 36 .DW nfa_binit 5331 3680 cfa_draw: 5332 3680 38 0E .DW 0e38h ; routine ROM 5333 3682 ;******************************* 5334 3682 ;* 5335 3682 ;* LE MOT BSTACK 5336 3682 ;* 5337 3682 ;* CREATE BSTACK SMUDGE 0D43 LATEST PFA CFA ! 5338 3682 ;* 5339 3682 ;******************************* 5340 3682 nfa_bstack: 5341 3682 86 .DB 86h 5342 3683 42 53 54 41 .DB "BSTAC",'K'+80H ; BSTACK 5342 3687 43 CB 5343 3689 79 36 .DW nfa_draw 5344 368B 43 0D .DW 0d43h ; routine ROM 5345 368D ;******************************* 5346 368D ;* 5347 368D ;* LE MOT BACK 5348 368D ;* 5349 368D ;* : BACK HERE - , ; 5350 368D ;* 5351 368D ;******************************* 5352 368D nfa_back: 5353 368D 84 .DB 84h 5354 368E 42 41 43 CB .DB "BAC",'K'+80H ; BACK 5355 3692 82 36 .DW nfa_bstack 5356 3694 cfa_back: 5357 3694 C2 25 .DW docol 5358 3696 70 27 .DW cfa_here 5359 3698 12 24 .DW cfa_subb 5360 369A 88 27 .DW cfa_comma 5361 369C 73 22 .DW cfa_semis 5362 369E ;******************************* 5363 369E ;* 5364 369E ;* LE MOT ENDIF 5365 369E ;* 5366 369E ;* : ENDIF ?COMP 2 ?PAIRS HERE OVER - SWAP ! ; IMMEDIATE 5367 369E ;* 5368 369E ;******************************* 5369 369E nfa_endif: 5370 369E C5 .DB 0c5h 5371 369F 45 4E 44 49 .DB "ENDI",'F'+80H ; ENDIF 5371 36A3 C6 5372 36A4 8D 36 .DW nfa_back 5373 36A6 cfa_endif: 5374 36A6 C2 25 .DW docol 5375 36A8 7D 28 .DW cfa_qcomp 5376 36AA 3E 26 .DW cfa_two 5377 36AC AC 28 .DW cfa_qpair 5378 36AE 70 27 .DW cfa_here 5379 36B0 34 23 .DW cfa_over 5380 36B2 12 24 .DW cfa_subb 5381 36B4 50 23 .DW cfa_swap 5382 36B6 CD 23 .DW cfa_store 5383 36B8 73 22 .DW cfa_semis 5384 36BA ;******************************* 5385 36BA ;* 5386 36BA ;* LE MOT THEN 5387 36BA ;* 5388 36BA ;* : THEN ENDIF ; IMMEDIATE 5389 36BA ;* 5390 36BA ;******************************* 5391 36BA nfa_then: 5392 36BA C4 .DB 0c4h 5393 36BB 54 48 45 CE .DB "THE",'N'+80H ; THEN 5394 36BF 9E 36 .DW nfa_endif 5395 36C1 cfa_then: 5396 36C1 C2 25 .DW docol 5397 36C3 A6 36 .DW cfa_endif 5398 36C5 73 22 .DW cfa_semis 5399 36C7 ;******************************* 5400 36C7 ;* 5401 36C7 ;* LE MOT IF 5402 36C7 ;* 5403 36C7 ;* : IF COMPILE OBRANCH HERE 0 , 2 ; IMMEDIATE 5404 36C7 ;* 5405 36C7 ;******************************* 5406 36C7 nfa_if: 5407 36C7 C2 .DB 0c2h 5408 36C8 49 C6 .DB "I",'F'+80H ; IF 5409 36CA BA 36 .DW nfa_then 5410 36CC cfa_if: 5411 36CC C2 25 .DW docol 5412 36CE DB 28 .DW cfa_compile 5413 36D0 42 20 .DW cfa_obranch 5414 36D2 70 27 .DW cfa_here 5415 36D4 2E 26 .DW cfa_zero 5416 36D6 88 27 .DW cfa_comma 5417 36D8 3E 26 .DW cfa_two 5418 36DA 73 22 .DW cfa_semis 5419 36DC ;******************************* 5420 36DC ;* 5421 36DC ;* LE MOT ELSE 5422 36DC ;* 5423 36DC ;* : ELSE 2 ?PAIRS COMPILE BRANCH HERE 0 , SWAP 2 [COMPILE] ENDIF 5424 36DC ;* 2 ; IMMEDIATE 5425 36DC ;******************************* 5426 36DC nfa_else: 5427 36DC C4 .DB 0c4h 5428 36DD 45 4C 53 C5 .DB "ELS",'E'+80H ; ELSE 5429 36E1 C7 36 .DW nfa_if 5430 36E3 cfa_else: 5431 36E3 C2 25 .DW docol 5432 36E5 3E 26 .DW cfa_two 5433 36E7 AC 28 .DW cfa_qpair 5434 36E9 DB 28 .DW cfa_compile 5435 36EB 61 20 .DW cfa_branch 5436 36ED 70 27 .DW cfa_here 5437 36EF 2E 26 .DW cfa_zero 5438 36F1 88 27 .DW cfa_comma 5439 36F3 50 23 .DW cfa_swap 5440 36F5 3E 26 .DW cfa_two 5441 36F7 A6 36 .DW cfa_endif 5442 36F9 3E 26 .DW cfa_two 5443 36FB 73 22 .DW cfa_semis 5444 36FD ;******************************* 5445 36FD ;* 5446 36FD ;* LE MOT BEGIN 5447 36FD ;* 5448 36FD ;* : BEGIN ?COMP HERE 1 ; IMMEDIATE 5449 36FD ;* 5450 36FD ;******************************* 5451 36FD nfa_begin: 5452 36FD C5 .DB 0c5h 5453 36FE 42 45 47 49 .DB "BEGI",'N'+80H ; BEGIN 5453 3702 CE 5454 3703 DC 36 .DW nfa_else 5455 3705 cfa_begin: 5456 3705 C2 25 .DW docol 5457 3707 7D 28 .DW cfa_qcomp 5458 3709 70 27 .DW cfa_here 5459 370B 36 26 .DW cfa_one 5460 370D 73 22 .DW cfa_semis 5461 370F ;******************************* 5462 370F ;* 5463 370F ;* LE MOT UNTIL 5464 370F ;* 5465 370F ;* : UNTIL 1 ?PAIRS COMPILE OBRANCH BACK ; IMMEDIATE 5466 370F ;* 5467 370F ;******************************* 5468 370F nfa_until: 5469 370F C5 .DB 0c5h 5470 3710 55 4E 54 49 .DB "UNTI",'L'+80H ; UNTIL 5470 3714 CC 5471 3715 FD 36 .DW nfa_begin 5472 3717 cfa_until: 5473 3717 C2 25 .DW docol 5474 3719 36 26 .DW cfa_one 5475 371B AC 28 .DW cfa_qpair 5476 371D DB 28 .DW cfa_compile 5477 371F 42 20 .DW cfa_obranch 5478 3721 94 36 .DW cfa_back 5479 3723 73 22 .DW cfa_semis 5480 3725 ;******************************* 5481 3725 ;* 5482 3725 ;* LE MOT END 5483 3725 ;* 5484 3725 ;* : END [COMPILE] UNTIL ; IMMEDIATE 5485 3725 ;* 5486 3725 ;******************************* 5487 3725 nfa_end: 5488 3725 C3 .DB 0c3h 5489 3726 45 4E C4 .DB "EN",'D'+80H ; END 5490 3729 0F 37 .DW nfa_until 5491 372B cfa_end: 5492 372B C2 25 .DW docol 5493 372D 17 37 .DW cfa_until 5494 372F 73 22 .DW cfa_semis 5495 3731 ;******************************* 5496 3731 ;* 5497 3731 ;* LE MOT AGAIN 5498 3731 ;* 5499 3731 ;* : AGAIN 1 ?PAIRS COMPILE BRANCH BACK ; IMMEDIATE 5500 3731 ;* 5501 3731 ;******************************* 5502 3731 nfa_again: 5503 3731 C5 .DB 0c5h 5504 3732 41 47 41 49 .DB "AGAI",'N'+80H ; AGAIN 5504 3736 CE 5505 3737 25 37 .DW nfa_end 5506 3739 cfa_again: 5507 3739 C2 25 .DW docol 5508 373B 36 26 .DW cfa_one 5509 373D AC 28 .DW cfa_qpair 5510 373F DB 28 .DW cfa_compile 5511 3741 61 20 .DW cfa_branch 5512 3743 94 36 .DW cfa_back 5513 3745 73 22 .DW cfa_semis 5514 3747 ;******************************* 5515 3747 ;* 5516 3747 ;* LE MOT REPEAT 5517 3747 ;* 5518 3747 ;* : REPEAT 2SWAP [COMPILE] AGAIN 2- [COMPILE] ENDIF ; IMMEDIATE 5519 3747 ;* 5520 3747 ;******************************* 5521 3747 nfa_repeat: 5522 3747 C6 .DB 0c6h 5523 3748 52 45 50 45 .DB "REPEA",'T'+80H ; REPEAT 5523 374C 41 D4 5524 374E 31 37 .DW nfa_again 5525 3750 cfa_repeat: 5526 3750 C2 25 .DW docol 5527 3752 27 25 .DW cfa_twosw 5528 3754 39 37 .DW cfa_again 5529 3756 FC 24 .DW cfa_twol 5530 3758 A6 36 .DW cfa_endif 5531 375A 73 22 .DW cfa_semis 5532 375C ;******************************* 5533 375C ;* 5534 375C ;* LE MOT WHILE 5535 375C ;* 5536 375C ;* : WHILE [COMPILE] IF 2+ ; IMMEDIATE 5537 375C ;* 5538 375C ;******************************* 5539 375C nfa_while: 5540 375C C5 .DB 0c5h 5541 375D 57 48 49 4C .DB "WHIL",'E'+80H ; WHILE 5541 3761 C5 5542 3762 47 37 .DW nfa_repeat 5543 3764 cfa_while: 5544 3764 C2 25 .DW docol 5545 3766 CC 36 .DW cfa_if 5546 3768 06 24 .DW cfa_twop 5547 376A 73 22 .DW cfa_semis 5548 376C ;******************************* 5549 376C ;* 5550 376C ;* LE MOT ' 5551 376C ;* 5552 376C ;* : ' -FIND 0= 0 ?ERROR DROP [COMPILE] LITERAL ; IMMEDIATE 5553 376C ;* 5554 376C ;******************************* 5555 376C nfa_tick: 5556 376C C1 .DB 0c1h 5557 376D A7 .DB 0A7H ; ' 5558 376E 5C 37 .DW nfa_while 5559 3770 C2 25 .DW docol 5560 3772 CD 2B .DW cfa_dfind 5561 3774 BE 22 .DW cfa_z.equ 5562 3776 2E 26 .DW cfa_zero 5563 3778 65 28 .DW cfa_qerr 5564 377A 44 23 .DW cfa_drop 5565 377C E4 2C .DW cfa_liter 5566 377E 73 22 .DW cfa_semis 5567 3780 ;******************************* 5568 3780 ;* 5569 3780 ;* LE MOT FORGET 5570 3780 ;* : FORGET CURRENT @ CONTEXT @ - 18 ?ERROR -FIND IF 5571 3780 ;* DROP DUP FENCE @ < 15 ?ERROR DUP NFA DP ! LFA @ CONTEXT @ ! ELSE 5572 3780 ;* CR HERE COUNT TYPE SPACE 0 MESSAGE CR ENDIF ; 5573 3780 ;******************************* 5574 3780 nfa_forget: 5575 3780 86 .DB 86h 5576 3781 46 4F 52 47 .DB "FORGE",'T'+80H ; FORGET 5576 3785 45 D4 5577 3787 6C 37 .DW nfa_tick 5578 3789 cfa_forget: 5579 3789 C2 25 .DW docol 5580 378B 0F 27 .DW cfa_current 5581 378D 9D 23 .DW cfa_at 5582 378F 01 27 .DW cfa_context 5583 3791 9D 23 .DW cfa_at 5584 3793 12 24 .DW cfa_subb 5585 3795 1B 20 .DW cfa_lit 5586 3797 18 00 .DW 18h 5587 3799 65 28 .DW cfa_qerr 5588 379B CD 2B .DW cfa_dfind 5589 379D 42 20 .DW cfa_obranch 5590 379F 28 00 .DW 28h 5591 37A1 44 23 .DW cfa_drop 5592 37A3 5D 23 .DW cfa_dup 5593 37A5 BE 26 .DW cfa_fence 5594 37A7 9D 23 .DW cfa_at 5595 37A9 AA 27 .DW cfa_uless 5596 37AB 1B 20 .DW cfa_lit 5597 37AD 15 00 .DW 15h 5598 37AF 65 28 .DW cfa_qerr 5599 37B1 5D 23 .DW cfa_dup 5600 37B3 27 28 .DW cfa_nfa 5601 37B5 C7 26 .DW cfa_dp 5602 37B7 CD 23 .DW cfa_store 5603 37B9 19 28 .DW cfa_lfa 5604 37BB 9D 23 .DW cfa_at 5605 37BD 01 27 .DW cfa_context ; CURRENT POUR FIG-FORTH 5606 37BF 9D 23 .DW cfa_at 5607 37C1 CD 23 .DW cfa_store 5608 37C3 61 20 .DW cfa_branch 5609 37C5 12 00 .DW 12h 5610 37C7 31 33 .DW cfa_cr 5611 37C9 70 27 .DW cfa_here 5612 37CB BF 29 .DW cfa_count 5613 37CD D1 29 .DW cfa_type 5614 37CF CC 27 .DW cfa_space 5615 37D1 2E 26 .DW cfa_zero 5616 37D3 6B 32 .DW cfa_mess 5617 37D5 31 33 .DW cfa_cr 5618 37D7 73 22 .DW cfa_semis 5619 37D9 ;******************************* 5620 37D9 ;* 5621 37D9 ;* LE MOT DO 5622 37D9 ;* 5623 37D9 ;* : DO COMPILE (DO) HERE 3 ; IMMEDIATE 5624 37D9 ;* 5625 37D9 ;******************************* 5626 37D9 nfa_do: 5627 37D9 C2 .DB 0c2h 5628 37DA 44 CF .DB "D",'O'+80H ; DO 5629 37DC 80 37 .DW nfa_forget 5630 37DE cfa_do: 5631 37DE C2 25 .DW docol 5632 37E0 DB 28 .DW cfa_compile 5633 37E2 B0 20 .DW cfa_xdo 5634 37E4 70 27 .DW cfa_here 5635 37E6 46 26 .DW cfa_three 5636 37E8 73 22 .DW cfa_semis 5637 37EA 5638 37EA FF FF FF FF .FILL 3840h -37eah 5638 37EE FF FF FF FF 5638 37F2 FF FF FF FF 5638 37F6 FF FF FF FF 5638 37FA FF FF FF FF 5638 37FE FF FF FF FF 5638 3802 FF FF FF FF 5638 3806 FF FF FF FF 5638 380A FF FF FF FF 5638 380E FF FF FF FF 5638 3812 FF FF FF FF 5638 3816 FF FF FF FF 5638 381A FF FF FF FF 5638 381E FF FF FF FF 5638 3822 FF FF FF FF 5638 3826 FF FF FF FF 5638 382A FF FF FF FF 5638 382E FF FF FF FF 5638 3832 FF FF FF FF 5638 3836 FF FF FF FF 5638 383A FF FF FF FF 5638 383E FF FF 5639 3840 5640 3840 ;******************************* 5641 3840 ;* 5642 3840 ;* LE MOT LOOP 5643 3840 ;* 5644 3840 ;* : LOOP 3 ?PAIRS COMPILE (LOOP) BACK ; IMMEDIATE 5645 3840 ;* 5646 3840 ;******************************* 5647 3840 nfa_loop: 5648 3840 C4 .DB 0c4h 5649 3841 4C 4F 4F D0 .DB "LOO",'P'+80H ; LOOP 5650 3845 D9 37 .DW nfa_do 5651 3847 C2 25 .DW docol 5652 3849 46 26 .DW cfa_three 5653 384B AC 28 .DW cfa_qpair 5654 384D DB 28 .DW cfa_compile 5655 384F 6C 20 .DW cfa_xloop 5656 3851 94 36 .DW cfa_back 5657 3853 73 22 .DW cfa_semis 5658 3855 ;******************************* 5659 3855 ;* 5660 3855 ;* LE MOT +LOOP 5661 3855 ;* 5662 3855 ;* : +LOOP 3 ?PAIRS COMPILE (+LOOP) BACK ; IMMEDIATE 5663 3855 ;* 5664 3855 ;******************************* 5665 3855 nfa_ploop: 5666 3855 C5 .DB 0c5h 5667 3856 2B 4C 4F 4F .DB "+LOO",'P'+80H ; +LOOP 5667 385A D0 5668 385B 40 38 .DW nfa_loop 5669 385D cfa_ploop: 5670 385D C2 25 .DW docol 5671 385F 46 26 .DW cfa_three 5672 3861 AC 28 .DW cfa_qpair 5673 3863 DB 28 .DW cfa_compile 5674 3865 A3 20 .DW cfa_xploo 5675 3867 94 36 .DW cfa_back 5676 3869 73 22 .DW cfa_semis 5677 386B ;******************************* 5678 386B ;* 5679 386B ;* LE MOT SPACES 5680 386B ;* 5681 386B ;* : SPACES 0 MAX -DUP IF 0 DO SPACE LOOP ENDIF ; 5682 386B ;* 5683 386B ;******************************* 5684 386B nfa_spaces: 5685 386B 86 .DB 86h 5686 386C 53 50 41 43 .DB "SPACE",'S'+80H ; SPACES 5686 3870 45 D3 5687 3872 55 38 .DW nfa_ploop 5688 3874 cfa_spaces: 5689 3874 C2 25 .DW docol 5690 3876 2E 26 .DW cfa_zero 5691 3878 7E 31 .DW cfa_max 5692 387A D6 27 .DW cfa_ddup 5693 387C 42 20 .DW cfa_obranch 5694 387E 0C 00 .DW 0ch 5695 3880 2E 26 .DW cfa_zero 5696 3882 B0 20 .DW cfa_xdo 5697 3884 CC 27 .DW cfa_space 5698 3886 6C 20 .DW cfa_xloop 5699 3888 FC FF .DW 0fffch 5700 388A 73 22 .DW cfa_semis 5701 388C ;******************************* 5702 388C ;* 5703 388C ;* LE MOT <# 5704 388C ;* 5705 388C ;* : <# PAD HLD ! ; 5706 388C ;* 5707 388C ;******************************* 5708 388C nfa_bdigs: 5709 388C 82 .DB 82h 5710 388D 3C A3 .DB "<",'#'+80H ; <# 5711 388F 6B 38 .DW nfa_spaces 5712 3891 cfa_bdigs: 5713 3891 C2 25 .DW docol 5714 3893 B6 2A .DW cfa_pad 5715 3895 4D 27 .DW cfa_hld 5716 3897 CD 23 .DW cfa_store 5717 3899 73 22 .DW cfa_semis 5718 389B ;******************************* 5719 389B ;* 5720 389B ;* LE MOT #> 5721 389B ;* 5722 389B ;* : #> 2DROP HLD @ PAD OVER - ; 5723 389B ;* 5724 389B ;******************************* 5725 389B nfa_edigs: 5726 389B 82 .DB 82h 5727 389C 23 BE .DB "#",'>'+80H ; #> 5728 389E 8C 38 .DW nfa_bdigs 5729 38A0 cfa_edigs: 5730 38A0 C2 25 .DW docol 5731 38A2 52 25 .DW cfa_twodrop 5732 38A4 4D 27 .DW cfa_hld 5733 38A6 9D 23 .DW cfa_at 5734 38A8 B6 2A .DW cfa_pad 5735 38AA 34 23 .DW cfa_over 5736 38AC 12 24 .DW cfa_subb 5737 38AE 73 22 .DW cfa_semis 5738 38B0 ;******************************* 5739 38B0 ;* 5740 38B0 ;* LE MOT SIGN 5741 38B0 ;* 5742 38B0 ;* : SIGN ROT 0< IF 2D HOLD ENDIF ; 5743 38B0 ;* 5744 38B0 ;******************************* 5745 38B0 nfa_sign: 5746 38B0 84 .DB 84h 5747 38B1 53 49 47 CE .DB "SIG",'N'+80H ; SIGN 5748 38B5 9B 38 .DW nfa_edigs 5749 38B7 cfa_sign: 5750 38B7 C2 25 .DW docol 5751 38B9 5C 24 .DW cfa_rot 5752 38BB D1 22 .DW cfa_zless 5753 38BD 42 20 .DW cfa_obranch 5754 38BF 08 00 .DW 08h 5755 38C1 1B 20 .DW cfa_lit 5756 38C3 2D 00 .DW 2dh 5757 38C5 9E 2A .DW cfa_hold 5758 38C7 73 22 .DW cfa_semis 5759 38C9 ;******************************* 5760 38C9 ;* 5761 38C9 ;* LE MOT # 5762 38C9 ;* 5763 38C9 ;* : # BASE @ M/MOD ROT 9 OVER < IF 7 + 5764 38C9 ;* ENDIF 30 + HOLD ; 5765 38C9 ;******************************* 5766 38C9 nfa_dig: 5767 38C9 81 .DB 81h 5768 38CA A3 .DB '#'+80H ; # 5769 38CB B0 38 .DW nfa_sign 5770 38CD cfa_dig: 5771 38CD C2 25 .DW docol 5772 38CF 26 27 .DW cfa_base 5773 38D1 9D 23 .DW cfa_at 5774 38D3 4B 32 .DW cfa_msmod 5775 38D5 5C 24 .DW cfa_rot 5776 38D7 1B 20 .DW cfa_lit 5777 38D9 09 00 .DW 09h 5778 38DB 34 23 .DW cfa_over 5779 38DD 36 24 .DW cfa_less 5780 38DF 42 20 .DW cfa_obranch 5781 38E1 08 00 .DW 08h 5782 38E3 1B 20 .DW cfa_lit 5783 38E5 07 00 .DW 07h 5784 38E7 E2 22 .DW cfa_plus 5785 38E9 1B 20 .DW cfa_lit 5786 38EB 30 00 .DW 30h 5787 38ED E2 22 .DW cfa_plus 5788 38EF 9E 2A .DW cfa_hold 5789 38F1 73 22 .DW cfa_semis 5790 38F3 ;******************************* 5791 38F3 ;* 5792 38F3 ;* LE MOT #S 5793 38F3 ;* 5794 38F3 ;* : #S BEGIN # 2DUP OR 0= UNTIL ; 5795 38F3 ;* 5796 38F3 ;******************************* 5797 38F3 nfa_digs: 5798 38F3 82 .DB 82h 5799 38F4 23 D3 .DB "#",'S'+80H ; #S 5800 38F6 C9 38 .DW nfa_dig 5801 38F8 cfa_digs: 5802 38F8 C2 25 .DW docol 5803 38FA CD 38 .DW cfa_dig 5804 38FC 6B 23 .DW cfa_tdup 5805 38FE 13 22 .DW cfa_orr 5806 3900 BE 22 .DW cfa_z.equ 5807 3902 42 20 .DW cfa_obranch 5808 3904 F6 FF .DW 0fff6h 5809 3906 73 22 .DW cfa_semis 5810 3908 ;******************************* 5811 3908 ;* 5812 3908 ;* LE MOT D.R 5813 3908 ;* 5814 3908 ;* : D.R >R SWAP OVER DABS <# #S SIGN #> R> 5815 3908 ;* OVER SPACES TYPE ; 5816 3908 ;******************************* 5817 3908 nfa_dtotr: 5818 3908 83 .DB 83h 5819 3909 44 2E D2 .DB "D.",'R'+80H ; D.R 5820 390C F3 38 .DW nfa_digs 5821 390E cfa_dtotr: 5822 390E C2 25 .DW docol 5823 3910 90 22 .DW cfa_tor 5824 3912 50 23 .DW cfa_swap 5825 3914 34 23 .DW cfa_over 5826 3916 5A 31 .DW cfa_dabs 5827 3918 91 38 .DW cfa_bdigs 5828 391A F8 38 .DW cfa_digs 5829 391C B7 38 .DW cfa_sign 5830 391E A0 38 .DW cfa_edigs 5831 3920 A4 22 .DW cfa_fromr 5832 3922 34 23 .DW cfa_over 5833 3924 12 24 .DW cfa_subb 5834 3926 74 38 .DW cfa_spaces 5835 3928 D1 29 .DW cfa_type 5836 392A 73 22 .DW cfa_semis 5837 392C ;******************************* 5838 392C ;* 5839 392C ;* LE MOT .R 5840 392C ;* 5841 392C ;* : .R >R S->D R> D.R ; 5842 392C ;* 5843 392C ;******************************* 5844 392C nfa_dotr: 5845 392C 82 .DB 82h 5846 392D 2E D2 .DB ".",'R'+80H ; .R 5847 392F 08 39 .DW nfa_dtotr 5848 3931 cfa_dotr: 5849 3931 C2 25 .DW docol 5850 3933 90 22 .DW cfa_tor 5851 3935 13 31 .DW cfa_stod 5852 3937 A4 22 .DW cfa_fromr 5853 3939 0E 39 .DW cfa_dtotr 5854 393B 73 22 .DW cfa_semis 5855 393D ;******************************* 5856 393D ;* 5857 393D ;* LE MOT D. 5858 393D ;* 5859 393D ;* : D. 0 D.R SPACE ; 5860 393D ;* 5861 393D ;******************************* 5862 393D nfa_ddot: 5863 393D 82 .DB 82h 5864 393E 44 AE .DB "D",'.'+80H ; D. 5865 3940 2C 39 .DW nfa_dotr 5866 3942 cfa_ddot: 5867 3942 C2 25 .DW docol 5868 3944 2E 26 .DW cfa_zero 5869 3946 0E 39 .DW cfa_dtotr 5870 3948 CC 27 .DW cfa_space 5871 394A 73 22 .DW cfa_semis 5872 394C ;******************************* 5873 394C ;* 5874 394C ;* LE MOT . 5875 394C ;* 5876 394C ;* : . S->D D. ; 5877 394C ;* 5878 394C ;******************************* 5879 394C nfa_dot: 5880 394C 81 .DB 81h 5881 394D AE .DB '.'+80H ; . (DOT) 5882 394E 3D 39 .DW nfa_ddot 5883 3950 cfa_dot: 5884 3950 C2 25 .DW docol 5885 3952 13 31 .DW cfa_stod 5886 3954 42 39 .DW cfa_ddot 5887 3956 73 22 .DW cfa_semis 5888 3958 ;******************************* 5889 3958 ;* 5890 3958 ;* LE MOT ? 5891 3958 ;* 5892 3958 ;* : ? @ . ; 5893 3958 ;* 5894 3958 ;******************************* 5895 3958 nfa_ques: 5896 3958 81 .DB 81h 5897 3959 BF .DB '?'+80H ; ? 5898 395A 4C 39 .DW nfa_dot 5899 395C cfa_ques: 5900 395C C2 25 .DW docol 5901 395E 9D 23 .DW cfa_at 5902 3960 50 39 .DW cfa_dot 5903 3962 73 22 .DW cfa_semis 5904 3964 ;******************************* 5905 3964 ;* 5906 3964 ;* LE MOT U. 5907 3964 ;* 5908 3964 ;* : U. 0 D. ; 5909 3964 ;* 5910 3964 ;******************************* 5911 3964 nfa_udot: 5912 3964 82 .DB 82h 5913 3965 55 AE .DB "U",'.'+80H ; U. 5914 3967 58 39 .DW nfa_ques 5915 3969 cfa_udot: 5916 3969 C2 25 .DW docol 5917 396B 2E 26 .DW cfa_zero 5918 396D 42 39 .DW cfa_ddot 5919 396F 73 22 .DW cfa_semis 5920 3971 ;******************************* 5921 3971 ;* 5922 3971 ;* LE MOT CASE 5923 3971 ;* 5924 3971 ;* : CASE ?COMP CSP @ !CSP 4 ; IMMEDIATE 5925 3971 ;* 5926 3971 ;******************************* 5927 3971 nfa_case: 5928 3971 C4 .DB 0c4h 5929 3972 43 41 53 C5 .DB "CAS",'E'+80H ; CASE 5930 3976 64 39 .DW nfa_udot 5931 3978 cfa_case: 5932 3978 C2 25 .DW docol 5933 397A 7D 28 .DW cfa_qcomp 5934 397C 3A 27 .DW cfa_csp 5935 397E 9D 23 .DW cfa_at 5936 3980 52 28 .DW cfa_scsp 5937 3982 1B 20 .DW cfa_lit 5938 3984 04 00 .DW 04h 5939 3986 73 22 .DW cfa_semis 5940 3988 ;******************************* 5941 3988 ;* 5942 3988 ;* LE MOT (OF) 5943 3988 ;* 5944 3988 ;* CREATE (OF) etc SMUDGE 5945 3988 ;* 5946 3988 ;******************************* 5947 3988 nfa_xof: 5948 3988 84 .DB 84h 5949 3989 28 4F 46 A9 .DB "(OF",')'+80H ; (OF) 5950 398D 71 39 .DW nfa_case 5951 398F cfa_xof: 5952 398F 91 39 .DW $+2 5953 3991 E1 POP HL 5954 3992 D1 POP DE 5955 3993 B7 OR A 5956 3994 ED 52 SBC HL,DE 5957 3996 7D LD A,L 5958 3997 B4 OR H 5959 3998 28 04 JR Z,xof1 5960 399A D5 PUSH DE 5961 399B C3 49 20 JP obranch1 5962 399E xof1: 5963 399E 03 INC BC 5964 399F 03 INC BC 5965 39A0 DD E9 JP (IX) 5966 39A2 ;******************************* 5967 39A2 ;* 5968 39A2 ;* LE MOT OF 5969 39A2 ;* 5970 39A2 ;* : 4 ?PAIRS COMPILE (OF) HERE 0 , 5 ; IMMEDIATE 5971 39A2 ;* 5972 39A2 ;******************************* 5973 39A2 nfa_of: 5974 39A2 C2 .DB 0c2h 5975 39A3 4F C6 .DB "O",'F'+80H ; OF 5976 39A5 88 39 .DW nfa_xof 5977 39A7 cfa_of: 5978 39A7 C2 25 .DW docol 5979 39A9 1B 20 .DW cfa_lit 5980 39AB 04 00 .DW 04h 5981 39AD AC 28 .DW cfa_qpair 5982 39AF DB 28 .DW cfa_compile 5983 39B1 8F 39 .DW cfa_xof 5984 39B3 70 27 .DW cfa_here 5985 39B5 2E 26 .DW cfa_zero 5986 39B7 88 27 .DW cfa_comma 5987 39B9 1B 20 .DW cfa_lit 5988 39BB 05 00 .DW 05h 5989 39BD 73 22 .DW cfa_semis 5990 39BF ;******************************* 5991 39BF ;* 5992 39BF ;* LE MOT ENDOF 5993 39BF ;* 5994 39BF ;* : ENDOF 5 ?PAIRS COMPILE BRANCH HERE 0 , SWAP 2 [COMPILE] ENDIF 4 ; IMMEDIATE 5995 39BF ;* 5996 39BF ;******************************* 5997 39BF nfa_endof: 5998 39BF C5 .DB 0c5h 5999 39C0 45 4E 44 4F .DB "ENDO",'F'+80H ; ENDOF 5999 39C4 C6 6000 39C5 A2 39 .DW nfa_of 6001 39C7 cfa_endof: 6002 39C7 C2 25 .DW docol 6003 39C9 1B 20 .DW cfa_lit 6004 39CB 05 00 .DW 05h 6005 39CD AC 28 .DW cfa_qpair 6006 39CF DB 28 .DW cfa_compile 6007 39D1 61 20 .DW cfa_branch 6008 39D3 70 27 .DW cfa_here 6009 39D5 2E 26 .DW cfa_zero 6010 39D7 88 27 .DW cfa_comma 6011 39D9 50 23 .DW cfa_swap 6012 39DB 3E 26 .DW cfa_two 6013 39DD A6 36 .DW cfa_endif 6014 39DF 1B 20 .DW cfa_lit 6015 39E1 04 00 .DW 04h 6016 39E3 73 22 .DW cfa_semis 6017 39E5 ;******************************* 6018 39E5 ;* 6019 39E5 ;* LE MOT ENDCASE 6020 39E5 ;* 6021 39E5 ;* : ENDCASE 4 ?PAIRS COMPILE DROP BEGIN SP@ CSP @ = 0= WHILE 2 [COMPILE] ENDIF 6022 39E5 ;* REPEAT CSP ! ; IMMEDIATE 6023 39E5 ;******************************* 6024 39E5 nfa_endcase: 6025 39E5 C7 .DB 0c7h 6026 39E6 45 4E 44 43 .DB "ENDCAS",'E'+80H ; ENDCASE 6026 39EA 41 53 C5 6027 39ED BF 39 .DW nfa_endof 6028 39EF cfa_encase: 6029 39EF C2 25 .DW docol 6030 39F1 1B 20 .DW cfa_lit 6031 39F3 04 00 .DW 04h 6032 39F5 AC 28 .DW cfa_qpair 6033 39F7 DB 28 .DW cfa_compile 6034 39F9 44 23 .DW cfa_drop 6035 39FB 39 22 .DW cfa_spat ; BEGIN 6036 39FD 3A 27 .DW cfa_csp 6037 39FF 9D 23 .DW cfa_at 6038 3A01 20 24 .DW cfa_equal 6039 3A03 BE 22 .DW cfa_z.equ 6040 3A05 42 20 .DW cfa_obranch ; WHILE 6041 3A07 0A 00 .DW 0ah 6042 3A09 3E 26 .DW cfa_two 6043 3A0B A6 36 .DW cfa_endif 6044 3A0D 61 20 .DW cfa_branch ; REPEAT 6045 3A0F EC FF .DW 0ffech 6046 3A11 3A 27 .DW cfa_csp 6047 3A13 CD 23 .DW cfa_store 6048 3A15 73 22 .DW cfa_semis 6049 3A17 ;******************************* 6050 3A17 ;* 6051 3A17 ;* LE MOT MASK 6052 3A17 ;* 6053 3A17 ;* : MASK * 0 DO C, LOOP ; 6054 3A17 ;* 6055 3A17 ;******************************* 6056 3A17 nfa_mask: 6057 3A17 84 .DB 84h 6058 3A18 4D 41 53 CB .DB "MAS",'K'+80H ; MASK 6059 3A1C E5 39 .DW nfa_endcase 6060 3A1E cfa_mask: 6061 3A1E C2 25 .DW docol 6062 3A20 ED 31 .DW cfa_star 6063 3A22 2E 26 .DW cfa_zero 6064 3A24 B0 20 .DW cfa_xdo 6065 3A26 99 27 .DW cfa_ccomm 6066 3A28 6C 20 .DW cfa_xloop 6067 3A2A FC FF .DW 0fffch 6068 3A2C 73 22 .DW cfa_semis 6069 3A2E ;******************************* 6070 3A2E ;* 6071 3A2E ;* LE MOT IMAGE 6072 3A2E ;* 6073 3A2E ;* : IMAGE SWAP DRAW ; 6074 3A2E ;* 6075 3A2E ;******************************* 6076 3A2E nfa_image: 6077 3A2E 85 .DB 85h 6078 3A2F 49 4D 41 47 .DB "IMAG",'E'+80H ; IMAGE 6078 3A33 C5 6079 3A34 17 3A .DW nfa_mask 6080 3A36 cfa_image: 6081 3A36 C2 25 .DW docol 6082 3A38 88 29 .DW cfa_build 6083 3A3A 6B 23 .DW cfa_tdup 6084 3A3C 99 27 .DW cfa_ccomm 6085 3A3E 99 27 .DW cfa_ccomm 6086 3A40 1E 3A .DW cfa_mask 6087 3A42 98 29 .DW cfa_does 6088 3A44 50 23 .DW cfa_swap 6089 3A46 80 36 .DW cfa_draw 6090 3A48 73 22 .DW cfa_semis 6091 3A4A ;******************************* 6092 3A4A ;* 6093 3A4A ;* LE MOT RANDOM 6094 3A4A ;* 6095 3A4A ;* : RANDOM FE8E V@ FF88 ! ; 6096 3A4A ;* 6097 3A4A ;******************************* 6098 3A4A nfa_random: 6099 3A4A 86 .DB 86h 6100 3A4B 52 41 4E 44 .DB "RANDO",'M'+80H ; RANDOM 6100 3A4F 4F CD 6101 3A51 2E 3A .DW nfa_image 6102 3A53 cfa_random: 6103 3A53 C2 25 .DW docol 6104 3A55 1B 20 .DW cfa_lit 6105 3A57 8E FE .DW 0fe8eh ; DGTCLK 6106 3A59 A6 2E .DW cfa_vat 6107 3A5B 1B 20 .DW cfa_lit 6108 3A5D 88 FF .DW adr_rnd ; adresse 0ff88h 6109 3A5F CD 23 .DW cfa_store 6110 3A61 73 22 .DW cfa_semis 6111 3A63 ;******************************* 6112 3A63 ;* 6113 3A63 ;* LE MOT RND 6114 3A63 ;* 6115 3A63 ;* : RND FF88 @ 7ABD * 1B0F + DUP FF88 ! U* SDROP ; 6116 3A63 ;* 6117 3A63 ;******************************* 6118 3A63 nfa_rnd: 6119 3A63 83 .DB 83h 6120 3A64 52 4E C4 .DB "RN",'D'+80H ; RND 6121 3A67 4A 3A .DW nfa_random 6122 3A69 C2 25 .DW docol 6123 3A6B 1B 20 .DW cfa_lit 6124 3A6D 88 FF .DW adr_rnd ; adresse 0ff88h 6125 3A6F 9D 23 .DW cfa_at 6126 3A71 1B 20 .DW cfa_lit 6127 3A73 BD 7A .DW 07abdh ; ? 6128 3A75 ED 31 .DW cfa_star 6129 3A77 1B 20 .DW cfa_lit 6130 3A79 0F 1B .DW 1b0fh 6131 3A7B E2 22 .DW cfa_plus 6132 3A7D 5D 23 .DW cfa_dup 6133 3A7F 1B 20 .DW cfa_lit 6134 3A81 88 FF .DW adr_rnd ; adresse 0ff88h 6135 3A83 CD 23 .DW cfa_store 6136 3A85 A0 21 .DW cfa_ustar 6137 3A87 B0 24 .DW cfa_sdrop 6138 3A89 73 22 .DW cfa_semis 6139 3A8B ;******************************* 6140 3A8B ;* 6141 3A8B ;* LE MOT VLIST 6142 3A8B ;*: VLIST BASE @ CONTEXT @ @ 7D 0 DO I CR DECIMAL 6143 3A8B ;* 5 .R HEX 2 SPACES DUP U. DUP ID. 1 TRAVERSE 1+ @ DUP 0= 6144 3A8B ;* ?TERMINAL OR IF LEAVE ENDIF LOOP DROP CR BASE ! ; 6145 3A8B ;******************************* 6146 3A8B nfa_vlist: 6147 3A8B 85 .DB 85h 6148 3A8C 56 4C 49 53 .DB "VLIS",'T'+80H ; VLIST 6148 3A90 D4 6149 3A91 63 3A .DW nfa_rnd 6150 3A93 cfa_vlist: 6151 3A93 C2 25 .DW docol 6152 3A95 26 27 .DW cfa_base 6153 3A97 9D 23 .DW cfa_at 6154 3A99 01 27 .DW cfa_context 6155 3A9B 9D 23 .DW cfa_at 6156 3A9D 9D 23 .DW cfa_at 6157 3A9F 1B 20 .DW cfa_lit 6158 3AA1 00 7D .DW 7d00h ; 7D = NOMBRE DE LIGNES 6159 3AA3 2E 26 .DW cfa_zero 6160 3AA5 B0 20 .DW cfa_xdo ; DO 6161 3AA7 CA 20 .DW cfa_ido 6162 3AA9 31 33 .DW cfa_cr 6163 3AAB 3C 29 .DW cfa_decimal 6164 3AAD 1B 20 .DW cfa_lit 6165 3AAF 05 00 .DW 05h 6166 3AB1 31 39 .DW cfa_dotr 6167 3AB3 26 29 .DW cfa_hex 6168 3AB5 3E 26 .DW cfa_two 6169 3AB7 74 38 .DW cfa_spaces 6170 3AB9 5D 23 .DW cfa_dup 6171 3ABB 69 39 .DW cfa_udot 6172 3ABD 5D 23 .DW cfa_dup 6173 3ABF 3D 2C .DW cfa_iddot 6174 3AC1 36 26 .DW cfa_one 6175 3AC3 EC 27 .DW cfa_traverse 6176 3AC5 FA 23 .DW cfa_onep 6177 3AC7 9D 23 .DW cfa_at 6178 3AC9 5D 23 .DW cfa_dup 6179 3ACB BE 22 .DW cfa_z.equ 6180 3ACD 88 2E .DW cfa_qterm 6181 3ACF 13 22 .DW cfa_orr 6182 3AD1 42 20 .DW cfa_obranch ; IF 6183 3AD3 04 00 .DW 04h 6184 3AD5 7D 22 .DW cfa_leave 6185 3AD7 6C 20 .DW cfa_xloop ; ENDIF LOOP 6186 3AD9 CE FF .DW 0ffceh 6187 3ADB 44 23 .DW cfa_drop 6188 3ADD 31 33 .DW cfa_cr 6189 3ADF 26 27 .DW cfa_base 6190 3AE1 CD 23 .DW cfa_store 6191 3AE3 73 22 .DW cfa_semis 6192 3AE5 ;******************************* 6193 3AE5 ;* 6194 3AE5 ;* LE MOT PASS 6195 3AE5 ;* 6196 3AE5 ;* : PASS PAD 0 1 R/W CR PAD C/NAME -TRAILING TYPE SPACE ; 6197 3AE5 ;* 6198 3AE5 ;******************************* 6199 3AE5 nfa_pass: 6200 3AE5 84 .DB 84h 6201 3AE6 50 41 53 D3 .DB "PAS",'S'+80H ; PASS 6202 3AEA 8B 3A .DW nfa_vlist 6203 3AEC cfa_pass: 6204 3AEC C2 25 .DW docol 6205 3AEE B6 2A .DW cfa_pad 6206 3AF0 2E 26 .DW cfa_zero 6207 3AF2 36 26 .DW cfa_one 6208 3AF4 5B 33 .DW cfa_rsw 6209 3AF6 31 33 .DW cfa_cr 6210 3AF8 B6 2A .DW cfa_pad 6211 3AFA 8A 26 .DW cfa_cslname 6212 3AFC DF 29 .DW cfa_dtrai 6213 3AFE D1 29 .DW cfa_type 6214 3B00 CC 27 .DW cfa_space 6215 3B02 73 22 .DW cfa_semis 6216 3B04 ;******************************* 6217 3B04 ;* 6218 3B04 ;* LE MOT +BUFF 6219 3B04 ;* 6220 3B04 ;* : +BUFF B/BUF C/NAME + 2+ 2+ + DUP LIMIT = IF DROP FIRST ENDIF DUP 6221 3B04 ;* PREV @ - ; 6222 3B04 ;******************************* 6223 3B04 nfa_pbuf: 6224 3B04 84 .DB 84h 6225 3B05 2B 42 55 C6 .DB "+BU",'F'+80H ; +BUF 6226 3B09 E5 3A .DW nfa_pass 6227 3B0B cfa_pbuf: 6228 3B0B C2 25 .DW docol 6229 3B0D 7D 26 .DW cfa_bbuf 6230 3B0F 8A 26 .DW cfa_cslname 6231 3B11 E2 22 .DW cfa_plus 6232 3B13 06 24 .DW cfa_twop 6233 3B15 06 24 .DW cfa_twop 6234 3B17 E2 22 .DW cfa_plus 6235 3B19 5D 23 .DW cfa_dup 6236 3B1B 71 26 .DW cfa_limit 6237 3B1D 20 24 .DW cfa_equal 6238 3B1F 42 20 .DW cfa_obranch ; IF 6239 3B21 06 00 .DW 06h 6240 3B23 44 23 .DW cfa_drop 6241 3B25 65 26 .DW cfa_first 6242 3B27 5D 23 .DW cfa_dup ; ENDIF 6243 3B29 65 27 .DW cfa_prev 6244 3B2B 9D 23 .DW cfa_at 6245 3B2D 12 24 .DW cfa_subb 6246 3B2F 73 22 .DW cfa_semis 6247 3B31 ;******************************* 6248 3B31 ;* 6249 3B31 ;* LE MOT UPDATE 6250 3B31 ;* 6251 3B31 ;* : UPDATE PREV @ @ 8000 OR PREV @ ! ; 6252 3B31 ;* 6253 3B31 ;******************************* 6254 3B31 nfa_update: 6255 3B31 86 .DB 86h 6256 3B32 55 50 44 41 .DB "UPDAT",'E'+80H ; UPDATE 6256 3B36 54 C5 6257 3B38 04 3B .DW nfa_pbuf 6258 3B3A cfa_update: 6259 3B3A C2 25 .DW docol 6260 3B3C 65 27 .DW cfa_prev 6261 3B3E 9D 23 .DW cfa_at 6262 3B40 9D 23 .DW cfa_at 6263 3B42 1B 20 .DW cfa_lit 6264 3B44 00 80 .DW 8000h 6265 3B46 13 22 .DW cfa_orr 6266 3B48 65 27 .DW cfa_prev 6267 3B4A 9D 23 .DW cfa_at 6268 3B4C CD 23 .DW cfa_store 6269 3B4E 73 22 .DW cfa_semis 6270 3B50 ;******************************* 6271 3B50 ;* 6272 3B50 ;* LE MOT LOAD 6273 3B50 ;* 6274 3B50 ;* : LOAD BLK @ >R IN @ >R 0 IN ! BLK ! 6275 3B50 ;* INTERPRET R> IN ! R> BLK ! ; 6276 3B50 ;******************************* 6277 3B50 nfa_load: 6278 3B50 84 .DB 84h 6279 3B51 4C 4F 41 C4 .DB "LOA",'D'+80H ; LOAD 6280 3B55 31 3B .DW nfa_update 6281 3B57 cfa_load: 6282 3B57 C2 25 .DW docol 6283 3B59 E0 26 .DW cfa_blk 6284 3B5B 9D 23 .DW cfa_at 6285 3B5D 90 22 .DW cfa_tor 6286 3B5F E9 26 .DW cfa_in 6287 3B61 9D 23 .DW cfa_at 6288 3B63 90 22 .DW cfa_tor 6289 3B65 2E 26 .DW cfa_zero 6290 3B67 E9 26 .DW cfa_in 6291 3B69 CD 23 .DW cfa_store 6292 3B6B E0 26 .DW cfa_blk 6293 3B6D CD 23 .DW cfa_store 6294 3B6F 7A 2D .DW cfa_inter 6295 3B71 A4 22 .DW cfa_fromr 6296 3B73 E9 26 .DW cfa_in 6297 3B75 CD 23 .DW cfa_store 6298 3B77 A4 22 .DW cfa_fromr 6299 3B79 E0 26 .DW cfa_blk 6300 3B7B CD 23 .DW cfa_store 6301 3B7D 73 22 .DW cfa_semis 6302 3B7F ;******************************* 6303 3B7F ;* 6304 3B7F ;* LE MOT --> 6305 3B7F ;* 6306 3B7F ;* : --> 0 IN ! 1 BLK +! ; 6307 3B7F ;* 6308 3B7F ;******************************* 6309 3B7F nfa_nxtbl: 6310 3B7F 83 .DB 83h 6311 3B80 2D 2D BE .DB "--",'>'+80H ; --> 6312 3B83 50 3B .DW nfa_load 6313 3B85 cfa_nxtbl: 6314 3B85 C2 25 .DW docol 6315 3B87 2E 26 .DW cfa_zero 6316 3B89 E9 26 .DW cfa_in 6317 3B8B CD 23 .DW cfa_store 6318 3B8D 36 26 .DW cfa_one 6319 3B8F E0 26 .DW cfa_blk 6320 3B91 7A 23 .DW cfa_pstor 6321 3B93 73 22 .DW cfa_semis 6322 3B95 ;******************************* 6323 3B95 ;* 6324 3B95 ;* LE MOT BUFFER 6325 3B95 ;* 6326 3B95 ;* : BUFFER USE @ DUP >R BEGIN +BUF UNTIL USE ! R @ 0< R PREV ! IF R 2+ R @ 6327 3B95 ;* 7FFF AND 0 R/W? ENDIF R ! >R 2+ C/NAME + ; 6328 3B95 ;******************************* 6329 3B95 nfa_buffer: 6330 3B95 86 .DB 86h 6331 3B96 42 55 46 46 .DB "BUFFE",'R'+80H ; BUFFER 6331 3B9A 45 D2 6332 3B9C 7F 3B .DW nfa_nxtbl 6333 3B9E cfa_buffer: 6334 3B9E C2 25 .DW docol 6335 3BA0 45 33 .DW cfa_use 6336 3BA2 9D 23 .DW cfa_at 6337 3BA4 5D 23 .DW cfa_dup 6338 3BA6 90 22 .DW cfa_tor 6339 3BA8 0B 3B .DW cfa_pbuf ; BEGIN 6340 3BAA 42 20 .DW cfa_obranch ; UNTIL 6341 3BAC FC FF .DW 0fffch 6342 3BAE 45 33 .DW cfa_use 6343 3BB0 CD 23 .DW cfa_store 6344 3BB2 B7 22 .DW cfa_frr 6345 3BB4 9D 23 .DW cfa_at 6346 3BB6 D1 22 .DW cfa_zless 6347 3BB8 B7 22 .DW cfa_frr 6348 3BBA 65 27 .DW cfa_prev 6349 3BBC CD 23 .DW cfa_store 6350 3BBE 42 20 .DW cfa_obranch ; IF 6351 3BC0 14 00 .DW 14h 6352 3BC2 B7 22 .DW cfa_frr 6353 3BC4 06 24 .DW cfa_twop 6354 3BC6 B7 22 .DW cfa_frr 6355 3BC8 9D 23 .DW cfa_at 6356 3BCA 1B 20 .DW cfa_lit 6357 3BCC FF 7F .DW 07fffh 6358 3BCE 01 22 .DW cfa_andd 6359 3BD0 2E 26 .DW cfa_zero 6360 3BD2 A9 33 .DW cfa_rswq 6361 3BD4 B7 22 .DW cfa_frr ; ENDIF 6362 3BD6 CD 23 .DW cfa_store 6363 3BD8 A4 22 .DW cfa_fromr 6364 3BDA 06 24 .DW cfa_twop 6365 3BDC 8A 26 .DW cfa_cslname 6366 3BDE E2 22 .DW cfa_plus 6367 3BE0 73 22 .DW cfa_semis 6368 3BE2 ;******************************* 6369 3BE2 ;* 6370 3BE2 ;* LE MOT OPEN 6371 3BE2 ;* 6372 3BE2 ;* : OPEN DUP SCR ! BUFFER DROP WIPE ; 6373 3BE2 ;* 6374 3BE2 ;******************************* 6375 3BE2 nfa_open: 6376 3BE2 84 .DB 84h 6377 3BE3 4F 50 45 CE .DB "OPE",'N'+80H ; OPEN 6378 3BE7 95 3B .DW nfa_buffer 6379 3BE9 cfa_open: 6380 3BE9 C2 25 .DW docol 6381 3BEB 5D 23 .DW cfa_dup 6382 3BED F3 26 .DW cfa_scr 6383 3BEF CD 23 .DW cfa_store 6384 3BF1 9E 3B .DW cfa_buffer 6385 3BF3 44 23 .DW cfa_drop 6386 3BF5 95 31 .DW cfa_wipe 6387 3BF7 73 22 .DW cfa_semis 6388 3BF9 ;******************************* 6389 3BF9 ;* 6390 3BF9 ;* LE MOT (TEXT) 6391 3BF9 ;* 6392 3BF9 ;* : (TEXT) HERE OVER 1+ BLANKS SWAP WORD HERE 1+ ROT ROT CMOVE ; 6393 3BF9 ;* 6394 3BF9 ;******************************* 6395 3BF9 nfa_xtext: 6396 3BF9 86 .DB 86h 6397 3BFA 28 54 45 58 .DB "(TEXT",')'+80H ; (TEXT) 6397 3BFE 54 A9 6398 3C00 E2 3B .DW nfa_open 6399 3C02 cfa_xtext: 6400 3C02 C2 25 .DW docol 6401 3C04 70 27 .DW cfa_here 6402 3C06 34 23 .DW cfa_over 6403 3C08 FA 23 .DW cfa_onep 6404 3C0A 95 2A .DW cfa_blanks 6405 3C0C 50 23 .DW cfa_swap 6406 3C0E C9 2A .DW cfa_word 6407 3C10 70 27 .DW cfa_here 6408 3C12 FA 23 .DW cfa_onep 6409 3C14 5C 24 .DW cfa_rot 6410 3C16 5C 24 .DW cfa_rot 6411 3C18 88 21 .DW cfa_cmove 6412 3C1A 73 22 .DW cfa_semis 6413 3C1C ;******************************* 6414 3C1C ;* 6415 3C1C ;* LE MOT BLOCK 6416 3C1C ;* 6417 3C1C ;* : BLOCK OFFSET @ + >R PREV @ DUP @ R - DUP + IF BEGIN +BUF 0= IF DROP 6418 3C1C ;* R BUFFER C/NAME - DUP R 1 R/W? 2- ENDIF DUP @ R - DUP + 0= UNTIL DUP 6419 3C1C ;* PREV ! ENDIF R> DROP 2+ C/NAME + ; 6420 3C1C ;******************************* 6421 3C1C nfa_block: 6422 3C1C 85 .DB 85h 6423 3C1D 42 4C 4F 43 .DB "BLOC",'K'+80H ; BLOCK 6423 3C21 CB 6424 3C22 F9 3B .DW nfa_xtext 6425 3C24 cfa_block: 6426 3C24 C2 25 .DW docol 6427 3C26 5A 27 .DW cfa_offset 6428 3C28 9D 23 .DW cfa_at 6429 3C2A E2 22 .DW cfa_plus 6430 3C2C 90 22 .DW cfa_tor 6431 3C2E 65 27 .DW cfa_prev 6432 3C30 9D 23 .DW cfa_at 6433 3C32 5D 23 .DW cfa_dup 6434 3C34 9D 23 .DW cfa_at 6435 3C36 B7 22 .DW cfa_frr 6436 3C38 12 24 .DW cfa_subb 6437 3C3A 5D 23 .DW cfa_dup 6438 3C3C E2 22 .DW cfa_plus 6439 3C3E 42 20 .DW cfa_obranch ; IF 6440 3C40 36 00 .DW 36h 6441 3C42 0B 3B .DW cfa_pbuf ; BEGIN 6442 3C44 BE 22 .DW cfa_z.equ 6443 3C46 42 20 .DW cfa_obranch ; IF 6444 3C48 16 00 .DW 16h 6445 3C4A 44 23 .DW cfa_drop 6446 3C4C B7 22 .DW cfa_frr 6447 3C4E 9E 3B .DW cfa_buffer 6448 3C50 8A 26 .DW cfa_cslname 6449 3C52 12 24 .DW cfa_subb 6450 3C54 5D 23 .DW cfa_dup 6451 3C56 B7 22 .DW cfa_frr 6452 3C58 36 26 .DW cfa_one 6453 3C5A A9 33 .DW cfa_rswq 6454 3C5C FC 24 .DW cfa_twol 6455 3C5E 5D 23 .DW cfa_dup ; ENDIF 6456 3C60 9D 23 .DW cfa_at 6457 3C62 B7 22 .DW cfa_frr 6458 3C64 12 24 .DW cfa_subb 6459 3C66 5D 23 .DW cfa_dup 6460 3C68 E2 22 .DW cfa_plus 6461 3C6A BE 22 .DW cfa_z.equ 6462 3C6C 42 20 .DW cfa_obranch ; UNTIL 6463 3C6E D4 FF .DW 0ffd4h 6464 3C70 5D 23 .DW cfa_dup 6465 3C72 65 27 .DW cfa_prev 6466 3C74 CD 23 .DW cfa_store 6467 3C76 A4 22 .DW cfa_fromr ; ENDIF 6468 3C78 44 23 .DW cfa_drop 6469 3C7A 06 24 .DW cfa_twop 6470 3C7C 8A 26 .DW cfa_cslname 6471 3C7E E2 22 .DW cfa_plus 6472 3C80 73 22 .DW cfa_semis 6473 3C82 ;******************************* 6474 3C82 ;* 6475 3C82 ;* LE MOT NAME 6476 3C82 ;* 6477 3C82 ;* : NAME PREV @ DUP CR 0C MESSAGE @ 7FFF AND 5 .R SPACE 2+ C/NAME 6478 3C82 ;* -TRAILING TYPE ; 6479 3C82 ;******************************* 6480 3C82 nfa_dname: 6481 3C82 85 .DB 85h 6482 3C83 2E 4E 41 4D .DB ".NAM",'E'+80H ; NAME 6482 3C87 C5 6483 3C88 1C 3C .DW nfa_block 6484 3C8A cfa_dname: 6485 3C8A C2 25 .DW docol 6486 3C8C 65 27 .DW cfa_prev 6487 3C8E 9D 23 .DW cfa_at 6488 3C90 5D 23 .DW cfa_dup 6489 3C92 31 33 .DW cfa_cr 6490 3C94 1B 20 .DW cfa_lit 6491 3C96 0C 00 .DW 0ch 6492 3C98 6B 32 .DW cfa_mess 6493 3C9A 9D 23 .DW cfa_at 6494 3C9C 1B 20 .DW cfa_lit 6495 3C9E FF 7F .DW 07fffh 6496 3CA0 01 22 .DW cfa_andd 6497 3CA2 1B 20 .DW cfa_lit 6498 3CA4 05 00 .DW 05h 6499 3CA6 31 39 .DW cfa_dotr 6500 3CA8 CC 27 .DW cfa_space 6501 3CAA 06 24 .DW cfa_twop 6502 3CAC 8A 26 .DW cfa_cslname 6503 3CAE DF 29 .DW cfa_dtrai 6504 3CB0 D1 29 .DW cfa_type 6505 3CB2 73 22 .DW cfa_semis 6506 3CB4 ;******************************* 6507 3CB4 ;* 6508 3CB4 ;* LE MOT FLUSH 6509 3CB4 ;* 6510 3CB4 ;* : FLUSH LIMIT FIRST DO USE @ @ 7FFF AND BUFFER DROP 0 +BUF 6511 3CB4 ;* DROP LOOP ; 6512 3CB4 ;******************************* 6513 3CB4 nfa_flush: 6514 3CB4 85 .DB 85h 6515 3CB5 46 4C 55 53 .DB "FLUS",'H'+80H ; FLUSH 6515 3CB9 C8 6516 3CBA 82 3C .DW nfa_dname 6517 3CBC cfa_flush: 6518 3CBC C2 25 .DW docol 6519 3CBE 71 26 .DW cfa_limit 6520 3CC0 65 26 .DW cfa_first 6521 3CC2 B0 20 .DW cfa_xdo 6522 3CC4 45 33 .DW cfa_use 6523 3CC6 9D 23 .DW cfa_at 6524 3CC8 9D 23 .DW cfa_at 6525 3CCA 1B 20 .DW cfa_lit 6526 3CCC FF 7F .DW 7fffh 6527 3CCE 01 22 .DW cfa_andd 6528 3CD0 9E 3B .DW cfa_buffer 6529 3CD2 44 23 .DW cfa_drop 6530 3CD4 2E 26 .DW cfa_zero 6531 3CD6 0B 3B .DW cfa_pbuf 6532 3CD8 44 23 .DW cfa_drop 6533 3CDA A3 20 .DW cfa_xploo 6534 3CDC E8 FF .DW 0ffe8h 6535 3CDE 73 22 .DW cfa_semis 6536 3CE0 ;******************************* 6537 3CE0 ;* 6538 3CE0 ;* LE MOT NAME" 6539 3CE0 ;* 6540 3CE0 ;* : NAME" PREV @ 2+ 22 C/NAME (TEXT) UPDATE ; 6541 3CE0 ;* 6542 3CE0 ;******************************* 6543 3CE0 nfa_nameq: 6544 3CE0 85 .DB 85h 6545 3CE1 4E 41 4D 45 .DB "NAME" ; NAME" 6546 3CE5 A2 .DB 0A2h 6547 3CE6 B4 3C .DW nfa_flush 6548 3CE8 cfa_nameq: 6549 3CE8 C2 25 .DW docol 6550 3CEA 65 27 .DW cfa_prev 6551 3CEC 9D 23 .DW cfa_at 6552 3CEE 06 24 .DW cfa_twop 6553 3CF0 1B 20 .DW cfa_lit 6554 3CF2 22 00 .DW 22h 6555 3CF4 8A 26 .DW cfa_cslname 6556 3CF6 02 3C .DW cfa_xtext 6557 3CF8 3A 3B .DW cfa_update 6558 3CFA 73 22 .DW cfa_semis 6559 3CFC ;******************************* 6560 3CFC ;* 6561 3CFC ;* EN ATTENTE 6562 3CFC ;* 6563 3CFC ;* STRUCTURE A ETUDIER 6564 3CFC ;* 6565 3CFC ;******************************* 6566 3CFC cfa_tape1: 6567 3CFC C2 25 .DW docol 6568 3CFE 5D 23 .DW cfa_dup 6569 3D00 BE 22 .DW cfa_z.equ 6570 3D02 42 20 .DW cfa_obranch ; IF 6571 3D04 08 00 .DW 08h 6572 3D06 8A 3C .DW cfa_dname 6573 3D08 61 20 .DW cfa_branch 6574 3D0A 1C 00 .DW 1ch 6575 3D0C 1B 20 .DW cfa_lit ; ELSE 6576 3D0E AD FE .DW lstchr ; LSTCHR DERNIER CARACTERE TAPE 6577 3D10 BA 2E .DW cfa_vcat 6578 3D12 1B 20 .DW cfa_lit 6579 3D14 5F 00 .DW 05fh 6580 3D16 01 22 .DW cfa_andd 6581 3D18 1B 20 .DW cfa_lit 6582 3D1A 4F 00 .DW 04fh 6583 3D1C 12 24 .DW cfa_subb 6584 3D1E 42 20 .DW cfa_obranch ; IF 6585 3D20 06 00 .DW 06h 6586 3D22 5B 33 .DW cfa_rsw 6587 3D24 9E 24 .DW cfa_exit 6588 3D26 31 33 .DW cfa_cr ; ENDIF ENDIF 6589 3D28 5D 23 .DW cfa_dup 6590 3D2A 1B 20 .DW cfa_lit 6591 3D2C 0A 00 .DW 0ah 6592 3D2E E2 22 .DW cfa_plus 6593 3D30 6B 32 .DW cfa_mess 6594 3D32 36 26 .DW cfa_one 6595 3D34 2E 26 .DW cfa_zero ; BEGIN 6596 3D36 1B 20 .DW cfa_lit 6597 3D38 3F 00 .DW 03fh 6598 3D3A D2 35 .DW cfa_cursor 6599 3D3C 1B 20 .DW cfa_lit 6600 3D3E 5F 00 .DW 05fh 6601 3D40 01 22 .DW cfa_andd 6602 3D42 1B 20 .DW cfa_lit 6603 3D44 4F 00 .DW 04fh 6604 3D46 8F 39 .DW cfa_xof 6605 3D48 08 00 .DW 08h 6606 3D4A FA 23 .DW cfa_onep 6607 3D4C 61 20 .DW cfa_branch ; BRANCH VERS UNTIL 6608 3D4E 32 00 .DW 32h 6609 3D50 1B 20 .DW cfa_lit 6610 3D52 4E 00 .DW 04eh 6611 3D54 8F 39 .DW cfa_xof 6612 3D56 0C 00 .DW 0ch 6613 3D58 52 25 .DW cfa_twodrop 6614 3D5A 2E 26 .DW cfa_zero 6615 3D5C 36 26 .DW cfa_one 6616 3D5E 61 20 .DW cfa_branch ; BRANCH VERS UNTIL 6617 3D60 20 00 .DW 20h 6618 3D62 1B 20 .DW cfa_lit 6619 3D64 52 00 .DW 52h 6620 3D66 8F 39 .DW cfa_xof 6621 3D68 08 00 .DW 08h 6622 3D6A F6 32 .DW cfa_rewind 6623 3D6C 61 20 .DW cfa_branch ; BRANCH VERS UNTIL 6624 3D6E 12 00 .DW 12h 6625 3D70 1B 20 .DW cfa_lit 6626 3D72 50 00 .DW 50h 6627 3D74 8F 39 .DW cfa_xof 6628 3D76 08 00 .DW 08h 6629 3D78 EC 3A .DW cfa_pass 6630 3D7A 61 20 .DW cfa_branch ; BRANCH VERS UNTIL 6631 3D7C 04 00 .DW 04h 6632 3D7E 44 23 .DW cfa_drop 6633 3D80 42 20 .DW cfa_obranch ; UNTIL 6634 3D82 B2 FF .DW 0ffb2h 6635 3D84 34 23 .DW cfa_over 6636 3D86 42 20 .DW cfa_obranch ; IF 6637 3D88 0A 00 .DW 0ah 6638 3D8A 44 23 .DW cfa_drop 6639 3D8C 5B 33 .DW cfa_rsw 6640 3D8E 61 20 .DW cfa_branch ; ELSE 6641 3D90 10 00 .DW 10h 6642 3D92 42 20 .DW cfa_obranch ; IF 6643 3D94 08 00 .DW 08h 6644 3D96 5B 33 .DW cfa_rsw 6645 3D98 61 20 .DW cfa_branch ; ELSE 6646 3D9A 06 00 .DW 06h 6647 3D9C 52 25 .DW cfa_twodrop 6648 3D9E 44 23 .DW cfa_drop 6649 3DA0 31 33 .DW cfa_cr ; ENDIF ENDIF 6650 3DA2 73 22 .DW cfa_semis 6651 3DA4 ;******************************* 6652 3DA4 ;* 6653 3DA4 ;* LE MOT TAPE 6654 3DA4 ;* 6655 3DA4 ;* : TAPE 3CFC 3361 FF48 2! ; 6656 3DA4 ;* 6657 3DA4 ;******************************* 6658 3DA4 nfa_tape: 6659 3DA4 84 .DB 84h 6660 3DA5 54 41 50 C5 .DB "TAP",'E'+80H ; TAPE 6661 3DA9 E0 3C .DW nfa_nameq 6662 3DAB C2 25 .DW docol 6663 3DAD 1B 20 .DW cfa_lit 6664 3DAF FC 3C .DW cfa_tape1 6665 3DB1 1B 20 .DW cfa_lit 6666 3DB3 61 33 .DW cfa_rsw1 6667 3DB5 1B 20 .DW cfa_lit 6668 3DB7 48 FF .DW 0ff48h ; adresse R/W 6669 3DB9 E7 23 .DW cfa_tstor 6670 3DBB 73 22 .DW cfa_semis 6671 3DBD ;******************************* 6672 3DBD ;* 6673 3DBD ;* LE MOT (LINE) 6674 3DBD ;* 6675 3DBD ;* : (LINE) DUP 0< OVER L/SCR 1- > OR 17 ?ERROR C/L * SCR @ 6676 3DBD ;* BLOCK + ; 6677 3DBD ;******************************* 6678 3DBD nfa_xline: 6679 3DBD 86 .DB 86h 6680 3DBE 28 4C 49 4E .DB "(LINE",')'+80H ; (LINE) 3DBD 6680 3DC2 45 A9 6681 3DC4 8E FF .DW 0ff8eh 6682 3DC6 cfa_xline: 6683 3DC6 C2 25 .DW docol 6684 3DC8 5D 23 .DW cfa_dup 6685 3DCA D1 22 .DW cfa_zless 6686 3DCC 34 23 .DW cfa_over 6687 3DCE 51 33 .DW cfa_lsscr 6688 3DD0 F0 24 .DW cfa_onel 6689 3DD2 54 24 .DW cfa_great 6690 3DD4 13 22 .DW cfa_orr 6691 3DD6 1B 20 .DW cfa_lit 6692 3DD8 17 00 .DW 17h 6693 3DDA 65 28 .DW cfa_qerr 6694 3DDC 59 26 .DW cfa_csll 6695 3DDE ED 31 .DW cfa_star 6696 3DE0 F3 26 .DW cfa_scr 6697 3DE2 9D 23 .DW cfa_at 6698 3DE4 24 3C .DW cfa_block 6699 3DE6 E2 22 .DW cfa_plus 6700 3DE8 73 22 .DW cfa_semis 6701 3DEA ;******************************* 6702 3DEA ;* 6703 3DEA ;* LE MOT H 6704 3DEA ;* 6705 3DEA ;* : H (LINE) C/L CR -TRAILING TYPE ; 6706 3DEA ;* 6707 3DEA ;******************************* 6708 3DEA nfa_leth: 6709 3DEA 81 .DB 81h 6710 3DEB C8 .DB 'H'+80H ; H 6711 3DEC BD 3D .DW nfa_xline 6712 3DEE cfa_leth: 6713 3DEE C2 25 .DW docol 6714 3DF0 C6 3D .DW cfa_xline 6715 3DF2 59 26 .DW cfa_csll 6716 3DF4 31 33 .DW cfa_cr 6717 3DF6 DF 29 .DW cfa_dtrai 6718 3DF8 D1 29 .DW cfa_type 6719 3DFA 73 22 .DW cfa_semis 6720 3DFC ;******************************* 6721 3DFC ;* 6722 3DFC ;* LE MOT L+ 6723 3DFC ;* 6724 3DFC ;* : L+ L/SCR SWAP DO H LOOP ; 6725 3DFC ;* 6726 3DFC ;******************************* 6727 3DFC nfa_lplus: 6728 3DFC 82 .DB 82h 6729 3DFD 4C AB .DB "L",'+'+80H ; L+ 6730 3DFF EA 3D .DW nfa_leth 6731 3E01 cfa_lplus: 6732 3E01 C2 25 .DW docol 6733 3E03 51 33 .DW cfa_lsscr 6734 3E05 50 23 .DW cfa_swap 6735 3E07 B0 20 .DW cfa_xdo 6736 3E09 CA 20 .DW cfa_ido 6737 3E0B EE 3D .DW cfa_leth 6738 3E0D 6C 20 .DW cfa_xloop 6739 3E0F FA FF .DW 0fffah 6740 3E11 73 22 .DW cfa_semis 6741 3E13 ;******************************* 6742 3E13 ;* 6743 3E13 ;* LE MOT LIST 6744 3E13 ;* 6745 3E13 ;* : LIST DUP SCR ! BLOCK DROP STANDARD 0F EMIT .NAME 0 L+ KEY [ 3F3B , ] ; 6746 3E13 ;* 6747 3E13 ;******************************* 6748 3E13 nfa_list: 6749 3E13 84 .DB 84h 6750 3E14 4C 49 53 D4 .DB "LIS",'T'+80H ; LIST 6751 3E18 A4 3D .DW nfa_tape 6752 3E1A cfa_list: 6753 3E1A C2 25 .DW docol 6754 3E1C 5D 23 .DW cfa_dup 6755 3E1E F3 26 .DW cfa_scr 6756 3E20 CD 23 .DW cfa_store 6757 3E22 24 3C .DW cfa_block 6758 3E24 44 23 .DW cfa_drop 6759 3E26 F5 35 .DW cfa_standard 6760 3E28 1B 20 .DW cfa_lit 6761 3E2A 0F 00 .DW 0fh 6762 3E2C 2A 33 .DW cfa_emit 6763 3E2E 8A 3C .DW cfa_dname 6764 3E30 2E 26 .DW cfa_zero 6765 3E32 01 3E .DW cfa_lplus 6766 3E34 71 2E .DW cfa_key 6767 3E36 3B 3F .DW cfa_list1 6768 3E38 73 22 .DW cfa_semis 6769 3E3A ;******************************* 6770 3E3A ;* 6771 3E3A ;* LE MOT L 6772 3E3A ;* 6773 3E3A ;* : L SCR @ LIST ; 6774 3E3A ;* 6775 3E3A ;******************************* 6776 3E3A nfa_letl: 6777 3E3A 81 .DB 81h 6778 3E3B CC .DB 'L'+80H ; L 6779 3E3C FC 3D .DW nfa_lplus 6780 3E3E cfa_letl: 6781 3E3E C2 25 .DW docol 6782 3E40 F3 26 .DW cfa_scr 6783 3E42 9D 23 .DW cfa_at 6784 3E44 1A 3E .DW cfa_list 6785 3E46 73 22 .DW cfa_semis 6786 3E48 ;******************************* 6787 3E48 ;* 6788 3E48 ;* LE MOT P 6789 3E48 ;* 6790 3E48 ;* : P (LINE) 1 C/L (TEXT) UPDATE ; 6791 3E48 ;* 6792 3E48 ;******************************* 6793 3E48 nfa_letp: 6794 3E48 81 .DB 81h 6795 3E49 D0 .DB 'P'+80H ; P 6796 3E4A 3A 3E .DW nfa_letl 6797 3E4C cfa_letp: 6798 3E4C C2 25 .DW docol 6799 3E4E C6 3D .DW cfa_xline 6800 3E50 36 26 .DW cfa_one 6801 3E52 59 26 .DW cfa_csll 6802 3E54 02 3C .DW cfa_xtext 6803 3E56 3A 3B .DW cfa_update 6804 3E58 73 22 .DW cfa_semis 6805 3E5A ;******************************* 6806 3E5A ;* 6807 3E5A ;* LE MOT M 6808 3E5A ;* 6809 3E5A ;* : M DUP (LINE) TIB @ C/L CMOVE 0 IN ! CR TIB @ 6810 3E5A ;* C/L C/L 0 RECTIFY P ; 6811 3E5A ;******************************* 6812 3E5A nfa_letm: 6813 3E5A 81 .DB 81h 6814 3E5B CD .DB 'M'+80H ; M 6815 3E5C 48 3E .DW nfa_letp 6816 3E5E cfa_letm: 6817 3E5E C2 25 .DW docol 6818 3E60 5D 23 .DW cfa_dup 6819 3E62 C6 3D .DW cfa_xline 6820 3E64 A6 26 .DW cfa_tib 6821 3E66 9D 23 .DW cfa_at 6822 3E68 59 26 .DW cfa_csll 6823 3E6A 88 21 .DW cfa_cmove 6824 3E6C 2E 26 .DW cfa_zero 6825 3E6E E9 26 .DW cfa_in 6826 3E70 CD 23 .DW cfa_store 6827 3E72 31 33 .DW cfa_cr 6828 3E74 A6 26 .DW cfa_tib 6829 3E76 9D 23 .DW cfa_at 6830 3E78 59 26 .DW cfa_csll 6831 3E7A 59 26 .DW cfa_csll 6832 3E7C 2E 26 .DW cfa_zero 6833 3E7E AA 35 .DW cfa_rectify 6834 3E80 4C 3E .DW cfa_letp 6835 3E82 73 22 .DW cfa_semis 6836 3E84 ;******************************* 6837 3E84 ;* 6838 3E84 ;* LE MOT K 6839 3E84 ;* 6840 3E84 ;* : K (LINE) C/L BLANKS UPDATE ; 6841 3E84 ;* 6842 3E84 ;******************************* 6843 3E84 nfa_letk: 6844 3E84 81 .DB 81h 6845 3E85 CB .DB 'K'+80H ; K 6846 3E86 5A 3E .DW nfa_letm 6847 3E88 cfa_letk: 6848 3E88 C2 25 .DW docol 6849 3E8A C6 3D .DW cfa_xline 6850 3E8C 59 26 .DW cfa_csll 6851 3E8E 95 2A .DW cfa_blanks 6852 3E90 3A 3B .DW cfa_update 6853 3E92 73 22 .DW cfa_semis 6854 3E94 ;******************************* 6855 3E94 ;* 6856 3E94 ;* LE MOT V 6857 3E94 ;* 6858 3E94 ;* : V DUP L/SCR 1- DO I 1- (LINE) C/L CMOVE -1 +LOOP -2 K ; 6859 3E94 ;* 6860 3E94 ;******************************* 6861 3E94 nfa_letv: 6862 3E94 81 .DB 81h 6863 3E95 D6 .DB 'V'+80H ; V 6864 3E96 84 3E .DW nfa_letk 6865 3E98 cfa_letv: 6866 3E98 C2 25 .DW docol 6867 3E9A 5D 23 .DW cfa_dup 6868 3E9C 51 33 .DW cfa_lsscr 6869 3E9E F0 24 .DW cfa_onel 6870 3EA0 B0 20 .DW cfa_xdo 6871 3EA2 CA 20 .DW cfa_ido 6872 3EA4 F0 24 .DW cfa_onel 6873 3EA6 C6 3D .DW cfa_xline 6874 3EA8 CA 20 .DW cfa_ido 6875 3EAA C6 3D .DW cfa_xline 6876 3EAC 59 26 .DW cfa_csll 6877 3EAE 88 21 .DW cfa_cmove 6878 3EB0 1B 20 .DW cfa_lit 6879 3EB2 FF FF .DW 0ffffh 6880 3EB4 A3 20 .DW cfa_xploo 6881 3EB6 EC FF .DW 0ffech 6882 3EB8 88 3E .DW cfa_letk 6883 3EBA 73 22 .DW cfa_semis 6884 3EBC ;******************************* 6885 3EBC ;* 6886 3EBC ;* LE MOT Y 6887 3EBC ;* 6888 3EBC ;* : Y (LINE) PAD C/L CMOVE ; 6889 3EBC ;* 6890 3EBC ;******************************* 6891 3EBC nfa_lety: 6892 3EBC 81 .DB 81h 6893 3EBD D9 .DB 'Y'+80H ; Y 6894 3EBE 94 3E .DW nfa_letv 6895 3EC0 cfa_lety: 6896 3EC0 C2 25 .DW docol 6897 3EC2 C6 3D .DW cfa_xline 6898 3EC4 B6 2A .DW cfa_pad 6899 3EC6 59 26 .DW cfa_csll 6900 3EC8 88 21 .DW cfa_cmove 6901 3ECA 73 22 .DW cfa_semis 6902 3ECC ;******************************* 6903 3ECC ;* 6904 3ECC ;* LE MOT U 6905 3ECC ;* 6906 3ECC ;* : U PAD SWAP (LINE) C/L CMOVE UPDATE ; 6907 3ECC ;* 6908 3ECC ;******************************* 6909 3ECC nfa_letu: 6910 3ECC 81 .DB 81h 6911 3ECD D5 .DB 'U'+80H ; U 6912 3ECE BC 3E .DW nfa_lety 6913 3ED0 cfa_letu: 6914 3ED0 C2 25 .DW docol 6915 3ED2 B6 2A .DW cfa_pad 6916 3ED4 50 23 .DW cfa_swap 6917 3ED6 C6 3D .DW cfa_xline 6918 3ED8 59 26 .DW cfa_csll 6919 3EDA 88 21 .DW cfa_cmove 6920 3EDC 3A 3B .DW cfa_update 6921 3EDE 73 22 .DW cfa_semis 6922 3EE0 ;******************************* 6923 3EE0 ;* 6924 3EE0 ;* LE MOT B 6925 3EE0 ;* 6926 3EE0 ;* : B DUP Y BEGIN [ 2FDA ] - UNTIL DUP 1+ (LINE) OVER (LINE) 6927 3EE0 ;* C/L CMOVE 1+ REPEAT K ; 6928 3EE0 ;******************************* 6929 3EE0 nfa_letb: 6930 3EE0 81 .DB 81h 6931 3EE1 C2 .DB 'B'+80H ; B 6932 3EE2 CC 3E .DW nfa_letu 6933 3EE4 cfa_letb: 6934 3EE4 C2 25 .DW docol 6935 3EE6 5D 23 .DW cfa_dup 6936 3EE8 C0 3E .DW cfa_lety 6937 3EEA DA 2F .DW cfa_letb1 ; BEGIN 6938 3EEC 12 24 .DW cfa_subb 6939 3EEE 42 20 .DW cfa_obranch ; UNTIL 6940 3EF0 16 00 .DW 16h 6941 3EF2 5D 23 .DW cfa_dup 6942 3EF4 FA 23 .DW cfa_onep 6943 3EF6 C6 3D .DW cfa_xline 6944 3EF8 34 23 .DW cfa_over 6945 3EFA C6 3D .DW cfa_xline 6946 3EFC 59 26 .DW cfa_csll 6947 3EFE 88 21 .DW cfa_cmove 6948 3F00 FA 23 .DW cfa_onep 6949 3F02 61 20 .DW cfa_branch ; REPEAT 6950 3F04 E6 FF .DW 0ffe6h 6951 3F06 88 3E .DW cfa_letk 6952 3F08 73 22 .DW cfa_semis 6953 3F0A ;******************************* 6954 3F0A ;* 6955 3F0A ;* LE MOT N 6956 3F0A ;* 6957 3F0A ;* : N DUP V U ; 6958 3F0A ;* 6959 3F0A ;******************************* 6960 3F0A nfa_letn: 6961 3F0A 81 .DB 81h 6962 3F0B CE .DB 'N'+80H ; N 6963 3F0C E0 3E .DW nfa_letb 6964 3F0E cfa_letn: 6965 3F0E C2 25 .DW docol 6966 3F10 5D 23 .DW cfa_dup 6967 3F12 98 3E .DW cfa_letv 6968 3F14 D0 3E .DW cfa_letu 6969 3F16 73 22 .DW cfa_semis 6970 3F18 ;******************************* 6971 3F18 ;* 6972 3F18 ;* LE MOT I 6973 3F18 ;* 6974 3F18 ;* : I DUP V P ; 6975 3F18 ;* 6976 3F18 ;******************************* 6977 3F18 nfa_leti: 6978 3F18 81 .DB 81h 6979 3F19 C9 .DB 'I'+80H ; I 6980 3F1A 0A 3F .DW nfa_letn 6981 3F1C cfa_leti: 6982 3F1C C2 25 .DW docol 6983 3F1E 5D 23 .DW cfa_dup 6984 3F20 98 3E .DW cfa_letv 6985 3F22 4C 3E .DW cfa_letp 6986 3F24 73 22 .DW cfa_semis 6987 3F26 ;******************************* 6988 3F26 ;* 6989 3F26 ;* LE MOT EDITOR 6990 3F26 ;* 6991 3F26 ;* : EDITOR FF42 CONTEXT ! ; IMMEDIATE 6992 3F26 ;* 6993 3F26 ;******************************* 6994 3F26 nfa_editor: 6995 3F26 C6 .DB 0c6h 6996 3F27 45 44 49 54 .DB "EDITO",'R'+80H ; EDITOR 6996 3F2B 4F D2 6997 3F2D 13 3E .DW nfa_list 6998 3F2F C2 25 .DW docol 6999 3F31 1B 20 .DW cfa_lit 7000 3F33 42 FF .DW adr_editor 7001 3F35 01 27 .DW cfa_context 7002 3F37 CD 23 .DW cfa_store 7003 3F39 73 22 .DW cfa_semis 7004 3F3B ;******************************* 7005 3F3B ;* 7006 3F3B ;* 7007 3F3B ;* 7008 3F3B ;* 25C2 , ] 1 FEAE VC! DROP [COMPILE] ;S [ 7009 3F3B ;* 7010 3F3B ;******************************* 7011 3F3B cfa_list1: 7012 3F3B C2 25 .DW docol 7013 3F3D 36 26 .DW cfa_one 7014 3F3F 1B 20 .DW cfa_lit 7015 3F41 AE FE .DW 0feaeh ; KYSTAT 0=RIEN, 1=TAPE, 80=REPET 7016 3F43 DB 2E .DW cfa_vcstore 7017 3F45 44 23 .DW cfa_drop 7018 3F47 73 22 .DW cfa_semis 7019 3F49 7020 6000 .ORG 6000h 7021 6000 c_dp 7022 6000 7023 FF42 .ORG 0ff42h 7024 FF42 7025 FF42 adr_editor: 7026 FF42 18 3F .DW nfa_leti ; vers FF42 - EDITOR - NFA du dernier mot du vocab editor (Cde I) 7027 FF44 adr_lsscr: 7028 FF44 15 00 .DW 0015h ; vers FF44 L/SCR Nbre de ligne par screen (21d) 7029 FF46 adr_block: 7030 FF46 24 3C .DW cfa_block ; vers FF46 cfa_block (execute par de word) Adresse execution block 7031 FF48 adr_rsw: 7032 FF48 61 33 .DW cfa_rsw1 ; vers FF48 R/W Adresse execution R/W 7033 FF4A adr_rswq: 7034 FF4A FC 3C .DW cfa_tape1 ; vers FF4A adresse cfa de R/W? 7035 FF4C adr_varuse: 7036 FF4C F6 E0 .DW 0e0f6h ; vers FF4C Variable USE 7037 FF4E adr_prev: 7038 FF4E BC DD .DW 0ddbch ; vers FF4E PREV 7039 FF50 adr_offset: 7040 FF50 00 00 .DW 0000 ; vers FF50 OFFSET Utilise par disquettes 7041 FF52 adr_cslname: 7042 FF52 18 00 .DW 18h ; vers FF52 C/NAME Nbre caracteres pour le nom de SCREENS 7043 FF54 adr_csll: 7044 FF54 26 00 .DW 26h ; vers FF54 C/L Nbre caract par ligne Editeur 7045 FF56 adr_first: 7046 FF56 BC DD .DW 0ddbch ; vers FF56 FIRST Debut des buffer 7047 FF58 adr_limit: 7048 FF58 00 FE .DW 0fe00h ; vers FF58 LIMIT Fin des Buffer 7049 FF5A adr_bbuf: 7050 FF5A 1E 03 .DW 031eh ; vers FF5A B/BUF Nombre d octet / Buffer 7051 FF5C UP: 7052 FF5C 42 FF .DW 0ff42h ; vers FF5C R0 UP: Debut pile return 7053 FF5E adr_tib: 7054 FF5E 00 FE .DW 0fe00h ; vers FF5E Adresse du TIB 7055 FF60 adr_width: 7056 FF60 1F 00 .DW 01fh ; vers FF60 WIDTH Nombre caract signific pour les mots 7057 FF62 adr_fence: 7058 FF62 FF 3F .DW 03fffh ; vers FF62 FENCE Limite pour Forget 7059 FF64 adr_dp: 7060 FF64 00 60 .DW c_dp ; vers FF64 DP Fin du Dictionnaire (Evolutif) 7061 FF66 adr_voclink: 7062 FF66 9E FF .DW 0ff9eh ; vers FF66 VOC-LINK Chainage de Vocab 7063 FF68 adr_blk: 7064 FF68 00 00 .DW 0000 ; vers FF68 BLK (0 si TIB sinon No du block compile) 7065 FF6A adr_in: 7066 FF6A 00 00 .DW 0000 ; vers FF6A IN Pointeur flot des entrees 7067 FF6C adr_scr: 7068 FF6C 00 00 .DW 0000 ; vers FF6C SCR Numero screen courant 7069 FF6E adr_context: 7070 FF6E 9C FF .DW 0ff9ch ; vers FF6E CONTEXT Adresse Vocab de Context 7071 FF70 adr_current: 7072 FF70 9C FF .DW 0ff9ch ; vers FF70 CURRENT Adresse vocab courant 7073 FF72 adr_state: 7074 FF72 00 00 .DW 0000 ; vers FF72 STATE 7075 FF74 adr_base: 7076 FF74 0A 00 .DW 0ah ; vers FF74 BASE numerique 7077 FF76 adr_dpl: 7078 FF76 FF FF .DW 0ffffh ; vers FF76 DPL DPN ?? 7079 FF78 adr_csp: 7080 FF78 F0 5F .DW 05ff0h ; vers FF78 CSP Variable compilateur Verif Pile 7081 FF7A adr_rnum: 7082 FF7A 00 00 .DW 0000 ; vers FF7A R# ou R pointeur de l'editeur 7083 FF7C adr_hld: 7084 FF7C 00 00 .DW 0000 ; vers FF7C HLD Valiable de formatage <# #> 7085 FF7E adr_assadr: 7086 FF7E 7B 30 .DW cfa_quit ; vers FF7E cfa du vocab assemblor cfa_quit (Execute durant compilation de ;CODE) 7087 FF80 75 2B .DW cfa_numb2 ; vers FF80 cfa_numb2 (Execute par NUMBER) Adresse de Number 7088 FF82 18 2C .DW cfa_error2 ; vers FF82 cfa_error2 (Execute par ERROR) Adresse de error 7089 FF84 A0 FF .DW 0ffa0h ; vers FF84 Adresse retour speciale pour chaĆ®ner langage 7090 FF86 adr_fwadr: 7091 FF86 A9 30 .DW cfa_abort ; vers FF86 ; cfa_abort Adr premier mot Forth execute 7092 FF88 adr_rnd: 7093 FF88 BC 81 .DW 081bch ; vers FF88 ; Utilise par 256RND Racine du RND 7094 FF8A adr_warning: 7095 FF8A DA 34 .DW pf_msgtwfour ; vers FF8A Pointer dernier message 7096 FF8C RPP: 7097 FF8C 42 FF .DW 0ff42h ; vers FF8C (R0) INITR0 RPP: Pointeur pile return 7098 FF8E nfa_motforth: 7099 FF8E C5 .DB 0c5h 7100 FF8F 46 4F 52 54 .DB "FORT",'H'+80H ; vers FF8E (LINE) Mot"FORTH" 7100 FF93 C8 7101 FF94 7102 FF94 26 3F .DW 03f26h ; vers FF94 7103 FF96 adr_forth: 7104 FF96 A4 29 .DW 029a4h ; vers FF96 FORTH 7105 FF98 01 2E .DW 02e01h ; vers FF98 7106 FF9A 81 A0 .DW 0a081h ; vers FF9A 7107 FF9C adr_latest: 7108 FF9C 8E FF .DW 0ff8eh ; vers FF9C NFA du dernier mot defini en Forth 7109 FF9E 00 00 .DW 0000 ; vers FF9E 7110 FFA0 31 .DB 31h ; vers FFA0 ; Instruction LD SP, 7111 FFA1 adr_szero: 7112 FFA1 F0 5F .DW 05ff0h ; vers FFA1 ; S0 Debut pile de parametres 7113 FFA3 C3 CA 30 JP c_cold2 ; vers FFA3 7114 FFA6 36 20 .DW 2036h ; vers FFA6 7115 FFA8 52 45 54 4F .DB "RETOUR FORTH" ; vers FFA8 7115 FFAC 55 52 20 46 7115 FFB0 4F 52 54 48 7116 FFB4 0D 0D .DW 0d0dh ; vers FFB4 EMIT CR CR 7117 FFB6 7118 FFB6 .END tasm: Number of errors = 0