Author: Dan Strnad
Year: 1989
... discusses error reporting by the Extended Serial Interface.
Apple II
Technical Notes
_____________________________________________________________________________
Developer Technical Support
Apple IIGS
#50: Extended Serial Interface Error Handling
Written by: Dan Strnad January 1989
This Technical Note discusses error reporting by the Extended Serial
Interface.
_____________________________________________________________________________
For Apple IIGS ROM 01, the Extended Serial Interface does not return the error
condition in the carry bit. Programs using the Extended Serial Interface
should check for a non-zero result value in the result code rather than the
carry bit to determine if an error has occurred. The following eight-bit APW
code demonstrates this error checking using the SetDTR command. The SetDTR
routine zeros the result bytes if no error has occurred.
LONGA OFF ;PREPARE ASSEMBLER FOR EMULATION MODE
LONGI OFF
65C02 ON
KEEP SETDTR2
START
SLOT EQU $01
SEC ;SET EMULATION MODE
XCE
JMP BEGIN
CMDLST DC H'03' ;PARAMETER COUNT
DC H'0B' ;SETDTR COMMAND CODE
RESLT DC I'0' ;RESULT CODE (OUTPUT)
DTRSTAT DC I'0' ;BIT 7 IS STATE OF DTR (INPUT)
BEGIN LDA #SLOT ;COMPUTE $CN VALUE TO BE USED
ORA #$C0
STA OFFSET+2 ;MODIFY INSTRUCTIONS LOADING OFFSETS
STA XOFFSET+2
STA ICALL+2 ;MODIFY INSTRUCTIONS CALLING FIRMWARE
STA XCALL+2
IOFFSET LDA $C00D ;THIS INSTRUCTION MODIFIED AT RUNTIME
STA ICALL+1 ;MODIFY JSR TO INIT
XOFFSET LDA $C012 ;THIS INSTRUCTION MODIFIED AT RUNTIME
STA XCALL+1 ;MODIFY JSR TO EXTENDED SERIAL INTERFACE
ICALL JSR $C000 ;THIS INSTRUCTION MODIFIED AT RUNTIME
LDA #<CMDLST ;LOW BYTE OF COMMAND LIST
LDX #>CMDLST ;HIGH BYTE OF COMMAND LIST
LDY #0 ;24-BIT ADDRESS NOT USED BY 8-BIT PROGRAM
XCALL JSR $C000 ;THIS INSTRUCTION MODIFIED AT RUNTIME
LDA RESLT ;DID AN ERROR OCCUR?
BNE ERROR ;YES- HANDLE THE ERROR
...
ERROR
...
END