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