* VEGAS 6809 BOOTSTRAP * EQUATES C07F STACK EQU $C07F C300 SCTBUF EQU $C300 F812 LECSEC EQU $F812 LECTURE SECTEUR DU MONITEUR * * START OF UTILITY * C100 ORG $C100 C100 20 0A BOOT BRA LOAD0 C102 00 00 00 FCB $00,$00,$00 C105 00 TRK FCB $00 FILE START TRACK C106 00 FCB $00 FILE START SECTOR C107 00 FCB $00 DENSITY FLAG C108 C100 TADR FDB $C100 TRANSFER ADDRESS C10A 0000 LADR FDB $0000 LOAD ADDRESS C10C 10CE C07F LOAD0 LDS #STACK SETUP STACK C110 FC C105 LDD >TRK SETUP STARTING TRK & SCT C113 FD C300 STD >SCTBUF C116 108E C400 LDY #SCTBUF+256 * * PERFORM ACTUAL BOOT LOAD * C11A 8D 35 LOAD1 BSR GETCH GET A CHARACTER C11C 81 02 CMPA #$02 DATA RECORD HEADER? C11E 27 10 BEQ LOAD2 SKIP, IF SO C120 81 16 CMPA #$16 XFR ADDRESS HEADER? C122 26 F6 BNE LOAD1 LOOP IF NEITHER C124 8D 2B BSR GETCH GET TRANSFER ADDRESS C126 B7 C108 STA >TADR C129 8D 26 BSR GETCH C12B B7 C109 STA >TADR+1 C12E 20 EA BRA LOAD1 CONTINUE LOAD C130 8D 1F LOAD2 BSR GETCH GET LOAD ADDRESS C132 B7 C10A STA >LADR C135 8D 1A BSR GETCH C137 B7 C10B STA >LADR+1 C13A 8D 15 BSR GETCH GET BYTE COUNT C13C 1F 89 TFR A,B PUT IN B C13E 4D TSTA C13F 27 D9 BEQ LOAD1 LOOP IF COUNT = 0 C141 BE C10A LDX >LADR GET LOAD ADDRESS C144 34 14 LOAD3 PSHS X,B C146 8D 09 BSR GETCH GET A DATA CHARACTER C148 35 14 PULS X,B C14A A7 80 STA ,X+ PUT CHARACTER C14C 5A DECB END OF DATA IN RECORD? C14D 26 F5 BNE LOAD3 LOOP IF NOT C14F 20 C9 BRA LOAD1 GET ANOTHER RECORD * * GET CHARACTER ROUTINE * C151 108C C400 GETCH CMPY #SCTBUF+256 OUT OF DATA? C155 26 0F BNE GETCH4 GO READ CHARACTER IF NOT C157 8E C300 LDX #SCTBUF POINT TO BUFFER C15A EC 84 LDD ,X GET FORWARD LINK C15C 27 0B BEQ GO IF ZERO, FILE IS LOADED C15E 8D 0D BSR READ READ NEXT SECTOR C160 26 9E BNE BOOT START OVER IF ERROR C162 108E C304 LDY #SCTBUF+4 POINT PAST LINK C166 A6 A0 GETCH4 LDA ,Y+ ELSE GET A CHARACTER C168 39 RTS * * FILE IS LOADED, JUMP TO IT * C169 6E 9F C108 GO JMP [TADR] * * READ SINGLE SECTOR * C16D 7E F812 READ JMP >LECSEC C170 39 RTS END BOOT 0 ERROR(S) DETECTED SYMBOL TABLE: BOOT C100 GETCH C151 GETCH4 C166 GO C169 LADR C10A LECSEC F812 LOAD0 C10C LOAD1 C11A LOAD2 C130 LOAD3 C144 READ C16D SCTBUF C300 STACK C07F TADR C108 TRK C105