; 20:02:28 SUNDAY NOV 18 199 0 ; Boot Loader for FOD5 ; THIS PROGRAM IS LOADED INTO PAGE $00 AND EXECUTE@P`BOOT .DE $0pPOINTER .DE $C ; FODS CONTROLLER LOCATIONDSK.REGB .DE $A88 DSK.REGA .DE $A880DSK.DDRB .DE $A88@DSK.DDRA .DE $A88PDSK.PCR .DE $A88`DSK.IFR .DE $A88pFODS .DE $730MON.WARM .DE $800 .BA $600 0@START LDX #$C2 ; LENGTH OF PROGRAPMOVE LDA ZSTART+$600F,` STA *BOOT,p DE؀ CPX #$FƐ BNE MOV JMP BOO  .BA $000% .MC $6000@ZSTART JSR SETUP ; turn on disP LDA #$B` STA DSK.DDRp LDX #$0 ; One second dela LDY #$0DELAY INC *POINTE INC *POINTE IN  BNE DELA0 IN@ BNE DELAPLOAD STX *POINTER ; FODS start load addres` LDA #$7p STA *POINTER+DSK.WAIT LDY #$F JSR Y.OU JSR STATU BNE DSK.WAI NXT.TRK LDY #$A0 JSR Y.OU@ JSR STATUP BNE XWARM ; ERROR - jump to MON for messag` LDX #$FE ; First sector to be reapNXT.SECT DEC DSK.DDRA ; change DDRA to outpu LDA #$1 STA DSK.REG STX DSK.REG LDY #$7  JSR Y.OU0 INC DSK.DDRA ; change to inpu@ LDA #$3P STA DSK.REG`p ; READ A SECTOҀ LDY #$7F ; 128 byteREADBYTE LDA DSK.IFR ; wait for a low t AND #$02 ; high transitio  BEQ READBYTE ; of the CA1 fla0 LDA DSK.REG@CHECK STA (POINTER),P BNE NXT.INST`NXT.INSTR DEp BPL READBYTŀ JSR STATUӐ BNE XWARM ; jump to MON for error messag ; NEXT SECTO 0 CLD ; bump store address by $8@ CLC ; for next sectoP LDA *POINTE` ADC #$8p STA *POINTEҀ LDA *POINTER+ ADC #$0 STA *POINTER+ CMP #$80 ; FODS loaded BNE CONT.L0 LDA *NXT.INSTR-1 ; has load been checked@ BNE X.FODS ; run FODS if it haP ` ; MODIFY CODE TO CHECK 2nd LOAD AGAINST 1sp LDA #$D1 ; change STA (91) to CMP (D1 STA *CHECK ; at zero page location $5 LDA #XWARM-CHECK- STA *NXT.INSTR-1 ; branch to WAR  LDX #$00 ; start load address lo0 JMP LOA@CONT.LD CPX #$EF ; read 16 sectorP BEQ NXT.TR` DEp BNE NXT.SECԀXWARM JMP MON.WAR͐X.FODS JMP FODY.OUT LDA #$F STA DSK.DDRA ; all lines to outpu  LDA #$00 STA DSK.REGB ; send %0000 000@ STY DSK.REGA ; output data in y reP RT`STATUS LDA DSK.IFp AND #$1 BEQ STATUS ; wait for bit 4 seSETUP LDA #$0 STA DSK.DDRA ; all lines to inpu LDA #$2  STA DSK.REG0 LDA #$DB ; send "0" pulse from CB2 (norm hi@ STA DSK.PCR ; CA1 & CA2 int flag set oP LDA #$FB ; low to high transitio` STA DSK.PCp LDA DSK.REGA ; check statu EOR #$FF ; flip bit AND #$98 ; mask bits 7,4, RT .E  LDA #$DB ;.0 STA AFE8@ LDA #$FB ;.P STA AFE8` LDA AFE8p EOR #$FF ;. AND #$98 ;.^ؐ RTS .EN 0