home *** CD-ROM | disk | FTP | other *** search
- 1 STA $53
- 3 INY
- 5 LDA ($2E),Y
- 7 STA $54
- 9 INY
- 11 LDA ($2E),Y
- 13 STA $55
- 15 INY
- 17 STY $36
- 19 JSR $F6D0; CONVERT 4 HEX TO 5 GCR
- 21 LDY $36
- 23 LDA ($2E),Y
- 25 STA $52
- 27 INY
- 29 BEQ $F7D9
- 31 LDA ($2E),Y
- 33 STA $53
- 35 INY
- 37 LDA ($2E),Y
- 39 STA $54
- 41 INY
- 43 LDA ($2E),Y
- 45 STA $55
- 47 INY
- 49 BNE $F7BA
- 51 LDA $3A
- 53 STA $53
- 55 LDA #$00
- 57 STA $54
- 59 STA $55
- 61 JMP $F6D0; CONVERT 4 HEX TO 5 GCR
- 63 LDY $34
- 65 LDA ($30),Y
- 67 AND #$F8
- 69 LSR
- 71 LSR
- 73 LSR
- 75 STA $56
- 77 LDA ($30),Y
- 79 AND #$07
- 81 ASL
- 83 ASL
- 85 STA $57
- 87 INY
- 89 BNE $F802; DONT CHANGE TO DATA BUFF
- 91 LDA $4E
- 93 STA $31
- 95 LDY $4F
- 97 LDA ($30),Y
- 99 AND #$C0
- 101 ROL
- 103 ROL
- 105 ROL
- 107 ORA $57
- 109 STA $57
- 111 LDA ($30),Y
- 113 AND #$3E
- 115 LSR
- 117 STA $58
- 119 LDA ($30),Y
- 121 AND #$01
- 123 ASL
- 125 ASL
- 127 ASL
- 129 ASL
- 131 STA $59
- 133 INY
- 135 LDA ($30),Y
- 137 AND #$F0
- 139 LSR
- 141 LSR
- 143 LSR
- 145 LSR
- 147 ORA $59
- 149 STA $59
- 151 LDA ($30),Y
- 153 AND #$F0
- 155 ASL
- 157 STA $5A
- 159 INY
- 161 LDA ($30),Y
- 163 AND #$80
- 165 CLC
- 167 ROL
- 169 ROL
- 171 AND #$01
- 173 ORA $5A
- 175 STA $5A
- 177 LDA ($30),Y
- 179 AND #$7C
- 181 LSR
- 183 LSR
- 185 STA $5B
- 187 LDA ($30),Y
- 189 AND #$03
- 191 ASL
- 193 ASL
- 195 ASL
- 197 STA $5C
- 199 INY
- 201 BNE $F85A
- 203 LDA $4E
- 205 STA $31
- 207 LDY $4F
- 209 LDA ($30),Y
- 211 AND #$E0
- 213 ROL
- 215 ROL
- 217 ROL
- 219 ROL
- 221 ORA $5C
- 223 STA $5C
- 225 LDA ($30),Y
- 227 AND #$1F
- 229 STA $5D
- 231 INY
- 233 STY $34
- 235 LDX $56
- 237 LDA $F8A0,X
- 239 LDX $57
- 241 ORA $F8C0,X
- 243 STA $52
- 245 LDX $58
- 247 LDA $F8A0,X
- 249 LDX $59
- 251 ORA $F8C0,X
- 253 STA $53
- 255 LDX $5A
- 257 LDA $F8A0,X
- 259 LDX $5B
- 261 ORA $F8C0,X
- 263 STA $54
- 265 LDX $5C
- 267 LDA $F8A0,X
- 269 LDX $5D
- 271 ORA $F8C0,X
- 273 STA $55
- 275 RTS
- 277 ; ** 5 BYTE GCR TO HEX TABLES **
- 279 ; $F8A0 5 BIT GCR BYTE HIGH NIBBLE
- 281 ; 00 00000 FF 11111111
- 283 ; 01 00001 FF 11111111
- 285 ; 02 00010 FF 11111111
- 287 ; 03 00011 FF 11111111
- 289 ; 04 00100 FF 11111111
- 291 ; 05 00101 FF 11111111
- 293 ; 06 00110 FF 11111111
- 295 ; 07 00111 FF 11111111
- 297 ; 08 01000 FF 11111111
- 299 ; 09 01001 80 10000000
- 301 ; 0A 01010 00 00000000
- 303 ; 0B 01011 10 00010000
- 305 ; 0C 01100 FF 11111111
- 307 ; 0D 01101 C0 11000000
- 309 ; 0E 01110 40 01000000
- 311 ; 0F 01111 50 01010000
- 313 ; 10 10000 FF 11111111
- 315 ; 11 10001 FF 11111111
- 317 ; 12 10010 20 00100000
- 319 ; 13 10011 30 00110000
- 321 ; 14 10100 FF 11111111
- 323 ; 15 10101 F0 11110000
- 325 ; 16 10110 60 01100000
- 327 ; 17 10111 70 01110000
- 329 ; 18 11000 FF 11111111
- 331 ; 19 11001 90 10010000
- 333 ; 1A 11010 A0 10100000
- 335 ; 1B 11011 B0 10110000
- 337 ; 1C 11100 FF 11111111
- 339 ; 1D 11101 D0 11010000
- 341 ; 1E 11110 E0 11100000
- 343 ; 1F 11111 FF 11111111
- 345 ; $F8C0 5 BIT GCR BYTE LOW NIBBLE
- 347 ; 00 00000 FF 11111111
- 349 ; 01 00001 FF 11111111
- 351 ; 02 00010 FF 11111111
- 353 ; 03 00011 FF 11111111
- 355 ; 04 00100 FF 11111111
- 357 ; 05 00101 FF 11111111
- 359 ; 06 00110 FF 11111111
- 361 ; 07 00111 FF 11111111
- 363 ; 08 01000 FF 11111111
- 365 ; 09 01001 08 00001000
- 367 ; 0A 01010 00 00000000
- 369 ; 0B 01011 01 00000001
- 371 ; 0C 01100 FF 11111111
- 373 ; 0D 01101 0C 00001100
- 375 ; 0E 01110 04 00000100
- 377 ; 0F 01111 05 00000101
- 379 ; 10 10000 FF 11111111
- 381 ; 11 10001 FF 11111111
- 383 ; 12 10010 02 00000010
- 385 ; 13 10011 03 00000011
- 387 ; 14 10100 FF 11111111
- 389 ; 15 10101 0F 00001111
- 391 ; 16 10110 06 00000110
- 393 ; 17 10111 07 00000111
- 395 ; 18 11000 FF 11111111
- 397 ; 19 11001 09 00001001
- 399 ; 1A 11010 0A 00001010
- 401 ; 1B 11011 0B 00001011
- 403 ; 1C 11100 FF 11111111
- 405 ; 1D 11101 0D 00001101
- 407 ; 1E 11110 0E 00001110
- 409 ; 1F 11111 FF 11111111
- 411 ; *** #$FF = ERROR ***
- 413 *= $F8E0
- 415 ; ** DECODE GCR DATA IMAGE ($01BB) **
- 417 LDA #$00
- 419 STA $34; LO BYTE PTR
- 421 STA $2F; " " "
- 423 STA $36; " " "
- 425 LDA #$01; HI BYTE PTR
- 427 STA $4E
- 429 LDA #$BA
- 431 STA $4F
- 433 LDA $31
- 435 STA $2F
- 437 JSR $F7E6; CONVERT 5 BYTES GCR TO HEX
- 439 LDA $52; HEADER BLK ID
- 441 STA $38
- 443 LDY $36
- 445 LDA $53; HEADER BLK CHECKSUM
- 447 STA ($2E),Y
- 449 INY
- 451 LDA $54; SECT NUM
- 453 STA ($2E),Y
- 455 INY
- 457 LDA $55; TRK NUM
- 459 STA ($2E),Y
- 461 INY
- 463 STY $36
- 465 JSR $F7E6; CONVERT NEXT 5 BYTES
- 467 LDY $36
- 469 LDA $52; ID # 2
- 471 STA ($2E),Y
- 473 INY
- 475 BEQ $F92B; CHECK IF OVERFLOW DONE
- 477 LDA $53; ID # 1
- 479 STA ($2E),Y
- 481 INY
- 483 LDA $54; PAD BYTE #$0F
- 485 STA ($2E),Y
- 487 INY
- 489 LDA $55; PAD BYTE
- 491 STA ($2E),Y
- 493 INY
- 495 BNE $F90C; GET MORE
- 497 LDA $53; HEADER BLK CHECKSUM
- 499 STA $3A; CHECKSUM BUFF
- 501 LDA $2F; BUFF PTR
- 503 STA $31
- 505 RTS
- 507 ; ** CONVERT HEX HEADER TO GCR FOR WRITE **
- 509 LDA $31; BUFF PTR
- 511 STA $2F; TEMP STORAGE PTRS
- 513 LDA #$00
- 515 STA $31; HY BYTE ACTIVE BUFF
- 517 LDA #$24
- 519 STA $34; LAST BYTE CONVERTED PTR
- 521 LDA $39; HEADER BLK ID BUFF
- 523 STA $52; GCR CONVERSION BUFF
- 525 LDA $1A; HEADER BLK CHECKSUM
- 527 STA $53
- 529 LDA $19; HEADER SECT NUM
- 531 STA $54
- 533 LDA $18; HEADER TRK NUM
- 535 STA $55
- 537 JSR $F6D0; CONVERT HEADER TO GCR
- 539 LDA $17; HEADER ID # 2
- 541 STA $52
- 543 LDA $16; HEADER ID # 1
- 545 STA $53
- 547 LDA #$00; PAD BYTE CONVERTED TO #$0F
- 549 STA $54
- 551 STA $55
- 553 JSR $F6D0
- 555 LDA $2F; RESTORE BUFFS
- 557 STA $31
- 559 RTS
- 561 ; ** DSK CONTROLLER ERROR HANDLER **
- 563 LDY $3F; ERROR CODE BUFF
- 565 STA $0000,Y; CMND BUFF
- 567 LDA $50; GCR FLAG (MORE TO DO)
- 569 BEQ $F975; NO GCR
- 571 JSR $F5F2; CONVERT GCR TO HEX
- 573 JSR $F98F; START TIMER OUT TURN OFF MOTOR
- 575 LDX $49; TEMP FOR STACK PTR
- 577 TXS; RESET THE STACK
- 579 JMP $F2BE; LOOK FOR CMNDS @ $00,Y
- 581 ; ** TURN DSK MOTOR ON **
- 583 LDA #$A0; DRV ON NOT UP TO SPEED
- 585 STA $20; DRV STATUS BUFF
- 587 LDA $1C00; DSK CONTROLLER
- 589 ORA #$04; 00000100
- 591 STA $1C00; MOTOT ON
- 593 LDA #$3C; 1 1/2 SECONDS
- 595 STA $48; TIMER FOR MOTOR SPEED
- 597 RTS
- 599 ; ** TURN DSK MOTOR OFF **
- 601 LDX $3E; DRV NUM ALWAYS 0
- 603 LDA $20; DSK STATUS BUFF
- 605 ORA #$10; 00010000
- 607 STA $20; MOTOR OFF
- 609 LDA #$FF; 6.4 SECONDS
- 611 STA $48; TIMER FOR MOTOR SPEED
- 613 RTS
- 615 ; ** DRV MOTOR & HEAD STEPPER ROUTS **
- 617 LDA $1C07; TIMER # 1 HIGH LATCH
- 619 STA $1C05; TIMER # 1 HIGH COUNT
- 621 LDA $1C00; DSK CONTROLLER
- 623 AND #$10
- 625 CMP $1E; LAST STATE WRITE PROTECT
- 627 STA $1E
- 629 BEQ $F9B1; WRITE PROTECT SAME
- 631 LDA #$01; CHANGE IN WRITE PROTECT
- 633 STA $1C; WRITE PROTECT STATUS FLAG
- 635 LDA $02FE; PHASE HEAD STEPPER
- 637 BEQ $F9CB; 0 OR 2 IN PHASE 1 = OUT (IN BETWEEN TRKS 1/2 TRK)
- 639 CMP #$02
- 641 BNE $F9C1; MOVE HEAD 1/2 TRK
- 643 LDA #$00
- 645 STA $02FE:BEQ $F9CB;FORCED BRANCH
- 647 STA $4A:LDA #$02:STA $02FE:JMP $FA2E; STEP HEAD IN
- 649 LDX $3E; ACTIVE DRV ALWAYS 0
- 651 BMI $F9D6; BRANCH IF DRV NOT ACTIVE
- 653 LDA $20; DRV STATUS BUFF
- 655 TAY
- 657 CMP #$20:BNE $F9D9
- 659 JMP $FABE; END OF IRQ
- 661 DEC $48; ACCELERATION TIMER
- 663 BNE $F9FA; DRV NOT UP TO SPEED
- 665 TYA; HOLDS DRV STATUS BUFF
- 667 BPL $F9E4; BIT 7 0 DRV UP TO SPEED
- 669 AND #$7F
- 671 STA $20
- 673 AND #$10; TEST TIMER OUT
- 675 BEQ $F9FA; OUT OF TIME TURN OFF MOTOR
- 677 LDA $1C00; DSK CONTROLLER
- 679 AND #$FB; CLEAR BIT 2 MOTOR OFF
- 681 STA $1C00
- 683 LDA #$FF; CODE NO ACTIVE DRV
- 685 STA $3E; ACTIVE DRV BUFF
- 687 LDA #$00; CLEAR ALL BITS
- 689 STA $20; DRV STATUS BUFF
- 691 BEQ $F9D6; FORCED BRANCH
- 693 TYA; HOLDS DRV STATUS
- 695 AND #$40; CHECK IF HEAD NEEDS TO MOVE
- 697 BNE $FA02; NO STEPPING NEEDED
- 699 JMP $FABE; END IRQ ROUT
- 701 JMP ($0062); HEAD STEPPING ROUTS
- 703 ; ** SET UP TO STEP (MOVE) HEAD **
- 705 LDA $4A; # OF STEPS TO MOVE HEAD
- 707 BPL $FA0E; NOT A NEGATIVE VALUE
- 709 ; NEG VALUE FIND ABSOLUTE VALUE
- 711 EOR #$FF; FLIP ALL BITS (COMPLEMENT)
- 713 CLC
- 715 ADC #$01
- 717 CMP $64; MIN # OF STEPS (FAST STEP)
- 719 BCS $FA1C; DISTANCE BIG ENOUGH FAST STEP
- 721 LDA #$3B; SHORT DISTANCE
- 723 STA $62; SET PTRS TO SHORT MODE
- 725 LDA #$FA; NOW POINTS TO $FA3B
- 727 STA $63
- 729 BNE $FA2E; FORCED BRANCH
- 731 SBC $5E; # OF STEPS TO MOVE HEAD
- 733 SBC $5E; FAST STEPPING MODE
- 735 STA $61; # OF STEPS LEFT TO MOVE HEAD
- 737 LDA $5E
- 739 STA $60
- 741 LDA #$7B; SET PTR TO $FA7B
- 743 STA $62
- 745 LDA #$FB
- 747 STA $63
- 749 LDA $4A; # OF STEPS TO MOVE HEAD
- 751 BPL $FA63; MOVE HEAD IN
- 753 INC $4A
- 755 LDX $1C00; DSK CONTROLLER
- 757 DEX; CYCLES BIT 0 TO MOVE HEAD
- 759 JMP $FA69; STEP HEAD
- 761 ; ** SHORT DISTANCE HEAD STEPPING **
- 763 LDA $4A; # OF STEPS TO MOVE HEAD
- 765 BNE $FA2E; MORE STEPS TO MOVE
- 767 LDA #$4E; SET PTRS TO $FA4E
- 769 STA $62; TO CLEAR TIMER
- 771 LDA #$FA
- 773 STA $63
- 775 LDA #$05
- 777 STA $60; # OF STEPS TO ACEL/DECELERATE
- 779 JMP $FABE; END IRQ ROUT
- 781 ; ** STOP HEAD ROUT **
- 783 DEC $60
- 785 BNE $FABE; END IRQ ROUT
- 787 LDA $20; DRV STATUS BUFF
- 789 AND #$BF; DRV AVAILABLE
- 791 STA $20
- 793 LDA #$05; SET PTR TO $FA05
- 795 STA $62; HEAD INACTIVE ROUT
- 797 LDA #$FA
- 799 STA $63
- 801 JMP $FABE; END IRQ ROUT
- 803 ; ** REDUCE STEPS BY ONE **
- 805 DEC $4A; # OF STEPS TO MOVE HEAD
- 807 LDX $1C00; DSK CONTROLLER
- 809 INX; CYCLE BITS 0 & 1
- 811 TXA
- 813 AND #$03
- 815 STA $4B; TEMP STORAGE
- 817 LDA $1C00
- 819 AND #$FC; MASK BITS 0 & 1
- 821 ORA $4B
- 823 STA $1C00; BITS NOW CYCLED
- 825 JMP $FABE; END IRQ ROUT
- 827 ; ** ACCELERATE HEAD **
- 829 SEC
- 831 LDA $1C07; TIMER 1 HIGH LATCH
- 833 SBC $5F; #$04 ACCELERATION FACTOR
- 835 STA $1C05; TIMER 1 HIGH CTR
- 837 DEC $60;# STEPS ACCELERATE
- 839 BNE $FA94; STEP HEAD
- 841 LDA $5E; SAME AS $5F
- 843 STA $60
- 845 LDA #$97; SET PTR FAST STEP
- 847 STA $62
- 849 LDA #$FA
- 851 STA $63
- 853 JMP $FA2E; STEP HEAD
- 855 ; ** FAST STEP ROUT **
- 857 DEC $61; # OF STEPS TO MOVE HEAD
- 859 BNE $FA94; STEP HEAD
- 861 LDA #$A5; PTR $FAA5 DECELERATE
- 863 STA $62
- 865 LDA #$FA
- 867 STA $63
- 869 BNE $FA94; STEP HEAD
- 871 ; ** DECELERATE HEAD **
- 873 LDA $1C07; TIMER 1 HIGH LATCH
- 875 CLC
- 877 ADC $5F; #$04 DELERATION FACTOR
- 879 STA $1C05; TIMER 1 HIGH COUNT
- 881 DEC $60; # STEPS DECELERATE
- 883 BNE $FA94; STEP HEAD
- 885 LDA #$4E; SET PTR $FA4E
- 887 STA $62; DEC # OF DECEL STEPS
- 889 LDA #$FA
- 891 STA $63
- 893 LDA #$05
- 895 STA $60
- 897 LDA $1C0C; PERIPHIAL CONT REG
- 899 AND #$FD; FORCE SER OUT LINE LOW
- 901 STA $1C0C
- 903 RTS; RETURN MAIN IRQ
- 905 ; ** FORMAT (NEW A DSK) **
- 907 LDA $51; TRK BEING FORMATTED
- 909 BPL $FAF5; ALREADY FORMATTING
- 911 LDX $3D; DRV NUM ALWAYS 0
- 913 LDA #$60; HEAD STEPPING
- 915 STA $20; DRV STATUS
- 917 LDA #$01
- 919 STA $22,X; TRK UNDER HEAD
- 921 STA $51
- 923 LDA #$A4; BUMP HEAD TRK 1
- 925 STA $4A; STEPS TO DESIRED TRK
- 927 LDA $1C00; DSK CONTROLLER
- 929 AND #$FC; CYCLE BITS 0 & 1
- 931 STA $1C00; TO MOVE HEAD
- 933 LDA #$0A; # OF ERRORS ALLOWED
- 935 STA $0620
- 937 LDA #$A0; SET # BYTES 1/2 A TRK
- 939 STA $0621; TO #4000
- 941 LDA #$0F
- 943 STA $0622
- 945 JMP $F99C; TERM ROUT
- 947 LDY #$00
- 949 CMP ($32),Y; A HOLDS TRK NUM
- 951 BEQ $FB00; CORRECT TRK
- 953 STA ($32),Y; TRK LOOKING FOR
- 955 JMP $F99C; TERM ROUT
- 957 LDA $1C00; DSK CONTROLLER
- 959 AND #$10; CHECK WRITE PROTECT
- 961 BNE $FB0C; PROTECT NOT ON
- 963 LDA #$08; WRITE PROTECT ERROR
- 965 JMP $FDD3; ERROR HANDLING
- 967 JSR $FDA3; ERASE TRK WITH SYNC MARKS
- 969 JSR $FDC3; WRITE 4000 SYNCS TO DSK
- 971 LDA #$55; NON SYN CHARACHTER
- 973 STA $1C01; BUFF READ/WRITE TO DSK
- 975 JSR $FDC3; WRITE TO DSK
- 977 JSR $FEE0; TURN OFF WRITE MODE
- 979 JSR $F556; WAIT FOR SYNC
- 981 LDA #$40; FREE RUNNING 100 MICOSEC TIMER
- 983 ORA $180B; INTERN AUX CONTROL REG
- 985 STA $180B
- 987 LDA #$62; TIMER COUNT
- 989 STA $1806; INTERN TIMER 1 LOW LATCH
- 991 LDA #$00
- 993 STA $1807; TIMER 1 HIGH LATCH
- 995 STA $1805; TIMER 1 HIGH COUNT
- 997 LDY #$00
- 999 LDX #$00
- 1001 BIT $1C00; DSK CONTROLLER
- 1003 BMI $FB39; SYNC MARK WANT NO SYNC
- 1005 BIT $1C00
- 1007 BPL $FB3E; FOUND NO SYNC
- 1009 LDA $1804; TIMER 1 LOW COUNT
- 1011 BIT $1C00; TIME NON SYNC AREA
- 1013 BPL $FB5C; FOUND SYNC BRANCH
- 1015 LDA $180D; INTERRUPT FLAG REG
- 1017 ASL; PUSH BIT 6
- 1019 BPL $FB46; TIME NOT UP
- 1021 INX
- 1023 BNE $FB43; RESET INTERRUPT FLAGS
- 1025 INY
- 1027 BNE $FB43
- 1029 LDA #$02; NO SYNC FOUND
- 1031 JMP $FDD3; ERROR HANDLING
- 1033 STX $71; TEMP WORK STORE NON SYNC
- 1035 STY $72; & BEGINNING TIMES
- 1037 LDX #$00
- 1039 LDY #$00
- 1041 LDA $1804; TIMER 1 LOW COUNT
- 1043 BIT $1C00; DSK CONTROLLER
- 1045 BMI $FB7D; NO SYNC
- 1047 LDA $180D; INTERRUPT FLAG REG
- 1049 ASL; PUSH BIT 6
- 1051 BPL $FB67; TIME NOT UP
- 1053 INX
- 1055 BNE $FB64; RESET INTERRUPT FLAGS
- 1057 INY
- 1059 BNE $FB64
- 1061 LDA #$02; NO SYNC FOUND
- 1063 JMP $FDD3; ERROR HANDLING
- 1065 SEC; CALCULATE DIFFERENCE BETWEEN
- 1067 TXA; SYNC & NON SYNC TIMES
- 1069 SBC $71
- 1071 TAX
- 1073 STA $70
- 1075 TYA
- 1077 SBC $72
- 1079 TAY
- 1081 STA $71
- 1083 BPL $FB97
- 1085 EOR #$FF; FLIP ALL BITS
- 1087 TAY
- 1089 TXA
- 1091 EOR #$FF
- 1093 TAX
- 1095 INX
- 1097 BNE $FB97
- 1099 INY
- 1101 TYA
- 1103 BNE $FB9E
- 1105 CPX #$04
- 1107 BCC $FBB6; COUNT SYNC CHARACHTERS
- 1109 ASL $70
- 1111 ROL $71; MAKE AVERAGE 2 TIMES LARGER
- 1113 CLC
- 1115 LDA $70
- 1117 ADC $0621
- 1119 STA $0621
- 1121 LDA $71
- 1123 ADC $0622
- 1125 STA $0622
- 1127 JMP $FB0C; TRY AGAIN
- 1129 LDX #$00
- 1131 LDY #$00
- 1133 CLV:LDA $1C00; WAIT FOR SYNC MARK
- 1135 BPL $FBCE; FOUND SYNC
- 1137 BVC $FBBB; NO SYNC
- 1139 CLV
- 1141 INX; HOLDS # SYNCS
- 1143 BNE $FBBB; COUNT MORE SYNCS
- 1145 INY; HOLDS SYNC COUNT
- 1147 BNE $FBBB
- 1149 LDA #$03; COUNT = 65535 TIMES
- 1151 JMP $FDD3; ERROR HANDLING
- 1153 TXA; BYTE COUNT
- 1155 ASL
- 1157 STA $0625
- 1159 TYA
- 1161 ROL
- 1163 STA $0624
- 1165 LDA #$BF
- 1167 AND $180B; AUX CONTROL REG
- 1169 STA $180B; TURN OFF TIMER
- 1171 LDA #$66
- 1173 STA $0626
- 1175 LDX $43; SECT CTR
- 1177 LDY #$00
- 1179 TYA
- 1181 CLC
- 1183 ADC $0626
- 1185 BCC $FBF1
- 1187 INY
- 1189 INY
- 1191 DEX
- 1193 BNE $FBEA
- 1195 EOR #$FF
- 1197 SEC
- 1199 ADC #$00
- 1201 CLC
- 1203 ADC $0625
- 1205 BCS $FC03
- 1207 DEC $0624
- 1209 TAX
- 1211 TYA
- 1213 EOR #$FF
- 1215 SEC
- 1217 ADC #$00
- 1219 CLC
- 1221 ADC $0624
- 1223 BPL $FC15
- 1225 LDA #$04:JMP $FDD3; ERROR HANDLING
- 1227 TAY
- 1229 TAY:TXA
- 1231 LDX #$00
- 1233 SEC
- 1235 SBC $43; SECT CTR
- 1237 BCS $FC21
- 1239 DEY
- 1241 BMI $FC24
- 1243 INX
- 1245 BNE $FC19
- 1247 STX $0626
- 1249 CPX #$04
- 1251 BCS $FC30; SECT GAP OK
- 1253 LDA #$05; FORMAT ERROR
- 1255 JMP $FDD3; ERROR HANDLING
- 1257 ADC $43
- 1259 STA $0627
- 1261 LDA #$00
- 1263 STA $0628; SECT CTR
- 1265 LDY #$00
- 1267 LDX $3D; DRV NUM
- 1269 LDA $39; #$08 HEADER ID
- 1271 STA $0300,Y; HOLDS SEC HEADER IMAGES
- 1273 .FILE DISK ROM 10
-