mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-06 12:29:02 +00:00
Kernel 0.93+
This commit is contained in:
parent
afbd04d4b5
commit
8f0ef5bbd2
Binary file not shown.
@ -13,10 +13,14 @@ H2000 jmp prostart
|
|||||||
jmp atalkset
|
jmp atalkset
|
||||||
jmp p16start
|
jmp p16start
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.MSG.0 .AS "PRODOS FX: "
|
LDR.MSG.0 .AT "PRODOS FX:"
|
||||||
LDR.MSG.0.LEN .EQ *-LDR.MSG.0
|
LDR.MSG.UNSUPP .AT "UNSUPPORTED HARDWARE"
|
||||||
LDR.MSG.UNSUPP .AS -"UNSUPPORTED HARDWARE."
|
LDR.MSG.IIe .AT "//e"
|
||||||
LDR.MSG.UNSUPP.LEN .EQ *-LDR.MSG.UNSUPP
|
LDR.MSG.IIc .AT "//c"
|
||||||
|
LDR.MSG.IIgs .AT "IIgs"
|
||||||
|
LDR.MSG.Unknown .AT "Unknown"
|
||||||
|
LDR.MSG.CLK .AT "Clk"
|
||||||
|
LDR.MSG.RAM .AT "/RAM"
|
||||||
LDR.MSG.ROOTERR .AS -"Unable To read ROOT dir."
|
LDR.MSG.ROOTERR .AS -"Unable To read ROOT dir."
|
||||||
LDR.MSG.ROOTERR.LEN .EQ *-LDR.MSG.ROOTERR
|
LDR.MSG.ROOTERR.LEN .EQ *-LDR.MSG.ROOTERR
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -25,6 +29,10 @@ atalkset inc LDR.BootFlag set = 1 for appletalk rts
|
|||||||
prostart lda unitnum
|
prostart lda unitnum
|
||||||
sta LDR.MLIOL.P+1
|
sta LDR.MLIOL.P+1
|
||||||
|
|
||||||
|
.DO READCAT=1
|
||||||
|
sta LDR.MLIRB.P+1
|
||||||
|
.FIN
|
||||||
|
|
||||||
cld
|
cld
|
||||||
bit RROMBNK2
|
bit RROMBNK2
|
||||||
|
|
||||||
@ -36,13 +44,16 @@ prostart lda unitnum
|
|||||||
jsr setkbd
|
jsr setkbd
|
||||||
jsr home
|
jsr home
|
||||||
|
|
||||||
ldx #LDR.MSG.0.LEN-1
|
lda #$20
|
||||||
.1 lda LDR.MSG.0,x
|
ldx #39
|
||||||
and #$3F
|
|
||||||
sta $400,x
|
.1 sta $400,x
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
ldx #LDR.MSG.0
|
||||||
|
jsr LDR.PrintX
|
||||||
|
|
||||||
sec
|
sec
|
||||||
jsr idroutine returns system info
|
jsr idroutine returns system info
|
||||||
bcs .2 taken if not a //gs
|
bcs .2 taken if not a //gs
|
||||||
@ -77,19 +88,20 @@ prostart lda unitnum
|
|||||||
bne LDR.UNSUPP.HW NO 128k
|
bne LDR.UNSUPP.HW NO 128k
|
||||||
|
|
||||||
LDR.CheckROM stz cortland
|
LDR.CheckROM stz cortland
|
||||||
|
ldx #LDR.MSG.IIE
|
||||||
lda #MACHID.T.IIe+MACHID.M.128+MACHID.COL80
|
lda #MACHID.T.IIe+MACHID.M.128+MACHID.COL80
|
||||||
|
|
||||||
ldx $FBB3 check hardware id
|
ldy $FBB3 check hardware id
|
||||||
cpx #$06 apple //e?
|
cpy #$06 apple //e?
|
||||||
beq .1 if yes
|
beq .1 if yes
|
||||||
|
|
||||||
cpx #$EA apple //+ or ///?
|
cpy #$EA apple //+ or ///?
|
||||||
beq LDR.UNSUPP.HW
|
beq LDR.UNSUPP.HW
|
||||||
|
|
||||||
|
ldx #LDR.MSG.UNKNOWN
|
||||||
bra m128k machine is unknown, Assume //e Enh 128k
|
bra m128k machine is unknown, Assume //e Enh 128k
|
||||||
|
|
||||||
.1 ldx $FBC0 //c ?
|
.1 ldy $FBC0 //c ?
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
ldy kbd //c, check for keypress
|
ldy kbd //c, check for keypress
|
||||||
@ -98,31 +110,37 @@ LDR.CheckROM stz cortland
|
|||||||
sta KBDSTROBE clear keyboard
|
sta KBDSTROBE clear keyboard
|
||||||
|
|
||||||
.11 lda #MACHID.T.IIc+MACHID.M.128+MACHID.COL80
|
.11 lda #MACHID.T.IIc+MACHID.M.128+MACHID.COL80
|
||||||
|
ldx #LDR.MSG.IIC
|
||||||
bra m128k
|
bra m128k
|
||||||
|
|
||||||
.2 cpx #$EA
|
.2 cpy #$EA
|
||||||
beq LDR.UNSUPP.HW //e UNenh....
|
beq LDR.UNSUPP.HW //e UNenh....
|
||||||
|
|
||||||
cpx #$E0
|
cpy #$E0
|
||||||
bne m128k not a //e Enh....
|
beq .3
|
||||||
|
|
||||||
|
ldx #LDR.MSG.UNKNOWN
|
||||||
|
bra m128k not a //e Enh....
|
||||||
|
|
||||||
sec
|
.3 sec
|
||||||
jsr $FE1F //gs ????
|
jsr $FE1F //gs ????
|
||||||
bcs m128k no.....
|
bcs m128k no.....
|
||||||
|
|
||||||
inc cortland
|
inc cortland
|
||||||
|
ldx #LDR.MSG.IIGS
|
||||||
lda #MACHID.T.IIe+MACHID.M.128+MACHID.COL80+MACHID.CLK
|
lda #MACHID.T.IIe+MACHID.M.128+MACHID.COL80+MACHID.CLK
|
||||||
bra m128k
|
bra m128k
|
||||||
|
|
||||||
LDR.UNSUPP.HW ldy #LDR.MSG.UNSUPP.LEN-1
|
LDR.UNSUPP.HW ldx #LDR.MSG.UNSUPP
|
||||||
.1 lda LDR.MSG.UNSUPP,y
|
jsr LDR.PrintX
|
||||||
sta vline14+2,y
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
bmi *
|
bmi *
|
||||||
|
|
||||||
m128k sta idapple Save MACHID in temp location
|
m128k sta idapple Save MACHID in temp location
|
||||||
|
|
||||||
|
sta SETALTCHAR
|
||||||
|
|
||||||
|
jsr LDR.PrintX
|
||||||
|
|
||||||
sta CLRC3ROM
|
sta CLRC3ROM
|
||||||
|
|
||||||
ldx #$F
|
ldx #$F
|
||||||
@ -219,15 +237,6 @@ LDR.IRQ lda RROMWRAMBNK2
|
|||||||
stx irqv+1 save irq vector in main lc
|
stx irqv+1 save irq vector in main lc
|
||||||
sty irqv
|
sty irqv
|
||||||
|
|
||||||
lda LDR.MLIOL.P+1 place boot devnum in globals
|
|
||||||
sta LDR.MLIRB.P+1
|
|
||||||
sta devnum last device used
|
|
||||||
|
|
||||||
jsr LDR.BlkDevScan finish setting up globals
|
|
||||||
|
|
||||||
lda LDR.MLIRB.P+1
|
|
||||||
sta devnum
|
|
||||||
|
|
||||||
lda #calldisp
|
lda #calldisp
|
||||||
sta jspare+1 P8 system death vector
|
sta jspare+1 P8 system death vector
|
||||||
lda /calldisp
|
lda /calldisp
|
||||||
@ -241,9 +250,13 @@ LDR.IRQ lda RROMWRAMBNK2
|
|||||||
|
|
||||||
lda cortland
|
lda cortland
|
||||||
beq LDR.II branch if // family
|
beq LDR.II branch if // family
|
||||||
|
|
||||||
LDR.IIGS stz vmode force setvid to reset cursor
|
LDR.IIGS
|
||||||
jsr setvid reset output to screen
|
|
||||||
|
* lda RROMWRAMBNK2
|
||||||
|
|
||||||
|
* stz vmode force setvid to reset cursor
|
||||||
|
* jsr setvid reset output to screen
|
||||||
|
|
||||||
lda #calldisp
|
lda #calldisp
|
||||||
sta cortdisp
|
sta cortdisp
|
||||||
@ -252,6 +265,9 @@ LDR.IIGS stz vmode force setvid to reset cursor
|
|||||||
lda #1
|
lda #1
|
||||||
sta cortflag
|
sta cortflag
|
||||||
|
|
||||||
|
* jsr lc1in set language card bank 1 to r/w
|
||||||
|
|
||||||
|
lda #'C'
|
||||||
ldx PAKME.CCLK
|
ldx PAKME.CCLK
|
||||||
ldy PAKME.CCLK+1
|
ldy PAKME.CCLK+1
|
||||||
jsr LDR.SetupCLK
|
jsr LDR.SetupCLK
|
||||||
@ -279,16 +295,15 @@ LDR.IIGS stz vmode force setvid to reset cursor
|
|||||||
sta OS_BOOT indicates O/S initially booted.
|
sta OS_BOOT indicates O/S initially booted.
|
||||||
jsr patch101 patch for gs/os - rev note #101
|
jsr patch101 patch for gs/os - rev note #101
|
||||||
|
|
||||||
.1 jmp RAMDRV.Install
|
.1 jmp BLKDEV.Install
|
||||||
* put dispatcher in bank 2 of language card
|
*--------------------------------------
|
||||||
|
|
||||||
LDR.II ldx PAKME.SEL1
|
LDR.II ldx PAKME.SEL1
|
||||||
ldy PAKME.SEL1+1
|
ldy PAKME.SEL1+1
|
||||||
jsr LDR.SetupQC
|
jsr LDR.SetupQC
|
||||||
|
|
||||||
* check for a rom in slot 3. if no rom, use internal $C300 firmware
|
* check for a rom in slot 3. if no rom, use internal $C300 firmware
|
||||||
|
|
||||||
.2 sta CLRC3ROM
|
sta CLRC3ROM
|
||||||
lda rommap slot ROM bit map
|
lda rommap slot ROM bit map
|
||||||
and #$08 mask all but slot 3
|
and #$08 mask all but slot 3
|
||||||
bne isromin3 taken if rom in slot 3
|
bne isromin3 taken if rom in slot 3
|
||||||
@ -346,10 +361,13 @@ hitswtch sta CLRC3ROM
|
|||||||
|
|
||||||
docard lda #MACHID.COL80
|
docard lda #MACHID.COL80
|
||||||
tsb MACHID turn bit 2 on (80-col card is present)
|
tsb MACHID turn bit 2 on (80-col card is present)
|
||||||
|
*--------------------------------------
|
||||||
CLK.Install jsr LDR.ClkDevScan
|
CLK.Install jsr LDR.ClkDevScan
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RAMDRV.Install jsr lc1in
|
BLKDEV.Install jsr LDR.BlkDevScan
|
||||||
|
*--------------------------------------
|
||||||
|
jsr lc1in
|
||||||
|
|
||||||
ldx PAKME.RAM
|
ldx PAKME.RAM
|
||||||
ldy PAKME.RAM+1
|
ldy PAKME.RAM+1
|
||||||
|
|
||||||
@ -384,7 +402,10 @@ RAMDRV.Install jsr lc1in
|
|||||||
ldx GP.numdevs
|
ldx GP.numdevs
|
||||||
lda #$BF unit num of /RAM
|
lda #$BF unit num of /RAM
|
||||||
sta devlist,x
|
sta devlist,x
|
||||||
|
|
||||||
|
ldx #LDR.MSG.RAM
|
||||||
|
jsr LDR.PrintX
|
||||||
|
*--------------------------------------
|
||||||
lda LDR.BootFlag get setup entry point flag
|
lda LDR.BootFlag get setup entry point flag
|
||||||
beq LDR.ReadRoot taken if normal boot.
|
beq LDR.ReadRoot taken if normal boot.
|
||||||
lda RROMBNK2
|
lda RROMBNK2
|
||||||
@ -394,7 +415,10 @@ LDR.BootFlag .DA #$00 0 = normal boot, <>0 = return
|
|||||||
|
|
||||||
* set prefix to boot device
|
* set prefix to boot device
|
||||||
|
|
||||||
LDR.ReadRoot jsr MLI
|
LDR.ReadRoot lda LDR.MLIOL.P+1 place boot devnum in globals
|
||||||
|
sta devnum last device used
|
||||||
|
|
||||||
|
jsr MLI
|
||||||
.DA #MLIONLINE
|
.DA #MLIONLINE
|
||||||
.DA LDR.MLIOL.P
|
.DA LDR.MLIOL.P
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -455,18 +479,51 @@ LDR.ReadRoot jsr MLI
|
|||||||
bpl .91
|
bpl .91
|
||||||
|
|
||||||
bmi *
|
bmi *
|
||||||
|
*--------------------------------------
|
||||||
|
LDR.PrintA ldy LDR.Print.CX
|
||||||
|
and #$7F
|
||||||
|
cmp #$60
|
||||||
|
bcs .2
|
||||||
|
and #$3F
|
||||||
|
.2 sta $400,y
|
||||||
|
inc LDR.Print.CX
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
LDR.PrintX ldy LDR.Print.CX
|
||||||
|
|
||||||
|
.1 lda $2000,x
|
||||||
|
pha
|
||||||
|
and #$7F
|
||||||
|
cmp #$60
|
||||||
|
bcs .2
|
||||||
|
and #$3F
|
||||||
|
.2 sta $400,y
|
||||||
|
|
||||||
|
inx
|
||||||
|
iny
|
||||||
|
pla
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
* lda #$20
|
||||||
|
* sta $400,y
|
||||||
|
iny Add a Space
|
||||||
|
sty LDR.Print.CX
|
||||||
|
rts
|
||||||
|
LDR.Print.CX .HS 00
|
||||||
|
*--------------------------------------
|
||||||
LDR.MLIOL.P .DA #2
|
LDR.MLIOL.P .DA #2
|
||||||
.DA #$60
|
.DA #$60
|
||||||
.DA pbuf+1
|
.DA pbuf+1
|
||||||
LDR.MLISETP.P
|
|
||||||
.DA #1
|
LDR.MLISETP.P .DA #1
|
||||||
.DA pbuf
|
.DA pbuf
|
||||||
LDR.MLIRB.P
|
|
||||||
.DA #3
|
.DO READCAT=1
|
||||||
|
LDR.MLIRB.P .DA #3
|
||||||
.DA #0 unit number
|
.DA #0 unit number
|
||||||
.DA 0 2 byte data buffer
|
.DA 0 2 byte data buffer
|
||||||
.DA 0 2 byte block number
|
.DA 0 2 byte block number
|
||||||
|
.FIN
|
||||||
|
|
||||||
cortland .BS 1 cortland loader flag (1 = Cortland)
|
cortland .BS 1 cortland loader flag (1 = Cortland)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -560,6 +617,7 @@ LDR.ClkDevScan php
|
|||||||
dex
|
dex
|
||||||
bpl .9
|
bpl .9
|
||||||
|
|
||||||
|
lda #'N'
|
||||||
ldx PAKME.NCLK
|
ldx PAKME.NCLK
|
||||||
ldy PAKME.NCLK+1
|
ldy PAKME.NCLK+1
|
||||||
jmp LDR.SetupCLK
|
jmp LDR.SetupCLK
|
||||||
@ -579,6 +637,7 @@ LDR.ClkDevTCLK lda CLRC8ROM switch out $C8 ROMs
|
|||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
|
lda #'T'
|
||||||
ldx PAKME.TCLK
|
ldx PAKME.TCLK
|
||||||
ldy PAKME.TCLK+1
|
ldy PAKME.TCLK+1
|
||||||
jsr LDR.SetupCLK
|
jsr LDR.SetupCLK
|
||||||
@ -596,6 +655,11 @@ LDR.ClkDevTCLK lda CLRC8ROM switch out $C8 ROMs
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.SetupCLK stx ZPInBufPtr
|
LDR.SetupCLK stx ZPInBufPtr
|
||||||
sty ZPInBufPtr+1
|
sty ZPInBufPtr+1
|
||||||
|
|
||||||
|
jsr LDR.PrintA
|
||||||
|
ldx #LDR.MSG.CLK
|
||||||
|
jsr LDR.PrintX
|
||||||
|
|
||||||
lda #$D742
|
lda #$D742
|
||||||
sta ZPOutBufPtr
|
sta ZPOutBufPtr
|
||||||
lda /$D742
|
lda /$D742
|
||||||
@ -607,7 +671,7 @@ LDR.SetupCLK stx ZPInBufPtr
|
|||||||
|
|
||||||
lda #MACHID.CLK
|
lda #MACHID.CLK
|
||||||
tsb MACHID
|
tsb MACHID
|
||||||
LDR.SetupCLK.RTS
|
LDR.SetupCLK.RTS
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* find all disk devices in system slots and set up address
|
* find all disk devices in system slots and set up address
|
||||||
|
Loading…
Reference in New Issue
Block a user