LOAD TEX.ASM BLOAD TEX.ASM,A$1800 !L 1 ORG $7200 2 OBJ $0800 3 ; 4 ;------->>> MOD9 5 ; 6 NLS 7 JMP START 8 JMP MORE 9 JMP PRO/SC 10 ER/RET HEX 00 11 HEX 00 12 NAME DFS $20 13 DS\BUF EQU $9200 14 ; DATA BUFFER 15 IS\BUF EQU $8000 16 ; INDEX BUFFER 17 PG\BUF EQU $8200 18 ; PAGE BUFFER 19 ; 20 RL/SCN EQU $E21 21 PRMON EQU $FDED 22 RWTS/R EQU $3D9 23 CON EQU $B7E8 24 BLMOVE EQU $FE2C 25 RESTR EQU $1E55 26 ; 27 ZDIR EPZ $1C 28 ZPAG/B EPZ $1A 29 ZPAG/F EPZ $18 30 Z3C EPZ $3C 31 Z3E EPZ $3E 32 Z42 EPZ $42 33 ; 34 CAT/TR HEX 00 35 SV/CON HEX 00 36 TYPE HEX 00 37 SEC\PT HEX 00 38 SEC\X HEX 00 39 LENG HEX 00 40 HI/BIT HEX 00 41 LO/BIT HEX 00 42 REM HEX 00 43 AM/FLG HEX 00 44 LEN1 HEX 00 45 LEN2 HEX 00 46 LEN3 HEX 00 47 YLIM HEX 00 48 ; 49 ERROR LDA #$80 50 STA ER/RET 51 RTS 52 ; 53 ; 54 START LDA #PG\BUF 55 STA ZPAG/F 56 LDA /PG\BUF 57 STA ZPAG/F+1 58 JSR ST/DOS 59 LDA CON+2 60 STA SV/CON 61 LDA CON+1 62 CMP #$30 63 BEQ DOS3.3 64 JSR PRO? 65 BNE DOS3.3 66 JMP PRODOS 67 ; 68 DOS3.3 LDA SV/CON 69 STA CON+2 70 LDY #$11 71 LDA #$00 72 JSR DOS/IS 73 BNE ERROR 74 DIR/3X LDY IS\BUF+1 75 BEQ ERROR 76 LDA IS\BUF+2 77 JSR DOS/IS 78 JSR SR/CAT 79 BNE DIR/3X 80 ; 81 FD/CAT LDY #$02 82 LDA (ZDIR),Y 83 AND #$7F 84 STA TYPE 85 AND #$7B 86 BNE ERROR 87 DEY 88 DEY 89 LDA (ZDIR),Y 90 STA CAT/TR 91 INY 92 LDA (ZDIR),Y 93 NEWIND LDY CAT/TR 94 JSR DOS/IS 95 LDA #$0A 96 STA SEC\PT 97 NEWSEC JSR F2B 98 LDY SEC\PT 99 INY 100 INY 101 STY SEC\PT 102 BNE NEWS2 103 LDA IS\BUF+1 104 BEQ GONEX 105 STA CAT/TR 106 LDA IS\BUF+2 107 JMP NEWIND 108 NEWS2 LDA IS\BUF,Y 109 BEQ GONEX 110 STA CAT/TR 111 LDA IS\BUF+1,Y 112 LDY CAT/TR 113 JSR DOS/DS 114 JSR BINFIX 115 LDY #$00 116 MV/LP LDA DS\BUF,Y 117 AND #$7F 118 STA (ZPAG/B),Y 119 INY 120 BNE MV/LP 121 LDA ZPAG/B 122 STA ZPAG/F 123 LDX ZPAG/B+1 124 INX 125 STX ZPAG/F+1 126 LDY #$00 127 LK0/LP LDA (ZPAG/B),Y 128 CMP #$19 129 BEQ FNDBRK 130 INY 131 BNE LK0/LP 132 LDY #$00 133 LKX/LP LDA (ZPAG/B),Y 134 BEQ GONE 135 INY 136 BNE LKX/LP 137 CPX /PG\BUF+$D00 138 BCC NEWSEC 139 LK/COM LDY #$00 140 LK1/LP LDA (ZPAG/B),Y 141 CMP #$0D 142 BEQ BRK/CR 143 INY 144 BNE LK1/LP 145 LK2/LP LDA (ZPAG/B),Y 146 CMP #$20 147 BEQ FNDBRK 148 INY 149 BNE LK2/LP 150 FNDBRK SEC 151 JSR SET/Z2 152 LDA #$40 153 STA ER/RET 154 RTS 155 ; 156 BRK/CR JSR SET/ZP 157 LDA #$40 158 STA ER/RET 159 RTS 160 ; 161 GONE JSR SET/ZP 162 GONEX LDA #$00 163 STA ER/RET 164 RTS 165 ; 166 ; 167 MORE LDA #PG\BUF 168 STA Z42 169 LDA /PG\BUF 170 STA Z42+1 171 LDA ZPAG/B 172 STA Z3C 173 LDA ZPAG/B+1 174 STA Z3C+1 175 LDA ZPAG/F 176 STA Z3E 177 LDA ZPAG/F+1 178 STA Z3E+1 179 SEC 180 LDA Z3E 181 SBC Z3C 182 STA YLIM 183 LDY #$00 184 JSR BLMOVE 185 SEC 186 LDA Z42 187 SBC #$01 188 STA ZPAG/F 189 LDA Z42+1 190 SBC #$00 191 STA ZPAG/F+1 192 LDA CM\FLG 193 BEQ MR/DOS 194 JMP PRO/DL 195 MR/DOS LDY #$00 196 MRD2 LDA PG\BUF,Y 197 CMP #$19 198 BEQ MR/SP 199 INY 200 CPY YLIM 201 BNE MRD2 202 LDY #$00 203 MRD3 LDA PG\BUF,Y 204 BEQ GONEZ 205 INY 206 CPY YLIM 207 BNE MRD3 208 JMP NEWSEC 209 MR/SP INY 210 TYA 211 STA ZPAG/B 212 LDA /PG\BUF 213 STA ZPAG/B+1 214 LDA #$40 215 STA ER/RET 216 RTS 217 GONEZ STY ZPAG/B 218 LDA /PG\BUF 219 STA ZPAG/B+1 220 LDA #$00 221 STA ER/RET 222 RTS 223 ; 224 ; 225 PRO/SC JSR PRO? 226 BEQ PRO/GO 227 SC3.3 JMP RL/SCN 228 PRO/GO LDA #$2B 229 STA ZDIR 230 LDA /IS\BUF 231 STA ZDIR+1 232 LDA #PG\BUF 233 STA ZPAG/B 234 LDA /PG\BUF 235 STA ZPAG/B+1 236 LDA #$FF 237 STA PG\BUF 238 GO/LP1 JSR SC/DE 239 CLC 240 LDA ZDIR 241 ADC #$27 242 STA ZDIR 243 BCC HJ1 244 INC ZDIR+1 245 HJ1 LDA ZDIR+1 246 CMP /IS\BUF+$200 247 BNE GO/LP1 248 LDX IS\BUF+3 249 LDA IS\BUF+2 250 BEQ GO/DN 251 JSR PRO/IS 252 LDA #$04 253 STA ZDIR 254 LDA /IS\BUF 255 STA ZDIR+1 256 JMP GO/LP1 257 GO/DN RTS 258 ; 259 SC/DE LDY #$10 260 LDA (ZDIR),Y 261 CMP #$04 262 BNE SC/DX 263 LDY #$00 264 LDA (ZDIR),Y 265 PHA 266 AND #$0F 267 STA LENG 268 PLA 269 AND #$F0 270 CMP #$10 271 BEQ SC/DE1 272 CMP #$20 273 BEQ SC/DE1 274 SC/DX RTS 275 ; 276 SC/DE1 LDX RESTR 277 BEQ SC/OK 278 LDY LENG 279 LDA (ZDIR),Y 280 AND #$7F 281 CMP RESTR 282 BEQ SC/OK 283 RTS 284 ; 285 SC/OK LDY LENG 286 OK2 LDA (ZDIR),Y 287 AND #$7F 288 DEY 289 STA (ZPAG/B),Y 290 CPY #$00 291 BNE OK2 292 LDY LENG 293 LDA #$FF 294 STA (ZPAG/B),Y 295 INY 296 STA (ZPAG/B),Y 297 TYA 298 CLC 299 ADC ZPAG/B 300 STA ZPAG/B 301 BCC OK3 302 INC ZPAG/B+1 303 OK3 RTS 304 ; 305 PRO? LDX #$80 306 JSR PRO?? 307 BEQ PRO0 308 LDX #$00 309 PRO?? STX AM/FLG 310 LDX #$00 311 LDA #$02 312 JSR PRO/IS 313 LDA IS\BUF+$23 314 CMP #$27 315 BNE PRO0 316 LDA IS\BUF+$24 317 CMP #$0D 318 PRO0 RTS 319 ; 320 PRODOS JSR ST/PRO 321 LDX #$00 322 LDA #$02 323 PRO2 JSR PRO/IS 324 JSR SR/CAT 325 BEQ PRO/FD 326 LDA #$04 327 STA CM\OFF 328 LDX IS\BUF+3 329 LDA IS\BUF+2 330 BNE PRO2 331 LDA #$80 332 STA ER/RET 333 RTS 334 ; 335 PRO/FD JSR F2B 336 LDY #$15 337 LDA (ZDIR),Y 338 STA LEN1 339 INY 340 LDA (ZDIR),Y 341 STA LEN2 342 INY 343 LDA (ZDIR),Y 344 STA LEN3 345 LDY #$00 346 LDA (ZDIR),Y 347 AND #$F0 348 CMP #$10 349 BEQ SAPLIN 350 LDY #$12 351 LDA (ZDIR),Y 352 TAX 353 DEY 354 LDA (ZDIR),Y 355 JSR PRO/IS 356 LDY #$FF 357 STY SEC\PT 358 PRO/DL JSR F2B 359 LDY SEC\PT 360 INY 361 STY SEC\PT 362 LDA IS\BUF,Y 363 BNE DL2 364 LDX IS\BUF+$100,Y 365 BEQ GONEY 366 DL2 LDX IS\BUF+$100,Y 367 SAP/PC JSR PRO/DS 368 JSR HIBIT0 369 LDA #DS\BUF 370 STA Z3C 371 LDA /DS\BUF 372 STA Z3C+1 373 LDA #DS\BUF+$200 374 STA Z3E 375 LDA /DS\BUF+$200 376 STA Z3E+1 377 LDA ZPAG/B 378 STA Z42 379 LDA ZPAG/B+1 380 STA Z42+1 381 LDY #$00 382 JSR BLMOVE 383 JSR CK/LEN 384 BEQ GONEY 385 LDA ZPAG/B 386 STA ZPAG/F 387 LDX ZPAG/B+1 388 INX 389 STX ZPAG/B+1 390 INX 391 STX ZPAG/F+1 392 CPX /PG\BUF+$D00 393 BCC PRO/DL 394 JMP LK/COM 395 ; 396 ; 397 ; 398 ; 399 ; 400 GONEY LDA #$00 401 STA ER/RET 402 RTS 403 ; 404 SAPLIN LDY #$12 405 LDA (ZDIR),Y 406 TAX 407 DEY 408 LDA (ZDIR),Y 409 JMP SAP/PC 410 ; 411 CK/LEN SEC 412 LDA LEN2 413 SBC #$02 414 STA LEN2 415 LDA LEN3 416 SBC #$00 417 STA LEN3 418 BPL CK/OK 419 CLC 420 LDA LEN2 421 ADC #$02 422 STA LEN2 423 CLC 424 LDA ZPAG/B 425 ADC LEN1 426 STA ZPAG/B 427 LDA ZPAG/B+1 428 ADC LEN2 429 STA ZPAG/B+1 430 LDX #$00 431 RTS 432 CK/OK LDX #$80 433 RTS 434 ; 435 ; 436 SEC/T1 HEX 000D0B0907050301 437 SEC/T2 HEX 0E0C0A080604020F 438 ; 439 PA/DOS HEX 0B0320238100 440 PA/PRO HEX 2B010F278280 441 ; 442 CM\OFF HEX 0B 443 CM\SRT HEX 03 444 CM\FIN HEX 21 445 CM\INC HEX 23 446 CM\SEF HEX 81 447 CM\FLG HEX 00 448 ; 449 SR/CAT LDA CM\OFF 450 STA ZDIR 451 LDA /IS\BUF 452 STA ZDIR+1 453 SR/ENT LDX #$00 454 ; 455 LDY CM\FLG 456 BEQ SR7 457 LDY #$10 458 LDA (ZDIR),Y 459 CMP #$04 460 BNE NX/ENT 461 LDY #$00 462 LDA (ZDIR),Y 463 PHA 464 AND #$0F 465 STA CM\FIN 466 PLA 467 AND #$F0 468 CMP #$10 469 BEQ ENT/CM 470 CMP #$20 471 BEQ ENT/CM 472 BNE NX/ENT 473 ; 474 SR7 LDA (ZDIR),Y 475 BEQ SR/OUT 476 CMP #$FF 477 BEQ NX/ENT 478 ; 479 ENT/CM LDY CM\SRT 480 DEY 481 ENT/LP INY 482 LDA (ZDIR),Y 483 ORA #$80 484 CMP NAME,X 485 BNE NX/ENT 486 INX 487 CPY CM\FIN 488 BNE ENT/LP 489 ENT/FC CPX #$1E 490 BCS ENT/OK 491 LDA NAME,X 492 CMP #$A0 493 BNE NX/ENT 494 INX 495 BNE ENT/FC 496 ENT/OK LDX #$00 497 RTS 498 NX/ENT CLC 499 LDA ZDIR 500 ADC CM\INC 501 STA ZDIR 502 BCC NX2 503 INC ZDIR+1 504 NX2 LDA ZDIR+1 505 CMP CM\SEF 506 BNE SR/ENT 507 SR/OUT LDX #$80 508 RTS 509 ; 510 DOS/DS JSR XDS89 511 JMP DOS\2 512 ; 513 DOS/IS JSR XIS89 514 DOS\2 STA CON+5 515 STY CON+4 516 JMP RWTS 517 ; 518 PRO/DS STX HI/BIT 519 JSR XDS89 520 JMP PRO\2 521 ; 522 PRO/IS STX HI/BIT 523 JSR XIS89 524 PRO\2 LDX AM/FLG 525 BNE AM/PAT 526 PHA 527 AND #$07 528 STA SEC\X 529 ROR HI/BIT 530 PLA 531 ROR 532 LSR 533 LSR 534 STA CON+4 535 LDX SEC\X 536 LDA SEC/T1,X 537 STA CON+5 538 JSR RWTS 539 INC CON+9 540 LDX SEC\X 541 LDA SEC/T2,X 542 STA CON+5 543 JMP RWTS 544 ; 545 XDS89 LDX #DS\BUF 546 STX CON+8 547 LDX /DS\BUF 548 STX CON+9 549 RTS 550 ; 551 XIS89 LDX #IS\BUF 552 STX CON+8 553 LDX /IS\BUF 554 STX CON+9 555 RTS 556 ; 557 HIBIT0 LDY #$00 558 HI/LP LDA DS\BUF,Y 559 AND #$7F 560 STA DS\BUF,Y 561 LDA DS\BUF+$100,Y 562 AND #$7F 563 STA DS\BUF+$100,Y 564 DEY 565 BNE HI/LP 566 RTS 567 ; 568 AM/PAT STA LO/BIT 569 LDA #$00 570 STA REM 571 JSR ROT 572 JSR ROT 573 JSR ROT 574 JSR ROT 575 LSR REM 576 LSR REM 577 LSR REM 578 LDA CON+2 579 AND #$01 580 STA CON+2 581 LDA REM 582 STA CON+5 583 LDA LO/BIT 584 STA CON+4 585 CMP #$32 586 BCC FIRST 587 SBC #$32 588 STA CON+4 589 LDA CON+2 590 ORA #$02 591 STA CON+2 592 FIRST JSR RWTS 593 INC CON+9 594 INC CON+5 595 JMP RWTS 596 ROT LSR HI/BIT 597 ROR LO/BIT 598 ROR REM 599 RTS 600 SET/ZP CLC 601 SET/Z2 TYA 602 ADC ZPAG/B 603 STA ZPAG/B 604 BCC ZP2 605 INC ZPAG/B+1 606 ZP2 RTS 607 ; 608 F2B LDA ZPAG/F 609 STA ZPAG/B 610 LDA ZPAG/F+1 611 STA ZPAG/B+1 612 RTS 613 ; 614 RWTS LDY #CON 615 LDA /CON 616 LDX #$01 617 STX CON+12 618 DEX 619 STX CON+13 620 JSR RWTS/R 621 BCC RWOK 622 LDA CON+13 623 RTS 624 RWOK LDA #$00 625 RTS 626 ; 627 BINFIX LDA #$20 628 LDY TYPE 629 BEQ BIN/X 630 DEY 631 BINL STA DS\BUF,Y 632 DEY 633 BPL BINL 634 BIN/X LDY #$00 635 STY TYPE 636 RTS 637 ; 638 ST/DOS LDY #$05 639 STDL LDA PA/DOS,Y 640 STA CM\OFF,Y 641 DEY 642 BPL STDL 643 RTS 644 ; 645 ST/PRO LDY #$05 646 STPL LDA PA/PRO,Y 647 STA CM\OFF,Y 648 DEY 649 BPL STPL 650 RTS 651 XX HEX 00 652 ; 653 ; 654 END !