PR#3 PREFIX /A2OSX.SRC NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 *-------------------------------------- * **** START OF A2osX Global Page **** *-------------------------------------- A2osX.GP.B.start .PH $BE00 *-------------------------------------- * A2osX.SYSCALL (AUXLC to AUXLC) * In: * X = SYSfnc.Index * Y,A = free for Inline param *-------------------------------------- A2osX.GP.Start jmp (KERNEL.SYSCALL,x) *-------------------------------------- * LIBCALL (AUXLC to AUXLC) * In: * Y = LIB.ID * X = LIBfnc.Index * A = free for Inline param *-------------------------------------- jmp A2osX.LIBCALL1 *-------------------------------------- * Kernel.MLICALL (AUXLC to MAINLC) * In: * X = MLI Function * A = Param Count *-------------------------------------- jmp A2osX.MLICALL1 *-------------------------------------- jmp A2osX.ROMCALL1 .BS $BE10-* *-------------------------------------- jmp (pDev) pDevJmp jmp (pCode) pCodeJmp jmp (pLib) pLibJmp .BS $BE20-* *-------------------------------------- A2osX.LIBCALL1 pha phx tya >SYSCALL SYS.GetMemPtrA >STYA .1+1 plx pla .1 jmp $FFFF *-------------------------------------- A2osX.MLICALL1 jsr GO.MAINLC stx .1 sta MLICALL.PARAMS jsr MLI .1 .BS 1 .DA MLICALL.PARAMS jsr GO.AUXLC rts *-------------------------------------- A2osX.ROMCALL1 bra * *-------------------------------------- GO.MAINLC php clc bra GO.SAVE.REG GO.AUXLC php sec GO.SAVE.REG sta A2osX.SaveA pla keep P in A for later stx A2osX.SaveX sty A2osX.SaveY plx ply inx bne .1 iny .1 stx GO.EXIT.JMP+1 sty GO.EXIT.JMP+2 sei ldy pStack bcs GO.AUXLC1 GO.MAINLC1 tsx stx A2osX.SaveSX ldx A2osX.SaveSM txs stx CLRALTZP ldx RROMBNK1 bra GO.EXIT *-------------------------------------- GO.AUXLC1 stx SETALTZP tsx stx A2osX.SaveSM ldx A2osX.SaveSX txs ldx RRAMWRAMBNK1 ldx RRAMWRAMBNK1 *-------------------------------------- GO.EXIT sty pStack pha push P on stack ldy A2osX.SaveY ldx A2osX.SaveX lda A2osX.SaveA plp GO.EXIT.JMP jmp $FFFF *-------------------------------------- GO.Reset jsr GO.AUXLC jmp KERNEL.COLDBOOT *-------------------------------------- S.PRBYTE pha lsr lsr lsr lsr ora #$30 cmp #$3A bcc .1 adc #6 .1 jsr S.COUT pla and #$0F ora #$30 cmp #$3A bcc S.COUT adc #6 bra S.COUT *-------------------------------------- S.CROUT lda #13 *-------------------------------------- S.COUT phx phy ldx #DEVMGR.COUT jsr pDevJmp ply plx rts *-------------------------------------- A2osX.SaveA .BS 1 A2osX.SaveX .BS 1 A2osX.SaveY .BS 1 *-------------------------------------- A2osX.GP.End .EQ * A2osX.GP.SIZE .EQ A2osX.GP.END-A2osX.GP.START .BS A2osX.GP.START+$100-* .EP *-------------------------------------- MAN SAVE A2OSX.S.GP LOAD A2OSX.S ASM