From 30ede1c184ab5051d24a8324ba45161d6a6c4ccd Mon Sep 17 00:00:00 2001 From: mooinglemur Date: Sat, 2 Mar 2024 22:05:30 -0700 Subject: [PATCH] [KERNAL] add legacy/c816 extended APIs --- Makefile | 18 +++++++++++++++--- kernal/cbm/channel/channel.s | 6 ++++++ kernal/vectors.s | 8 ++++---- kernal/{drivers => }/x16/65c816/interrupt.s | 0 kernal/{drivers => }/x16/65c816/stack.s | 0 kernsup/kernsup.inc | 4 ++-- 6 files changed, 27 insertions(+), 9 deletions(-) rename kernal/{drivers => }/x16/65c816/interrupt.s (100%) rename kernal/{drivers => }/x16/65c816/stack.s (100%) diff --git a/Makefile b/Makefile index f69636ed..d2d930d8 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,11 @@ KERNAL_CORE_SOURCES = \ kernal/cbm/nmi.s \ kernal/cbm/irq.s \ kernal/cbm/util.s \ - kernal/cbm/serial.s + kernal/cbm/serial.s \ + kernal/x16/extapi.s \ + kernal/x16/65c816/interrupt.s \ + kernal/x16/65c816/stack.s \ + kernal/x16/65c816/extapi16.s KERNAL_GRAPH_SOURCES = \ kernal/graph/graph.s \ @@ -66,8 +70,6 @@ KERNAL_DRIVER_SOURCES = \ kernal/drivers/x16/i2c.s \ kernal/drivers/x16/smc.s \ kernal/drivers/x16/rtc.s \ - kernal/drivers/x16/65c816/interrupt.s \ - kernal/drivers/x16/65c816/stack.s \ kernal/drivers/generic/softclock_timer.s KERNAL_SOURCES = \ @@ -182,6 +184,16 @@ GENERIC_DEPS = \ KERNAL_DEPS = \ $(GENERIC_DEPS) \ + kernal/cbm/channel/channelio.s \ + kernal/cbm/channel/clall.s \ + kernal/cbm/channel/close.s \ + kernal/cbm/channel/errorhandler.s \ + kernal/cbm/channel/load.s \ + kernal/cbm/channel/messages.s \ + kernal/cbm/channel/open.s \ + kernal/cbm/channel/openchannel.s \ + kernal/cbm/channel/save.s \ + kernal/cbm/channel/x16additions.s \ $(GIT_SIGNATURE) KEYMAP_DEPS = \ diff --git a/kernal/cbm/channel/channel.s b/kernal/cbm/channel/channel.s index 14c55967..82c68a55 100644 --- a/kernal/cbm/channel/channel.s +++ b/kernal/cbm/channel/channel.s @@ -94,6 +94,11 @@ untlk = $ffab .export savehl +; misc x16 additions +.export clear_status +.export get_fa + + .segment "ZPCHANNEL" : zeropage ; C64 location ; VVV @@ -146,4 +151,5 @@ stah .res 1 ;$C2 .include "load.s" .include "save.s" .include "errorhandler.s" +.include "x16additions.s" diff --git a/kernal/vectors.s b/kernal/vectors.s index 2edb30b1..6918e352 100644 --- a/kernal/vectors.s +++ b/kernal/vectors.s @@ -31,6 +31,8 @@ .import savehl +.import extapi, extapi16 + .import c816_abort_emulated, c816_clall_thunk, c816_getin_thunk .include "banks.inc" @@ -39,10 +41,8 @@ ; *** this is space for new X16 KERNAL vectors *** ; -; !!! DO NOT RELY ON THEIR ADDRESSES JUST YET !!! -; - .byte 0,0,0 ; $FEA8 - .byte 0,0,0 ; $FEAB + jmp extapi16 ; $FEA8 + jmp extapi ; $FEAB .byte 0,0,0 ; $FEAE jmp mciout ; $FEB1 jmp i2c_batch_read ; $FEB4 diff --git a/kernal/drivers/x16/65c816/interrupt.s b/kernal/x16/65c816/interrupt.s similarity index 100% rename from kernal/drivers/x16/65c816/interrupt.s rename to kernal/x16/65c816/interrupt.s diff --git a/kernal/drivers/x16/65c816/stack.s b/kernal/x16/65c816/stack.s similarity index 100% rename from kernal/drivers/x16/65c816/stack.s rename to kernal/x16/65c816/stack.s diff --git a/kernsup/kernsup.inc b/kernsup/kernsup.inc index adf62709..2d90a46d 100644 --- a/kernsup/kernsup.inc +++ b/kernsup/kernsup.inc @@ -1,5 +1,5 @@ -.byte 0,0,0 ; $FEA8 -.byte 0,0,0 ; $FEAB +bridge extapi16 ; $FEA8 +bridge extapi ; $FEAB .byte 0,0,0 ; $FEAE bridge mciout ; $FEB1 bridge i2c_batch_read ; $FEB4