From fa849031d8d0fb2bdc89b7a2d2386c448940df19 Mon Sep 17 00:00:00 2001
From: cuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Date: Sun, 20 Apr 2003 22:49:32 +0000
Subject: [PATCH] Working on the new serial code

git-svn-id: svn://svn.cc65.org/cc65/trunk@2070 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
 asminc/ser-error.inc       | 2 +-
 asminc/ser-kernel.inc      | 7 ++++---
 libsrc/c64/c64.inc         | 1 +
 libsrc/serial/ser-kernel.s | 1 +
 4 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/asminc/ser-error.inc b/asminc/ser-error.inc
index 736846aae..e6057a641 100644
--- a/asminc/ser-error.inc
+++ b/asminc/ser-error.inc
@@ -45,6 +45,6 @@ SER_ERR_BAUD_UNAVAIL   	=       $05    	; Baud rate not available
 SER_ERR_NO_DATA	       	=       $06   	; Nothing to read
 SER_ERR_OVERFLOW       	=       $07   	; No room in send buffer
 SER_ERR_INIT_FAILED     =       $08   	; Initialization failed
-
+SER_ERR_INV_IOCTL       =       $09     ; IOCTL not supported
 
 
diff --git a/asminc/ser-kernel.inc b/asminc/ser-kernel.inc
index 66ce8aea7..e378d851c 100644
--- a/asminc/ser-kernel.inc
+++ b/asminc/ser-kernel.inc
@@ -48,8 +48,9 @@ SER_HDR_PUT             = SER_HDR_JUMPTAB+8     ; PUT routine
 SER_HDR_PAUSE           = SER_HDR_JUMPTAB+10    ; PAUSE routine
 SER_HDR_UNPAUSE         = SER_HDR_JUMPTAB+12    ; UNPAUSE routine
 SER_HDR_STATUS          = SER_HDR_JUMPTAB+14    ; STATUS routine
+SER_HDR_IOCTL           = SER_HDR_JUMPTAB+16    ; IOCTL routine
 
-SER_HDR_JUMPCOUNT       = 8                     ; Number of jump vectors
+SER_HDR_JUMPCOUNT       = 9                     ; Number of jump vectors
 
 ;------------------------------------------------------------------------------
 ; Offsets into the struct passed to ser_params
@@ -128,7 +129,7 @@ SER_STATUS_DSR 	       	=       $40	; NOT data set ready
         .global ser_pause
         .global ser_unpause
         .global ser_status
-
+        .global ser_ioctl
 
 
 ;------------------------------------------------------------------------------
@@ -143,6 +144,6 @@ SER_STATUS_DSR 	       	=       $40	; NOT data set ready
         .global _ser_pause
         .global _ser_unpause
         .global _ser_status
-
+        .global _ser_ioctl
 
 
diff --git a/libsrc/c64/c64.inc b/libsrc/c64/c64.inc
index 471551c26..12b2829ad 100644
--- a/libsrc/c64/c64.inc
+++ b/libsrc/c64/c64.inc
@@ -35,6 +35,7 @@ PALFLAG		= $2A6		; $01 = PAL, $00 = NTSC
 ; Direct entries
 CLRSCR		= $E544
 KBDREAD		= $E5B4
+NMIEXIT         = $FEBC
 
 ; ---------------------------------------------------------------------------
 ; Vector and other locations
diff --git a/libsrc/serial/ser-kernel.s b/libsrc/serial/ser-kernel.s
index 69c45df5e..8d9159d13 100644
--- a/libsrc/serial/ser-kernel.s
+++ b/libsrc/serial/ser-kernel.s
@@ -30,6 +30,7 @@ ser_put:        jmp     return0
 ser_pause:      jmp     return0
 ser_unpause:    jmp     return0
 ser_status:     jmp     return0
+ser_ioctl:      jmp     return0
 
 ; Driver header signature
 .rodata