PR#3 PREFIX /A2OSX.SRC NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BOOT/SYS/KERNEL *-------------------------------------- .INB /A2OSX.DEV/INC/MACROS.I .INB /A2OSX.DEV/INC/A2OSX.I .INB /A2OSX.DEV/INC/IO.I .INB /A2OSX.DEV/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.GP .EQ * .PH $BD00 .INB SYS/KERNEL.S.GP .EP A2osX.GP.END .EQ * *-------------------------------------- * LC AUX $D000 BANK1 API Calls $00-$3E *-------------------------------------- A2osX.D001 .EQ * .PH $D000 .DA #RRAMWRAMBNK1 .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.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.CNV .INB SYS/KERNEL.S.RUN .INB SYS/KERNEL.S.EVT .INB SYS/KERNEL.S.TSK .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.DAT .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 *-------------------------------------- .INB SYS/KERNEL.S.D01 .EP A2osX.E000.END .EQ * *-------------------------------------- * CONTROL SECTION : *-------------------------------------- .LIST ON *-------------------------------------- A2osX.GP.SIZE .EQ A2osX.GP.END-A2osX.GP 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.GP.SIZE>$1E0 .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