mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-20 03:31:42 +00:00
135 lines
3.5 KiB
Plaintext
135 lines
3.5 KiB
Plaintext
PR#3
|
||
PREFIX /A2OSX.SRC
|
||
NEW
|
||
INC 1
|
||
AUTO 6
|
||
.LIST OFF
|
||
.OP 65C02
|
||
.OR $2000
|
||
.TF /A2OSX.BOOT/SYS/KERNEL
|
||
*--------------------------------------
|
||
.INB INC/MACROS.I
|
||
.INB INC/A2OSX.I
|
||
.INB INC/IO.I
|
||
.INB INC/PRODOS.I
|
||
*--------------------------------------
|
||
TmpPtr1 .EQ $0 for X.PRINTF.S
|
||
ZPQuickPtr1 .EQ ZPKERNEL Temp Ptrs for use in very limited scope
|
||
ZPQuickPtr2 .EQ ZPKERNEL+2 (could be trashed by any JSR)
|
||
ZPQuickPtr3 .EQ ZPKERNEL+4
|
||
ZPQuickPtr4 .EQ ZPKERNEL+6
|
||
*--------------------------------------
|
||
* Kernel Init Stage 2
|
||
*--------------------------------------
|
||
sei
|
||
ldx #$FF init 6502 stack to highest
|
||
txs
|
||
sta SETALTZP
|
||
|
||
stx A2osX.SaveSM
|
||
stx A2osX.SaveSX
|
||
|
||
sta CLRALTZP Make sure MAIN ZP is enabled for X.PRINT.F
|
||
lda RROMBNK1 Make sure ROM is enabled for X.PRINT.F
|
||
cli
|
||
|
||
jsr Kernel.Init2
|
||
>DEBUGOA
|
||
*--------------------------------------
|
||
* Kernel Init Stage 3
|
||
*--------------------------------------
|
||
sta SETALTZP
|
||
bit RRAMWRAMBNK1
|
||
bit RRAMWRAMBNK1
|
||
jmp Kernel.Init3
|
||
*--------------------------------------
|
||
.INB X.PRINTF.S
|
||
.INB SYS/KERNEL.S.INIT2
|
||
.INB SYS/KERNEL.S.INIT3
|
||
*--------------------------------------
|
||
* Global Page
|
||
*--------------------------------------
|
||
A2osX.BE00 .EQ *
|
||
.PH $BE00
|
||
.INB SYS/KERNEL.S.GP
|
||
.EP
|
||
A2osX.BE00.END .EQ *
|
||
*--------------------------------------
|
||
* LC AUX $D000 BANK1 API Calls $00-$3E
|
||
*--------------------------------------
|
||
A2osX.D001 .EQ *
|
||
.PH $D000
|
||
.DA #RRAMWRAMBNK1
|
||
.INB SYS/KERNEL.S.CIO
|
||
.INB SYS/KERNEL.S.STR
|
||
.INB SYS/KERNEL.S.PS
|
||
.INB SYS/KERNEL.S.ARG
|
||
.INB SYS/KERNEL.S.ENV
|
||
*--------------------------------------
|
||
.INB SYS/KERNEL.S.RUN
|
||
.INB SYS/KERNEL.S.EVT
|
||
.INB SYS/KERNEL.S.TSK
|
||
.EP
|
||
A2osX.D001.END .EQ *
|
||
*--------------------------------------
|
||
* LC AUX $D000 BANK2 API Calls $40-$7E
|
||
*--------------------------------------
|
||
A2osX.D002 .EQ *
|
||
.PH $D000
|
||
.DA #RRAMWRAMBNK2
|
||
.INB SYS/KERNEL.S.FIO
|
||
.INB SYS/KERNEL.S.DRV
|
||
.INB SYS/KERNEL.S.LIB
|
||
.INB SYS/KERNEL.S.TIME
|
||
.INB SYS/KERNEL.S.FILE
|
||
.INB SYS/KERNEL.S.DIR
|
||
*--------------------------------------
|
||
.INB SYS/KERNEL.S.PFT
|
||
.INB SYS/KERNEL.S.BIN
|
||
.EP
|
||
A2osX.D002.END .EQ *
|
||
*--------------------------------------
|
||
* LC AUX $E000 API Calls $80-$FE
|
||
*--------------------------------------
|
||
A2osX.E000 .EQ *
|
||
.PH $E000
|
||
.INB SYS/KERNEL.S.JMP
|
||
.INB SYS/KERNEL.S.IRQ
|
||
.INB SYS/KERNEL.S.MEM
|
||
*--------------------------------------
|
||
* Make sure KERNEL.S.DEV is the last one
|
||
*--------------------------------------
|
||
.INB SYS/KERNEL.S.DEV
|
||
.EP
|
||
A2osX.E000.END .EQ *
|
||
*--------------------------------------
|
||
* CONTROL SECTION :
|
||
*--------------------------------------
|
||
.LIST ON
|
||
*--------------------------------------
|
||
A2osX.BE00.SIZE .EQ A2osX.BE00.END-A2osX.BE00
|
||
A2osX.D001.SIZE .EQ A2osX.D001.END-A2osX.D001
|
||
A2osX.D002.SIZE .EQ A2osX.D002.END-A2osX.D002
|
||
A2osX.E000.SIZE .EQ A2osX.E000.END-A2osX.E000
|
||
*--------------------------------------
|
||
.LIST OFF
|
||
.DO A2osX.BE00.SIZE>$E0
|
||
.LIST ON
|
||
* !!!!!!!!!!!!! ERROR:GP too big !!!!!!!!!!!!
|
||
.LIST OFF
|
||
.FIN
|
||
.DO A2osX.D001.SIZE>$1000
|
||
.LIST ON
|
||
* !!!!!!!!!!!!! ERROR:BNK1 too big !!!!!!!!!!
|
||
.LIST OFF
|
||
.FIN
|
||
.DO A2osX.D002.SIZE>$1000
|
||
.LIST ON
|
||
* !!!!!!!!!!!!! ERROR:BNK2 too big !!!!!!!!!!
|
||
.LIST OFF
|
||
.FIN
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE SYS/KERNEL.S
|
||
ASM
|