A2osX/SYS/KERNEL.S.txt

147 lines
3.8 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
PR#3
2015-06-03 18:30:57 +00:00
PREFIX /A2OSX.SRC
2015-03-14 21:48:35 +00:00
NEW
INC 1
AUTO 6
.LIST OFF
.OP 65C02
2016-06-07 06:10:18 +00:00
.OR $2000
2015-06-03 18:30:57 +00:00
.TF /A2OSX.BOOT/SYS/KERNEL
2015-03-14 21:48:35 +00:00
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
.INB INC/IO.I
.INB INC/PRODOS.I
*--------------------------------------
2016-06-07 06:10:18 +00:00
TmpPtr1 .EQ $0 for X.PRINTF.S
2016-03-13 21:47:19 +00:00
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
2015-03-14 21:48:35 +00:00
*--------------------------------------
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
2016-08-28 20:48:01 +00:00
jsr Kernel.Init2
2016-06-07 06:10:18 +00:00
>DEBUGOA
*--------------------------------------
* Kernel Init Stage 3
2016-06-07 06:10:18 +00:00
*--------------------------------------
sta SETALTZP
bit RRAMWRAMBNK1
bit RRAMWRAMBNK1
jmp Kernel.Init3
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
.INB X.PRINTF.S
2016-08-28 20:48:01 +00:00
.INB SYS/KERNEL.S.INIT2
.INB SYS/KERNEL.S.INIT3
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
* Global Page
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
A2osX.BE00 .EQ *
.PH $BE00
.INB SYS/KERNEL.S.GP
.EP
A2osX.BE00.END .EQ *
*--------------------------------------
* LC AUX $D000 BANK1 API Calls $00-$3E
2016-06-07 06:10:18 +00:00
*--------------------------------------
A2osX.D001 .EQ *
.PH $D000
2016-09-26 16:00:52 +00:00
.DA #RRAMWRAMBNK1
.INB SYS/KERNEL.S.FIO
2016-09-26 16:00:52 +00:00
.INB SYS/KERNEL.S.DRV
.INB SYS/KERNEL.S.LIB
.INB SYS/KERNEL.S.TIME
2016-09-26 16:00:52 +00:00
.INB SYS/KERNEL.S.FILE
.INB SYS/KERNEL.S.DIR
*--------------------------------------
2016-09-26 16:00:52 +00:00
.INB SYS/KERNEL.S.PFT
.INB SYS/KERNEL.S.BIN
2016-06-07 06:10:18 +00:00
.EP
A2osX.D001.END .EQ *
*--------------------------------------
* LC AUX $D000 BANK2 API Calls $40-$8E
*--------------------------------------
A2osX.D002 .EQ *
.PH $D000
.DA #RRAMWRAMBNK2
.INB SYS/KERNEL.S.CIO
.INB SYS/KERNEL.S.STR
.INB SYS/KERNEL.S.DEV
.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
2016-06-07 06:10:18 +00:00
A2osX.D002.END .EQ *
*--------------------------------------
* LC AUX $E000 API Calls $80-$FE
2016-06-07 06:10:18 +00:00
*--------------------------------------
A2osX.E000 .EQ *
.PH $E000
2016-09-05 06:10:04 +00:00
.INB SYS/KERNEL.S.JMP
.INB SYS/KERNEL.S.DAT
2016-06-07 06:10:18 +00:00
.INB SYS/KERNEL.S.IRQ
.INB SYS/KERNEL.S.MEM
*--------------------------------------
PullPtr1Ptr2Ptr3
sec
.HS 90 bcc
PullPtr1Ptr2 clc
>PULLW ZPQuickPtr1
>PULLW ZPQuickPtr2
bcc .9
>PULLW ZPQuickPtr3
.9 rts
*--------------------------------------
* Make sure KERNEL.S.D01 is the last one
2015-03-14 21:48:35 +00:00
*--------------------------------------
.INB SYS/KERNEL.S.D01
2016-06-07 06:10:18 +00:00
.EP
A2osX.E000.END .EQ *
2016-09-26 16:00:52 +00:00
*--------------------------------------
* CONTROL SECTION :
2016-06-07 06:10:18 +00:00
*--------------------------------------
.LIST ON
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
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
2016-09-26 16:00:52 +00:00
.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
*--------------------------------------
2015-03-14 21:48:35 +00:00
MAN
SAVE SYS/KERNEL.S
ASM