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        ;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


This and all of the other Apple II Technical Notes have been converted to HTML by Aaron Heiss as a public service to the Apple II community, with permission by Apple Computer, Inc. Any and all trademarks, registered and otherwise, are properties of their owners.