REL

The first piece of OS-9 Level 1 loads from the boot track (track 34, sectors 1-18) into memory starting at $2600.

A two-byte signature is followed by the 2 byte execution start address.

The RELocate code copies the boot track from $2600 up into $F000 and transfers control there into the Kernel (part 1) module after RELocation.

        ORG     $2600

BOOTSIG FCC     "OS"                     ;2600: 4F 53          'OS'    DOS BOOTTRACK OS SIGNATURE
EXECADDR FDB     REL                      ;2602: 26 0C          '&.'    EXECUTION START ADDRESS
OS9_BOOT FCC     "OSy`BOOT"               ;2604: 4F 53 79 60 42 4F 4F 54 'OSy`BOOT' OS-9 BOOT SCREEN STRING
; START OF REL "MODULE"
REL     CLR     PIA0BC                   ;260C: 7F FF 03       '...'   DISABLE VSYNC
        STA     SAMTYSET                 ;260F: B7 FF DF       '...'   SAM MAP TYPE=1 "ALL RAM"
        LDB     #$06                     ;2612: C6 06          '..'    SET COUNTDOWN TO CLEAR 7 BITS (B=6)
        LDX     #SAMF0CLR                ;2614: 8E FF C6       '...'   START WITH SAM DISPLAY OFFSET F0 BIT
REL10   STA     ,X++                     ;2617: A7 81          '..'    CLEAR THE DISPLAY OFFSET BIT THEN X=X+2
        DECB                             ;2619: 5A             'Z'     COUNT DOWN 1
        BNE     REL10                    ;261A: 26 FB          '&.'    DID WE CLEAR OUR 7TH BIT (B=0)
        STA     $01,X                    ;261C: A7 01          '..'    YES, SET DISPLAY OFFSET SCREEN AT $8000
; CLEAR SCREEN WITH SPACES
        LDX     #M8000                   ;261E: 8E 80 00       '...'
        LDY     #M0200                   ;2621: 10 8E 02 00    '....'
        LDA     #$60                     ;2625: 86 60          '.`'
REL20   STA     ,X+                      ;2627: A7 80          '..'
        DEY                              ;2629: 31 3F          '1?'
        BNE     REL20                    ;262B: 26 FA          '&.'
; PUT BANNER ONTO SCREEN
        LDX     #M810C                   ;262D: 8E 81 0C       '...'
        LEAY    OS9_BOOT,PCR             ;2630: 31 8C D1       '1..'
        LDB     #$08                     ;2633: C6 08          '..'
REL30   LDA     ,Y+                      ;2635: A6 A0          '..'
        STA     ,X+                      ;2637: A7 80          '..'
        DECB                             ;2639: 5A             'Z'
        BNE     REL30                    ;263A: 26 F9          '&.'
; FIXME WHAT IS THIS
        TST     M0072                    ;263C: 0D 72          '.r'    FIXME TEST ALREADY RELOCATED FLAG?
        BEQ     REL50                    ;263E: 27 13          ''.'
; START RELOCATING
        LEAU    >BOOTSIG,PCR             ;2640: 33 8D FF BC    '3...'
        LDX     #M0F00                   ;2644: 8E 0F 00       '...'
        LDY     #MF000                   ;2647: 10 8E F0 00    '....'
REL40   LDA     ,U+                      ;264B: A6 C0          '..'
        STA     ,Y+                      ;264D: A7 A0          '..'
        DEX                              ;264F: 30 1F          '0.'
        BNE     REL40                    ;2651: 26 F8          '&.'
; RELOCATION COMPLETE, PREPARE FOR OS9 MODULE COLD START
REL50   JMP     ZF056                    ;2653: 7E F0 56       '~.V'   JUMP TO RELOCATED MODULES
        LEAX    <M01SYNC,PCR             ;2656: 30 8C 04       '0..'   LOCATE OS9 MODULE START
        LDD     $09,X                    ;2659: EC 09          '..'    LOCATE OS9 EXEC ADDRESS
        JMP     D,X                      ;265B: 6E 8B          'n.'    JUMP INTO OS9 MODULE

OS-9

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies