Annotation of qemu/roms/SLOF/slof/fs/fcode/tokens.fs, revision 1.1

1.1     ! root        1: \ *****************************************************************************
        !             2: \ * Copyright (c) 2004, 2008 IBM Corporation
        !             3: \ * All rights reserved.
        !             4: \ * This program and the accompanying materials
        !             5: \ * are made available under the terms of the BSD License
        !             6: \ * which accompanies this distribution, and is available at
        !             7: \ * http://www.opensource.org/licenses/bsd-license.php
        !             8: \ *
        !             9: \ * Contributors:
        !            10: \ *     IBM Corporation - initial implementation
        !            11: \ ****************************************************************************/
        !            12: 
        !            13: : fc-abort ." FCode called abort: IP " get-ip . ( ." STACK: " .s ) depth dup 0< IF abort THEN . rdepth . cr  abort ;
        !            14: : fc-0 ." 0(lit): STACK ( S: " depth . ." R: " rdepth . ." ): " depth 0> IF .s THEN 0 ;
        !            15: : fc-1 ." 1(lit): STACK ( S: " depth . ." R: " rdepth . ." ): " depth 0> IF .s THEN 1 ;
        !            16: 
        !            17: : parse-1hex 1 hex-decode-unit ;
        !            18: 
        !            19: 
        !            20: : reset-token-table
        !            21:   FFF 0 DO ['] ferror 0 i set-token LOOP
        !            22:   ;
        !            23: 
        !            24: reset-token-table
        !            25: 
        !            26: ' end0 0        00 set-token
        !            27: 
        !            28: \ 01...0F beginning code of 2-byte FCode sequences
        !            29: 
        !            30: \ ' ferror      1 08 set-token
        !            31: \ ' ferror      1 09 set-token
        !            32: \ ' ferror      1 0a set-token
        !            33: \ ' ferror      1 0b set-token
        !            34: \ ' ferror      1 0c set-token
        !            35: \ ' ferror      1 0d set-token
        !            36: \ ' ferror      1 0e set-token
        !            37: \ ' ferror      1 0f set-token
        !            38: 
        !            39: ' b(lit)      1 10 set-token
        !            40: 
        !            41: ' b(')        1 11 set-token
        !            42: ' b(")        1 12 set-token
        !            43: ' bbranch     1 13 set-token
        !            44: ' b?branch    1 14 set-token
        !            45: ' b(loop)     1 15 set-token
        !            46: ' b(+loop)    1 16 set-token
        !            47: ' b(do)       1 17 set-token
        !            48: ' b(?do)      1 18 set-token
        !            49: ' i           0 19 set-token
        !            50: ' j           0 1A set-token
        !            51: ' b(leave)    1 1B set-token
        !            52: ' b(of)       1 1C set-token
        !            53: ' execute     0 1D set-token
        !            54: ' +           0 1E set-token
        !            55: ' -           0 1F set-token
        !            56: ' *           0 20 set-token
        !            57: ' /           0 21 set-token
        !            58: ' mod         0 22 set-token 
        !            59: ' and         0 23 set-token 
        !            60: ' or          0 24 set-token 
        !            61: ' xor         0 25 set-token 
        !            62: ' invert      0 26 set-token 
        !            63: ' lshift      0 27 set-token 
        !            64: ' rshift      0 28 set-token 
        !            65: ' >>a         0 29 set-token 
        !            66: ' /mod        0 2A set-token 
        !            67: ' u/mod       0 2B set-token
        !            68: ' negate      0 2C set-token 
        !            69: ' abs         0 2D set-token 
        !            70: ' min         0 2E set-token 
        !            71: ' max         0 2F set-token 
        !            72: ' >r          0 30 set-token 
        !            73: ' r>          0 31 set-token 
        !            74: ' r@          0 32 set-token 
        !            75: ' exit        0 33 set-token 
        !            76: ' 0=          0 34 set-token 
        !            77: ' 0<>         0 35 set-token 
        !            78: ' 0<          0 36 set-token 
        !            79: ' 0<=         0 37 set-token 
        !            80: ' 0>          0 38 set-token 
        !            81: ' 0>=         0 39 set-token 
        !            82: ' <           0 3A set-token
        !            83: ' >           0 3B set-token
        !            84: ' =           0 3C set-token
        !            85: ' <>          0 3D set-token
        !            86: ' u>          0 3E set-token
        !            87: ' u<=         0 3F set-token 
        !            88: ' u<          0 40 set-token 
        !            89: ' u>=         0 41 set-token 
        !            90: ' >=          0 42 set-token 
        !            91: ' <=          0 43 set-token 
        !            92: ' between     0 44 set-token 
        !            93: ' within      0 45 set-token 
        !            94: ' DROP        0 46 set-token
        !            95: ' DUP         0 47 set-token
        !            96: ' OVER        0 48 set-token
        !            97: ' SWAP        0 49 set-token
        !            98: ' ROT         0 4A set-token
        !            99: ' -ROT        0 4B set-token
        !           100: ' TUCK        0 4C set-token
        !           101: ' nip         0 4D set-token 
        !           102: ' pick        0 4E set-token 
        !           103: ' roll        0 4F set-token 
        !           104: ' ?dup        0 50 set-token 
        !           105: ' depth       0 51 set-token 
        !           106: ' 2drop       0 52 set-token 
        !           107: ' 2dup        0 53 set-token 
        !           108: ' 2over       0 54 set-token 
        !           109: ' 2swap       0 55 set-token 
        !           110: ' 2rot        0 56 set-token 
        !           111: ' 2/          0 57 set-token 
        !           112: ' u2/         0 58 set-token 
        !           113: ' 2*          0 59 set-token 
        !           114: ' /c          0 5A set-token
        !           115: ' /w          0 5B set-token 
        !           116: ' /l          0 5C set-token 
        !           117: ' /n          0 5D set-token 
        !           118: ' ca+         0 5E set-token 
        !           119: ' wa+         0 5F set-token 
        !           120: ' la+         0 60 set-token 
        !           121: ' na+         0 61 set-token 
        !           122: ' char+       0 62 set-token 
        !           123: ' wa1+        0 63 set-token 
        !           124: ' la1+        0 64 set-token 
        !           125: ' cell+       0 65 set-token 
        !           126: ' chars       0 66 set-token 
        !           127: ' /w*         0 67 set-token 
        !           128: ' /l*         0 68 set-token 
        !           129: ' cells       0 69 set-token 
        !           130: ' on          0 6A set-token 
        !           131: ' off         0 6B set-token 
        !           132: ' +!          0 6C set-token 
        !           133: ' @           0 6D set-token 
        !           134: ' l@          0 6E set-token 
        !           135: ' w@          0 6F set-token 
        !           136: ' <w@         0 70 set-token 
        !           137: ' c@          0 71 set-token 
        !           138: ' !           0 72 set-token 
        !           139: ' l!          0 73 set-token 
        !           140: ' w!          0 74 set-token 
        !           141: ' c!          0 75 set-token 
        !           142: ' 2@          0 76 set-token 
        !           143: ' 2!          0 77 set-token 
        !           144: ' move        0 78 set-token 
        !           145: ' fill        0 79 set-token 
        !           146: ' comp        0 7A set-token 
        !           147: ' noop        0 7B set-token
        !           148: ' lwsplit     0 7C set-token 
        !           149: ' wljoin      0 7D set-token 
        !           150: ' lbsplit     0 7E set-token 
        !           151: ' bljoin      0 7F set-token 
        !           152: ' wbflip      0 80 set-token 
        !           153: ' upc         0 81 set-token 
        !           154: ' lcc         0 82 set-token 
        !           155: ' pack      0 83 set-token 
        !           156: ' count       0 84 set-token 
        !           157: ' body>       0 85 set-token 
        !           158: ' >body       0 86 set-token 
        !           159: ' fcode-revision 0 87 set-token 
        !           160: ' span        0 88 set-token 
        !           161: ' unloop      0 89 set-token 
        !           162: ' expect      0 8A set-token 
        !           163: ' alloc-mem   0 8B set-token \ alloc-mem  
        !           164: ' free-mem    0 8C set-token \ free-mem 
        !           165: ' key?        0 8D set-token 
        !           166: ' key         0 8E set-token 
        !           167: ' emit        0 8F set-token 
        !           168: ' type        0 90 set-token 
        !           169: ' cr          0 91 set-token \ should be (cr but terminal support is not
        !           170:                              \ available
        !           171: ' cr          0 92 set-token 
        !           172: \ ' #out      0 93 set-token 
        !           173: \ ' #line     0 94 set-token 
        !           174: ' hold        0 95 set-token 
        !           175: ' <#          0 96 set-token 
        !           176: ' u#>         0 97 set-token 
        !           177: ' sign        0 98 set-token 
        !           178: ' u#          0 99 set-token 
        !           179: ' u#s         0 9A set-token 
        !           180: ' u.          0 9B set-token 
        !           181: ' u.r         0 9C set-token 
        !           182: ' .           0 9D set-token 
        !           183: ' .r          0 9E set-token 
        !           184: ' .s          0 9F set-token 
        !           185: ' base        0 A0 set-token 
        !           186: \ ' convert     0  A1 set-token 
        !           187: ' $number     0 A2 set-token 
        !           188: ' digit       0 A3 set-token 
        !           189: ' -1          0 A4 set-token
        !           190: '  0          0 A5 set-token
        !           191: '  1          0 A6 set-token
        !           192: '  2          0 A7 set-token
        !           193: '  3          0 A8 set-token
        !           194: ' bl          0 A9 set-token
        !           195: ' bs          0 AA set-token 
        !           196: ' bell        0 AB set-token 
        !           197: ' bounds      0 AC set-token 
        !           198: ' here        0 AD set-token 
        !           199: ' aligned     0 AE set-token 
        !           200: ' wbsplit     0 AF set-token 
        !           201: ' bwjoin      0 B0 set-token 
        !           202: ' b(<mark)    1 B1 set-token
        !           203: ' b(>resolve) 1 B2 set-token
        !           204: \ ' ferror      0 B3 set-token 
        !           205: \ ' ferror      0 B4 set-token 
        !           206: ' new-token   0 B5 set-token 
        !           207: ' named-token 0 B6 set-token
        !           208: \ fcode-debug? IF
        !           209: ' b(:)        1 B7 set-token
        !           210: \ ELSE
        !           211: \ ' b(:)        1 B7 set-token
        !           212: \ THEN
        !           213: ' b(value)    1 B8 set-token 
        !           214: ' b(variable) 1 B9 set-token 
        !           215: ' b(constant) 1 BA set-token 
        !           216: ' b(create)   1 BB set-token 
        !           217: ' b(defer)    1 BC set-token 
        !           218: ' b(buffer:)  1 BD set-token 
        !           219: ' b(field)    1 BE set-token 
        !           220: \ ' ferror      0 BF set-token 
        !           221: ' INSTANCE     0 C0 set-token 
        !           222: \ ' noop        1 C0 set-token
        !           223: \ ' ferror      0 C1 set-token
        !           224: \ fcode-debug? IF
        !           225: ' b(;)        1 C2 set-token
        !           226: \ ELSE
        !           227: \ ' b(;)        1 C2 set-token
        !           228: \ THEN
        !           229: ' b(to)       1 C3 set-token 
        !           230: ' b(case)     1 C4 set-token
        !           231: ' b(endcase)  1 C5 set-token
        !           232: ' b(endof)    1 C6 set-token
        !           233: ' #           0 C7 set-token
        !           234: ' #s          0 C8 set-token
        !           235: ' #>          0 C9 set-token
        !           236: ' external-token 0 CA set-token 
        !           237: ' $find       0 CB set-token
        !           238: ' offset16    0 CC set-token 
        !           239: ' evaluate    0 CD set-token
        !           240: \             0  CE reserved
        !           241: \             0  CF reserved
        !           242: ' c,          0  D0 set-token
        !           243: ' w,          0  D1 set-token
        !           244: ' l,          0  D2 set-token
        !           245: ' ,           0  D3 set-token
        !           246: ' um*         0  D4 set-token
        !           247: ' um/mod      0  D5 set-token
        !           248: \             0  D6 reserved
        !           249: \             0  D7 reserved
        !           250: ' d+          0  D8 set-token
        !           251: ' d-          0  D9 set-token
        !           252: ' get-token   0  DA set-token 
        !           253: ' set-token   0  DB set-token 
        !           254: ' state       0  DC set-token  \ possibly broken
        !           255: ' compile,    0  DD set-token
        !           256: ' behavior    0  DE set-token 
        !           257: 
        !           258: ' start0             0  F0 set-token
        !           259: ' start1             0  F1 set-token
        !           260: ' start2             0  F2 set-token
        !           261: ' start4             0  F3 set-token
        !           262: 
        !           263: ' ferror             0  FC set-token
        !           264: ' version1           0  FD set-token
        !           265: 
        !           266: \ ' 4-byte-id        0  FE set-token    \ Historical
        !           267: ' end1               0  FF set-token
        !           268: 
        !           269: \ ' dma-alloc   0 101 set-token 
        !           270: ' my-address        0 102 set-token 
        !           271: ' my-space          0 103 set-token
        !           272: ' property          0 110 set-token
        !           273: ' encode-int        0 111 set-token
        !           274: ' encode+           0 112 set-token
        !           275: ' encode-phys       0 113 set-token
        !           276: ' encode-string     0 114 set-token
        !           277: ' encode-bytes      0 115 set-token
        !           278: ' reg               0 116 set-token
        !           279: ' model             0 119 set-token    
        !           280: ' device-type       0 11A set-token
        !           281: ' parse-2int        0 11B set-token
        !           282: ' is-install        0 11C set-token
        !           283: ' is-remove         0 11D set-token
        !           284: ' is-selftest       0 11E set-token
        !           285: ' new-device        0 11F set-token
        !           286: ' diagnostic-mode?  0 120 set-token
        !           287: ' memory-test-suite 0 122 set-token
        !           288: ' mask              0 124 set-token
        !           289: ' get-msecs         0 125 set-token
        !           290: ' ms                0 126 set-token
        !           291: ' finish-device     0 127 set-token
        !           292: ' decode-phys       0 128 set-token
        !           293: ' #lines            0 150 set-token
        !           294: ' #columns          0 151 set-token
        !           295: ' line#             0 152 set-token
        !           296: ' column#           0 153 set-token
        !           297: ' inverse?          0 154 set-token
        !           298: ' inverse-screen?   0 155 set-token
        !           299: 
        !           300: ' draw-character    0 157 set-token
        !           301: ' reset-screen      0 158 set-token
        !           302: ' toggle-cursor     0 159 set-token
        !           303: ' erase-screen      0 15A set-token
        !           304: ' blink-screen      0 15B set-token
        !           305: ' invert-screen     0 15C set-token
        !           306: ' insert-characters 0 15D set-token
        !           307: ' delete-characters 0 15E set-token
        !           308: ' insert-lines      0 15F set-token
        !           309: ' delete-lines      0 160 set-token
        !           310: ' draw-logo         0 161 set-token
        !           311: ' frame-buffer-adr  0 162 set-token
        !           312: ' screen-height     0 163 set-token
        !           313: ' screen-width      0 164 set-token
        !           314: ' window-top        0 165 set-token
        !           315: ' window-left       0 166 set-token
        !           316: 
        !           317: ' default-font      0 16A set-token
        !           318: ' set-font          0 16B set-token
        !           319: ' char-height       0 16C set-token
        !           320: ' char-width        0 16D set-token
        !           321: ' >font             0 16E set-token
        !           322: ' fontbytes         0 16F set-token
        !           323: 
        !           324: ' fb8-install       0 18B set-token
        !           325: 
        !           326: ' device-name       0 201 set-token
        !           327: ' my-args           0 202 set-token
        !           328: ' my-self           0 203 set-token
        !           329: ' find-package      0 204 set-token
        !           330: ' open-package      0 205 set-token
        !           331: ' close-package     0 206 set-token
        !           332: ' find-method       0 207 set-token
        !           333: ' call-package      0 208 set-token
        !           334: ' $call-parent      0 209 set-token
        !           335: ' my-parent         0 20A set-token
        !           336: ' ihandle>phandle   0 20B set-token
        !           337: ' my-unit           0 20D set-token
        !           338: ' $call-method      0 20E set-token
        !           339: ' $open-package     0 20F set-token
        !           340: ' (is-user-word)    0 214 set-token
        !           341: ' suspend-fcode     0 215 set-token
        !           342: \ ' abort             0 216 set-token
        !           343: ' fc-abort             0 216 set-token
        !           344: ' catch             0 217 set-token
        !           345: ' throw             0 218 set-token
        !           346: ' get-my-property   0 21A set-token
        !           347: ' decode-int        0 21B set-token
        !           348: ' decode-string     0 21C set-token
        !           349: ' get-inherited-property 0 21D set-token  
        !           350: ' delete-property   0 21E set-token  
        !           351: ' get-package-property 0 21F set-token
        !           352: ' cpeek             0 220 set-token 
        !           353: ' wpeek             0 221 set-token 
        !           354: ' lpeek             0 222 set-token 
        !           355: ' cpoke             0 223 set-token 
        !           356: ' wpoke             0 224 set-token 
        !           357: ' lpoke             0 225 set-token 
        !           358: ' lwflip            0 226 set-token 
        !           359: ' lbflip            0 227 set-token 
        !           360: ' lbflips           0 228 set-token
        !           361: ' rx@               0 22E set-token
        !           362: ' rx!               0 22F set-token
        !           363: ' rb@               0 230 set-token
        !           364: ' rb!               0 231 set-token
        !           365: ' rw@               0 232 set-token 
        !           366: ' rw!               0 233 set-token 
        !           367: ' rl@               0 234 set-token 
        !           368: ' rl!               0 235 set-token 
        !           369: ' wbflips           0 236 set-token 
        !           370: ' lwflips           0 237 set-token 
        !           371: \ ' probe           0 238 set-token
        !           372: \ ' probe-virtual   0 239 set-token
        !           373: \                   0 23A reserved
        !           374: ' child             0 23B set-token
        !           375: ' peer              0 23C set-token
        !           376: ' next-property     0 23D set-token
        !           377: ' byte-load         0 23E set-token
        !           378: ' set-args          0 23F set-token
        !           379: ' left-parse-string 0 240 set-token
        !           380: ' bxjoin            0 241 set-token
        !           381: ' <l@               0 242 set-token
        !           382: ' lxjoin            0 243 set-token
        !           383: ' wxjoin            0 244 set-token
        !           384: ' x,                0 245 set-token
        !           385: ' x@                0 246 set-token
        !           386: ' x!                0 247 set-token
        !           387: ' /x                0 248 set-token
        !           388: ' /x*               0 249 set-token
        !           389: ' xa+               0 24A set-token
        !           390: ' xa1+              0 24B set-token
        !           391: ' xbflip            0 24C set-token
        !           392: ' xbflips           0 24D set-token
        !           393: ' xbsplit           0 24E set-token
        !           394: ' xlflip            0 24F set-token
        !           395: ' xlflips           0 250 set-token
        !           396: ' xlsplit           0 251 set-token
        !           397: ' xwflip            0 252 set-token
        !           398: ' xwflips           0 253 set-token
        !           399: ' xwsplit           0 254 set-token
        !           400: \                    0 254 RESERVED FCODES 
        !           401: \                    ...
        !           402: \                    0 5FF RESERVED FCODES 
        !           403: 
        !           404: \                    0 600 VENDOR FCODES 
        !           405: \                    ...
        !           406: \                    0 7FF VENDOR FCODES 
        !           407: 
        !           408: \                    0 800 LOCAL FCODES 
        !           409: \                    ...
        !           410: \                    0 FFF LOCAL FCODES 
        !           411: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.