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.