PAGE 01 DAI FIRMWARE CF02-D100 V1.1 002 ORG :CF02 003 * 004 * 005 * 006 ************************************** 007 * POINTERS TO ROUTINES BASICCOMMANDS * 008 ************************************** 009 * 010 * This table, with base at CF00, gives the 011 * addresses of the routines for execution of the 012 * Basic statements. 013 * The offset from baseaddress CF00 can be found 014 * by adding 2x TOKEN to the base address. 015 * Address indicates begin subroutine (ROM bank 0). 016 * 017 * The number given between brackets is the TOKEN. 018 * 019 CF02 B8DE CITAB DBL :DEB8 (81) NEW 020 CF04 D5DE DBL :DED5 (82) CONT 021 CF06 03DF DBL :DF03 (83) STOP 022 CF08 0CDF DBL :DF0C (84) END 023 CF0A 01E4 DBL :E401 (85) RESTORE 024 CF0C 4CDF DBL :DF4C (86) RETURN 025 CF0E 9EDF DBL :DF9E (87) RUN 026 CF10 BADF DBL :DFBA (88) RUN 027 CF12 63DF DBL :DF63 (89) GOTO 028 CF14 2ADF DBL :DF2A (8A) GOSUB 029 CF16 74D2 DBL :D274 (8B) LOAD 030 CF18 3DD2 DBL :D23D (8C) SAVE 031 CF1A C3D2 DBL :D2C3 (8D) CHECK 032 CF1C C9DF DBL :DFC9 (8E) OUT 033 CF1E C0DF DBL :DFC0 (8F) POKE 034 CF20 D5DF DBL :DFD5 (90) WAIT 035 CF22 F7DF DBL :DFF7 (91) WAIT MEM 036 CF24 16E0 DBL :E016 (92) WAIT TIME 037 CF26 97E1 DBL :E197 (93) LIST 038 CF28 AAE1 DBL :E1AA (94) LIST 039 CF2A B6E1 DBL :E1B6 (95) LIST 040 CF2C BCE4 DBL :E4BC (96) SOUND 041 CF2E 0CE5 DBL :E50C (97) NOISE 042 CF30 70E5 DBL :E570 (98) ENVELOPE 043 CF32 B2E5 DBL :E5B2 (99) CURSOR 044 CF34 BBE5 DBL :E5BB (9A) MODE 045 CF36 C1E5 DBL :E5C1 (9B) DOT 046 CF38 CEE5 DBL :E5CE (9C) DRAW 047 CF3A D7E5 DBL :E5D7 (9D) FILL 048 CF3C 0EE6 DBL :E60E (9E) COLORT 049 CF3E 15E6 DBL :E615 (9F) COLORG 050 CF40 02E3 DBL :E302 (A0) INPUT 051 CF42 FCE2 DBL :E2FC (A1) INPUT 052 CF44 8FE1 DBL :E18F (A2) DATA 053 CF46 23E3 DBL :E323 (A3) READ 054 CF48 5AE4 DBL :E45A (A4) LET 055 CF4A 5AE4 DBL :E45A (A5) assignment 056 CF4C 20DF DBL :DF20 (A6) IF THEN 057 CF4E 15DF DBL :DF15 (A7) IF GOTO 058 CF50 15DF DBL :DF15 (A8) IF THEN 059 CF52 8FE1 DBL :E18F (A9) REM 060 CF54 2BE0 DBL :E02B (AA) FOR .. TO 061 CF56 E5E0 DBL :E0E5 (AB) NEXT 062 CF58 C5E0 DBL :E0C5 (AC) NEXT 063 CF5A B3E2 DBL :E2B3 (AD) PRINT PAGE 02 DAI FIRMWARE CF02-D100 V1.1 064 CF5C 6ADF DBL :DF6A (AE) ON GOTO 065 CF5E 71DF DBL :DF71 (AF) ON GOSUB 066 CF60 2FE6 DBL :E62F (B0) DIM 067 CF62 33DA DBL :DA33 (B1) *** (error line run) 068 CF64 9EE6 DBL :E69E (B2) UT 069 CF66 A4E6 DBL :E6A4 (B3) CALLM 070 CF68 B5E6 DBL :E6B5 (B4) CLEAR 071 CF6A 95E1 DBL :E195 (B5) IMP 072 CF6C F5E1 DBL :E1F5 (B6) EDIT 073 CF6E 53E2 DBL :E253 (B7) EDIT 074 CF70 5CE2 DBL :E25C (B8) EDIT 075 CF72 1DD8 DBL :D81D (B9) SAVEA 076 CF74 5ED8 DBL :D85E (BA) LOADA 077 CF76 64CD DBL :CD64 (BB) TALK 078 CF78 FEDE DBL :DEFE (BC) STEP 079 CF7A CEE6 DBL :E6CE (BD) TRON 080 CF7C D5E6 DBL :E6D5 (BE) TROFF 081 * 082 ***************************** 083 * part of RUN 'ASC' (0EACF) * 084 ***************************** 085 * 086 CF7E B7 MPT51 ORA A Nulstring ? 087 CF7F CA7CEB JZ :EB7C (0) Then 0 into MACC 088 CF82 23 INX H Else: 089 CF83 C3C7EA JMP :EAC7 (0) Next byte from MEM 090 into MACC 091 * 092 ***************************************** 093 * TABLE PREFIXES FOR UNITARY OPERATIONS * 094 ***************************************** 095 * 096 * Only used by LIST for decoding. 097 * The prefix gives a code for unitary operators, 098 * which on encoding are directly determined, not 099 * looked up in a table. 100 * 101 * Format: length of name / name / 5-bit opcode 102 * 103 *OPTBB 104 CF86 01 SBRA DATA :01 105 CF87 28 DATA :28 ( 106 CF88 1A DATA :1A 107 * 108 CF89 01 DATA :01 109 CF8A 2D DATA :2D - 110 CF8B 1D DATA :1D 111 * 112 CF8C 01 DATA :01 113 CF8D 2B DATA :2B + 114 CF8E 1C DATA :1C 115 * 116 CF8F 00 DATA :00 Fixed FPT conversion 117 CF90 1F DATA :1F 118 * 119 ************************** 120 * TABLE BINARY OPERATORS * 121 ************************** 122 * 123 * Format: 1 byte: length of name. 124 * n bytes: name. 125 * 1 byte: code byte: PAGE 03 DAI FIRMWARE CF02-D100 V1.1 126 * highest 3 bits: priority. 127 * lowest 5 bits: opcode. 128 * 129 *OPTAB 130 CF91 01 SDIV DATA :01 131 CF92 2F DATA :2F / 132 CF93 C2 DATA :C2 133 * 134 CF94 01 DATA :01 135 CF95 2A DATA :2A * 136 CF96 C3 DATA :C3 137 * 138 CF97 03 DATA :03 139 CF98 4D DATA :4D M 140 CF99 4F DATA :4F O 141 CF9A 44 DATA :44 D 142 CF9B CF DATA :CF 143 * 144 CF9C 01 DATA :01 145 CF9D 5E DATA :5E ^ 146 CF9E E4 DATA :E4 147 * 148 CF9F 04 DATA :04 149 CFA0 49 DATA :49 I 150 CFA1 41 DATA :41 A 151 CFA2 4E DATA :4E N 152 CFA3 44 DATA :44 D 153 CFA4 69 DATA :69 154 * 155 CFA5 03 DATA :03 156 CFA6 49 DATA :49 I 157 CFA7 4F DATA :4F O 158 CFA8 52 DATA :52 R 159 CFA9 6A DATA :6A 160 * 161 CFAA 04 DATA :04 162 CFAB 49 DATA :49 I 163 CFAC 58 DATA :58 X 164 CFAD 4F DATA :4F O 165 CFAE 52 DATA :52 R 166 CFAF 6C DATA :6C 167 * 168 CFB0 03 DATA :03 169 CFB1 53 DATA :53 S 170 CFB2 48 DATA :48 H 171 CFB3 4C DATA :4C L 172 CFB4 8D DATA :8D 173 * 174 CFB5 03 DATA :03 175 CFB6 53 DATA :53 S 176 CFB7 48 DATA :48 H 177 CFB8 52 DATA :52 R 178 CFB9 8E DATA :8E 179 * 180 CFBA 02 DATA :02 181 CFBB 3E DATA :3E > 182 CFBC 3D DATA :3D = 183 CFBD 50 DATA :50 184 * 185 CFBE 01 DATA :01 186 CFBF 3E DATA :3E > 187 CFC0 51 DATA :51 PAGE 04 DAI FIRMWARE CF02-D100 V1.1 188 * 189 CFC1 02 DATA :02 190 CFC2 3C DATA :3C < 191 CFC3 3E DATA :3E > 192 CFC4 52 DATA :52 193 * 194 CFC5 02 DATA :02 195 CFC6 3C DATA :3C < 196 CFC7 3D DATA :3D = 197 CFC8 53 DATA :53 198 * 199 CFC9 01 DATA :01 200 CFCA 3C DATA :3C < 201 CFCB 54 DATA :54 202 * 203 CFCC 01 DATA :01 204 CFCD 3D DATA :3D > 205 CFCE 55 DATA :55 206 * 207 CFCF 03 SAND DATA :03 208 CFD0 41 DATA :41 A 209 CFD1 4E DATA :4E N 210 CFD2 44 DATA :44 D 211 CFD3 38 DATA :38 212 * 213 CFD4 02 DATA :02 214 CFD5 4F DATA :4F O 215 CFD6 52 DATA :52 R 216 CFD7 39 DATA :39 217 * 218 *************************** 219 * TABLE UNITARY OPERATORS * 220 *************************** 221 * 222 * Format: 1 byte: Length of name. 223 * n bytes: Name. 224 * 1 byte: Code byte: 225 * 3 highest bits: priority. 226 * 5 lowest bits: opcode. 227 * 228 CFD8 04 OPTBM DATA :04 229 CFD9 49 DATA :49 I 230 CFDA 4E DATA :4E N 231 CFDB 4F DATA :4F O 232 CFDC 54 DATA :54 T 233 CFDD 1E DATA :1E 234 * 235 CFDE 01 DATA :01 236 CFDF 2B DATA :2B + 237 CFE0 A0 DATA :A0 238 * 239 CFE1 01 DATA :01 240 CFE2 2D DATA :2D - 241 CFE3 A1 DATA :A1 242 * 243 CFE4 00 DATA :00 End of table 244 CFE5 00 DATA :00 245 * 246 ********************************* 247 * TABLE STRINGS BASIC FUNCTIONS * 248 ********************************* 249 * PAGE 05 DAI FIRMWARE CF02-D100 V1.1 250 * Format: 1 byte: Length of name. 251 * n bytes: Name. 252 * 1 byte: High nibble: type of info. 253 * Low nibble: nr of arguments. 254 * 1 byte: High nibble: required type 255 * of variable expected: 256 * (0=FPT, 1=INT, 2=STR). 257 * 258 *FUNTB 259 CFE6 03 SABS DATA :03 260 CFE7 41 DATA :41 A 261 CFE8 42 DATA :42 B 262 CFE9 53 DATA :53 S 263 CFEA 01 DATA :01 264 CFEB 00 DATA :00 265 * 266 CFEC 04 SALOG DATA :04 267 CFED 41 DATA :41 A 268 CFEE 4C DATA :4C L 269 CFEF 4F DATA :4F O 270 CFF0 47 DATA :47 G 271 CFF1 01 DATA :01 272 CFF2 00 DATA :00 273 * 274 CFF3 03 SASC DATA :03 275 CFF4 41 DATA :41 A 276 CFF5 53 DATA :53 S 277 CFF6 43 DATA :43 C 278 CFF7 11 DATA :11 279 CFF8 20 DATA :20 280 * 281 CFF9 04 SCHR DATA :04 282 CFFA 43 DATA :43 C 283 CFFB 48 DATA :48 H 284 CFFC 52 DATA :52 R 285 CFFD 24 DATA :24 $ 286 CFFE 21 DATA :21 287 CFFF 10 DATA :10 288 * 289 D000 04 SCURX DATA :04 290 D001 43 DATA :43 C 291 D002 55 DATA :55 U 292 D003 52 DATA :52 R 293 D004 58 DATA :58 X 294 D005 10 DATA :10 295 * 296 D006 04 SCURY DATA :04 297 D007 43 DATA :43 C 298 D008 55 DATA :55 U 299 D009 52 DATA :52 R 300 D00A 59 DATA :59 Y 301 D00B 10 DATA :10 302 * 303 D00C 03 SEXP DATA :03 304 D00D 45 DATA :45 E 305 D00E 58 DATA :58 X 306 D00F 50 DATA :50 P 307 D010 01 DATA :01 308 D011 00 DATA :00 309 * 310 D012 04 SFRAC DATA :04 311 D013 46 DATA :46 F PAGE 06 DAI FIRMWARE CF02-D100 V1.1 312 D014 52 DATA :52 R 313 D015 41 DATA :41 A 314 D016 43 DATA :43 C 315 D017 01 DATA :01 316 D018 00 DATA :00 317 * 318 D019 03 SFRE DATA :03 319 D01A 46 DATA :46 F 320 D01B 52 DATA :52 R 321 D01C 45 DATA :45 E 322 D01D 10 DATA :10 323 * 324 D01E 04 SFREQ DATA :04 325 D01F 46 DATA :46 F 326 D020 52 DATA :52 R 327 D021 45 DATA :45 E 328 D022 51 DATA :51 Q 329 D023 11 DATA :11 330 D024 00 DATA :00 331 * 332 D025 04 SGETC DATA :04 333 D026 47 DATA :47 G 334 D027 45 DATA :45 E 335 D028 54 DATA :54 T 336 D029 43 DATA :43 C 337 D02A 10 DATA :10 338 * 339 D02B 04 SHEX DATA :04 340 D02C 48 DATA :48 H 341 D02D 45 DATA :45 E 342 D02E 58 DATA :58 X 343 D02F 24 DATA :24 $ 344 D030 21 DATA :21 345 D031 10 DATA :10 346 * 347 D032 03 SINP DATA :03 348 D033 49 DATA :49 I 349 D034 4E DATA :4E N 350 D035 50 DATA :50 P 351 D036 11 DATA :11 352 D037 10 DATA :10 353 * 354 D038 03 SINT DATA :03 355 D039 49 DATA :49 I 356 D03A 4E DATA :4E N 357 D03B 54 DATA :54 T 358 D03C 01 DATA :01 359 D03D 00 DATA :00 360 * 361 D03E 05 SLEFT DATA :05 362 D03F 4C DATA :4C L 363 D040 45 DATA :45 E 364 D041 46 DATA :46 F 365 D042 54 DATA :54 T 366 D043 24 DATA :24 $ 367 D044 22 DATA :22 368 D045 20 DATA :20 369 D046 10 DATA :10 370 * 371 D047 03 SLEN DATA :03 372 D048 4C DATA :4C L 373 D049 45 DATA :45 E PAGE 07 DAI FIRMWARE CF02-D100 V1.1 374 D04A 4E DATA :4E N 375 D04B 11 DATA :11 376 D04C 20 DATA :20 377 * 378 D04D 06 SVPT DATA :06 379 D04E 56 DATA :56 V 380 D04F 41 DATA :41 A 381 D050 52 DATA :52 R 382 D051 50 DATA :50 P 383 D052 54 DATA :54 T 384 D053 52 DATA :52 R 385 D054 11 DATA :11 386 D055 30 DATA :30 387 * 388 D056 03 SLOG DATA :03 389 D057 4C DATA :4C L 390 D058 4F DATA :4F O 391 D059 47 DATA :47 G 392 D05A 01 DATA :01 393 D05B 00 DATA :00 394 * 395 D05C 04 SLOGT DATA :04 396 D05D 4C DATA :4C L 397 D05E 4F DATA :4F O 398 D05F 47 DATA :47 G 399 D060 54 DATA :54 T 400 D061 01 DATA :01 401 D062 00 DATA :00 402 * 403 D063 04 SXMAX DATA :04 404 D064 58 DATA :58 X 405 D065 4D DATA :4D M 406 D066 41 DATA :41 A 407 D067 58 DATA :58 X 408 D068 10 DATA :10 409 * 410 D069 04 SYMAX DATA :04 411 D06A 59 DATA :59 Y 412 D06B 4D DATA :4D M 413 D06C 41 DATA :41 A 414 D06D 58 DATA :58 X 415 D06E 10 DATA :10 416 * 417 D06F 04 SMID DATA :04 418 D070 4D DATA :4D M 419 D071 49 DATA :49 I 420 D072 44 DATA :44 D 421 D073 24 DATA :24 $ 422 D074 23 DATA :23 423 D075 20 DATA :20 424 D076 10 DATA :10 425 D077 10 DATA :10 426 * 427 D078 03 SPDL DATA :03 428 D079 50 DATA :50 P 429 D07A 44 DATA :44 D 430 D07B 4C DATA :4C L 431 D07C 11 DATA :11 432 D07D 10 DATA :10 433 * 434 D07E 04 SPEEK DATA :04 435 D07F 50 DATA :50 P PAGE 08 DAI FIRMWARE CF02-D100 V1.1 436 D080 45 DATA :45 E 437 D081 45 DATA :45 E 438 D082 4B DATA :4B K 439 D083 11 DATA :11 440 D084 10 DATA :10 441 * 442 D085 02 SPI DATA :02 443 D086 50 DATA :50 P 444 D087 49 DATA :49 I 445 D088 00 DATA :00 446 * 447 D089 06 SRIGHT DATA :06 448 D08A 52 DATA :52 R 449 D08B 49 DATA :49 I 450 D08C 47 DATA :47 G 451 D08D 48 DATA :48 H 452 D08E 54 DATA :54 T 453 D08F 24 DATA :24 $ 454 D090 22 DATA :22 455 D091 20 DATA :20 456 D092 10 DATA :10 457 * 458 D093 03 SRND DATA :03 459 D094 52 DATA :52 R 460 D095 4E DATA :4E N 461 D096 44 DATA :44 D 462 D097 01 DATA :01 463 D098 00 DATA :00 464 * 465 D099 04 SSCRN DATA :04 466 D09A 53 DATA :53 S 467 D09B 43 DATA :43 C 468 D09C 52 DATA :52 R 469 D09D 4E DATA :4E N 470 D09E 12 DATA :12 471 D09F 10 DATA :10 472 D0A0 10 DATA :10 473 * 474 D0A1 03 SSGN DATA :03 475 D0A2 53 DATA :53 S 476 D0A3 47 DATA :47 G 477 D0A4 4E DATA :4E N 478 D0A5 01 DATA :01 479 D0A6 00 DATA :00 480 * 481 D0A7 03 SSPC DATA :03 482 D0A8 53 DATA :53 S 483 D0A9 50 DATA :50 P 484 D0AA 43 DATA :43 C 485 D0AB 21 DATA :21 486 D0AC 10 DATA :10 487 * 488 D0AD 03 SSQR DATA :03 489 D0AE 53 DATA :53 S 490 D0AF 51 DATA :51 Q 491 D0B0 52 DATA :52 R 492 D0B1 01 DATA :01 493 D0B2 00 DATA :00 494 * 495 D0B3 04 SSTR DATA :04 496 D0B4 53 DATA :53 S 497 D0B5 54 DATA :54 T PAGE 09 DAI FIRMWARE CF02-D100 V1.1 498 D0B6 52 DATA :52 R 499 D0B7 24 DATA :24 $ 500 D0B8 21 DATA :21 501 D0B9 00 DATA :00 502 * 503 D0BA 03 STAB DATA :03 504 D0BB 54 DATA :54 T 505 D0BC 41 DATA :41 A 506 D0BD 42 DATA :42 B 507 D0BE 21 DATA :21 508 D0BF 10 DATA :10 509 * 510 D0C0 03 SVAL DATA :03 511 D0C1 56 DATA :56 V 512 D0C2 41 DATA :41 A 513 D0C3 4C DATA :4C L 514 D0C4 01 DATA :01 515 D0C5 20 DATA :20 516 * 517 D0C6 03 SSIN DATA :03 518 D0C7 53 DATA :53 S 519 D0C8 49 DATA :49 I 520 D0C9 4E DATA :4E N 521 D0CA 01 DATA :01 522 D0CB 00 DATA :00 523 * 524 D0CC 03 SCOS DATA :03 525 D0CD 43 DATA :43 C 526 D0CE 4F DATA :4F O 527 D0CF 53 DATA :53 S 528 D0D0 01 DATA :01 529 D0D1 00 DATA :00 530 * 531 D0D2 03 STAN DATA :03 532 D0D3 54 DATA :54 T 533 D0D4 41 DATA :41 A 534 D0D5 4E DATA :4E N 535 D0D6 01 DATA :01 536 D0D7 00 DATA :00 537 * 538 D0D8 04 SASIN DATA :04 539 D0D9 41 DATA :41 A 540 D0DA 53 DATA :53 S 541 D0DB 49 DATA :49 I 542 D0DC 4E DATA :4E N 543 D0DD 01 DATA :01 544 D0DE 00 DATA :00 545 * 546 D0DF 04 SACOS DATA :04 547 D0E0 41 DATA :41 A 548 D0E1 43 DATA :43 C 549 D0E2 4F DATA :4F O 550 D0E3 53 DATA :53 S 551 D0E4 01 DATA :01 552 D0E5 00 DATA :00 553 * 554 D0E6 03 SATN DATA :03 555 D0E7 41 DATA :41 A 556 D0E8 54 DATA :54 T 557 D0E9 4E DATA :4E N 558 D0EA 01 DATA :01 559 D0EB 00 DATA :00 PAGE 10 DAI FIRMWARE CF02-D100 V1.1 560 * 561 D0EC 00 DATA :00 End of table 562 * 563 ******** 564 * DATA * 565 ******** 566 * 567 *ENDFT 568 D0ED 15 FPOSC DATA :15 Sound constant 569 D0EE F4 DATA :F4 570 D0EF 24 DATA :24 571 D0F0 00 DATA :00 572 * 573 D0F1 81 FPM1 DATA :81 FPT (-1) 574 D0F2 80 DATA :80 575 D0F3 00 DATA :00 576 D0F4 00 DATA :00 577 * 578 D0F5 02 FPPI DATA :02 FPT (PI) 579 D0F6 C9 DATA :C9 580 D0F7 0F DATA :0F 581 D0F8 DB DATA :DB 582 * 583 D0F9 00 I4 DATA :00 INT (4) (not used) 584 D0FA 00 DATA :00 585 D0FB 00 DATA :00 586 D0FC 04 DATA :04 587 * 588 D0FD 00 IRAND DATA :00 AND mask 589 D0FE FF DATA :FF 590 D0FF FF DATA :FF 591 D100 FF DATA :FF 592 * 593 * 594 * 601 D101 END *************************** * S Y M B O L T A B L E * *************************** CITAB CF02 ENDFT D0ED FPM1 D0F1 FPOSC D0ED FPPI D0F5 FUNTB CFE6 I4 D0F9 IRAND D0FD MPT51 CF7E OPTAB CF91 OPTBB CF86 OPTBM CFD8 SABS CFE6 SACOS D0DF SALOG CFEC SAND CFCF SASC CFF3 SASIN D0D8 SATN D0E6 SBRA CF86 SCHR CFF9 SCOS D0CC SCURX D000 SCURY D006 SDIV CF91 SEXP D00C SFRAC D012 SFRE D019 SFREQ D01E SGETC D025 SHEX D02B SINP D032 SINT D038 SLEFT D03E SLEN D047 SLOG D056 SLOGT D05C SMID D06F SPDL D078 SPEEK D07E SPI D085 SRIGHT D089 SRND D093 SSCRN D099 SSGN D0A1 SSIN D0C6 SSPC D0A7 SSQR D0AD SSTR D0B3 STAB D0BA STAN D0D2 SVAL D0C0 SVPT D04D SXMAX D063 SYMAX D069