clean-up of driver return codes

This commit is contained in:
mrdudz 2023-02-26 20:03:41 +01:00
parent a299ef4210
commit ffa83c32a4
82 changed files with 438 additions and 322 deletions

View File

@ -134,7 +134,22 @@ You can refer to Annex B of the ISO C99 standard ([here](https://www.open-std.or
* Hexadecimal number constants should be used except where decimal or binary numbers make much more sense in that constant's context. * Hexadecimal number constants should be used except where decimal or binary numbers make much more sense in that constant's context.
* Hexadecimal letters should be upper-case. * Hexadecimal letters should be upper-case.
* When you set two registers or two memory locations to an immediate 16-bit zero, you should use the expressions ```#<$0000``` and ```#>$0000``` (they make it obvious where you are putting the lower and upper bytes). * When you set two registers or two memory locations to an immediate 16-bit zero, you should use the expressions ```#<$0000``` and ```#>$0000``` (they make it obvious where you are putting the lower and upper bytes).
* If a function is declared to return a char-sized value, it actually must return an integer-sized value. (When cc65 promotes a returned value, it sometimes assumes that the value already is an integer.) * If a function is declared to return a char-sized value, it actually must return an integer-sized value. (When cc65 promotes a returned value, it sometimes assumes that the value already is an integer.) This must be done in one of the following ways:
<pre>
lda #RETURN_VALUE
ldx #0 ; return value is char
</pre>
or, if the value is 0, you can use:
<pre>
lda #RETURN_VALUE
.assert RETURN_VALUE = 0
tax
</pre>
sometimes jumping to return0 could save a byte:
<pre>
.assert RETURN_VALUE = 0
jmp return 0
</pre>
* Functions, that are intended for a platform's system library, should be optimized as much as possible. * Functions, that are intended for a platform's system library, should be optimized as much as possible.
* Sometimes, there must be a trade-off between size and speed. If you think that a library function won't be used often, then you should make it small. Otherwise, you should make it fast. * Sometimes, there must be a trade-off between size and speed. If you think that a library function won't be used often, then you should make it small. Otherwise, you should make it fast.
* Comments that are put on the right side of instructions must be aligned (start in the same character columns). * Comments that are put on the right side of instructions must be aligned (start in the same character columns).

View File

@ -73,7 +73,8 @@ INSTALL:
and #$f0 and #$f0
cmp #$80 cmp #$80
bne @L1 bne @L1
lda #EM_ERR_OK .assert EM_ERR_OK = 0, error
txa
rts rts
@L1: lda #EM_ERR_NO_DEVICE @L1: lda #EM_ERR_NO_DEVICE
; rts ; rts

View File

@ -71,8 +71,9 @@ INSTALL:
stx gettype+2 stx gettype+2
gettype:jsr $0000 gettype:jsr $0000
sta ostype sta ostype
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; Fall through ; Fall through
; UNINSTALL routine. Is called before the driver is removed from memory. ; UNINSTALL routine. Is called before the driver is removed from memory.

View File

@ -133,8 +133,8 @@ next: inc ptr1+1
bcc :+ bcc :+
; Mouse firmware not found ; Mouse firmware not found
lda #<MOUSE_ERR_NO_DEVICE lda #MOUSE_ERR_NO_DEVICE
ldx #>MOUSE_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
; Check Pascal 1.1 Firmware Protocol ID bytes ; Check Pascal 1.1 Firmware Protocol ID bytes

View File

@ -168,8 +168,9 @@ SER_CLOSE:
sta ACIA_CMD,x sta ACIA_CMD,x
; Done, return an error code ; Done, return an error code
: lda #<SER_ERR_OK : lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
stx Index ; Mark port as closed stx Index ; Mark port as closed
rts rts
@ -256,23 +257,24 @@ SER_OPEN:
; Done ; Done
stx Index ; Mark port as open stx Index ; Mark port as open
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
; Device (hardware) not found ; Device (hardware) not found
NoDevice:lda #<SER_ERR_NO_DEVICE NoDevice:lda #SER_ERR_NO_DEVICE
ldx #>SER_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
; Invalid parameter ; Invalid parameter
InvParam:lda #<SER_ERR_INIT_FAILED InvParam:lda #SER_ERR_INIT_FAILED
ldx #>SER_ERR_INIT_FAILED ldx #0 ; return value is char
rts rts
; Baud rate not available ; Baud rate not available
InvBaud:lda #<SER_ERR_BAUD_UNAVAIL InvBaud:lda #SER_ERR_BAUD_UNAVAIL
ldx #>SER_ERR_BAUD_UNAVAIL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -292,8 +294,8 @@ SER_GET:
: lda RecvFreeCnt ; (25) : lda RecvFreeCnt ; (25)
cmp #$FF cmp #$FF
bne :+ bne :+
lda #<SER_ERR_NO_DATA lda #SER_ERR_NO_DATA
ldx #>SER_ERR_NO_DATA ldx #0 ; return value is char
rts rts
; Check for flow stopped & enough free: release flow control ; Check for flow stopped & enough free: release flow control
@ -336,8 +338,8 @@ SER_PUT:
; Put byte into send buffer & send ; Put byte into send buffer & send
: ldy SendFreeCnt : ldy SendFreeCnt
bne :+ bne :+
lda #<SER_ERR_OVERFLOW lda #SER_ERR_OVERFLOW
ldx #>SER_ERR_OVERFLOW ldx #0 ; return value is char
rts rts
: ldy SendTail : ldy SendTail
@ -346,7 +348,8 @@ SER_PUT:
dec SendFreeCnt dec SendFreeCnt
lda #$FF ; TryHard = true lda #$FF ; TryHard = true
jsr TryToSend jsr TryToSend
lda #<SER_ERR_OK lda #SER_ERR_OK
.assert SER_ERR_OK = 0, error
tax tax
rts rts
@ -359,7 +362,8 @@ SER_STATUS:
lda ACIA_STATUS,x lda ACIA_STATUS,x
ldx #$00 ldx #$00
sta (ptr1,x) sta (ptr1,x)
txa ; SER_ERR_OK .assert SER_ERR_OK = 0, error
txa
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -379,11 +383,12 @@ SER_IOCTL:
bcs :+ bcs :+
stx Slot stx Slot
tax ; SER_ERR_OK .assert SER_ERR_OK = 0, error
tax
rts rts
: lda #<SER_ERR_INV_IOCTL : lda #SER_ERR_INV_IOCTL
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -69,7 +69,8 @@ INSTALL:
lda #$34 lda #$34
sta PACTL sta PACTL
lda #JOY_ERR_OK lda #JOY_ERR_OK
ldx #0 .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -62,7 +62,8 @@ JOY_COUNT = 4 ; Number of joysticks we support
INSTALL: INSTALL:
lda #JOY_ERR_OK lda #JOY_ERR_OK
ldx #0 .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -137,9 +137,10 @@ INSTALL:
ldx YPos+1 ldx YPos+1
jsr CMOVEY jsr CMOVEY
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts

View File

@ -268,9 +268,10 @@ INSTALL:
and #$0f and #$0f
sta old_porta_vbi sta old_porta_vbi
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts

View File

@ -132,9 +132,10 @@ INSTALL:
ldx YPos+1 ldx YPos+1
jsr CMOVEY jsr CMOVEY
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts

View File

@ -135,8 +135,8 @@ my_CIOV:
.code .code
invbaud: invbaud:
lda #<SER_ERR_BAUD_UNAVAIL lda #SER_ERR_BAUD_UNAVAIL
ldx #>SER_ERR_BAUD_UNAVAIL ldx #0 ; return value is char
openerr: openerr:
rts rts
@ -229,8 +229,9 @@ SER_OPEN:
jsr my_CIOV jsr my_CIOV
bmi cioerr bmi cioerr
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
inverr: jmp my___inviocb inverr: jmp my___inviocb
@ -240,8 +241,8 @@ cioerr:
jsr my_fddecusage ; decrement usage counter of fd as open failed jsr my_fddecusage ; decrement usage counter of fd as open failed
init_err: init_err:
ldx #0
lda #SER_ERR_INIT_FAILED lda #SER_ERR_INIT_FAILED
ldx #0 ; return value is char
rts rts
;---- open the device ;---- open the device
@ -313,8 +314,9 @@ SER_CLOSE:
stx rshand+1 stx rshand+1
inx inx
stx cm_run stx cm_run
@done: lda #<SER_ERR_OK @done: lda #SER_ERR_OK
ldx #>SER_ERR_OK .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -365,16 +367,16 @@ SER_GET:
rts rts
@nix_da:lda #SER_ERR_NO_DATA @nix_da:lda #SER_ERR_NO_DATA
ldx #0 ldx #0 ; return value is char
rts rts
ser_error: ser_error:
lda #SER_ERR_OVERFLOW ; there is no large selection of serial error codes... :-/ lda #SER_ERR_OVERFLOW ; there is no large selection of serial error codes... :-/
ldx #0 ldx #0 ; return value is char
rts rts
ni_err: lda #SER_ERR_NOT_OPEN ni_err: lda #SER_ERR_NOT_OPEN
ldx #0 ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -427,8 +429,8 @@ SER_STATUS:
; ;
SER_IOCTL: SER_IOCTL:
lda #<SER_ERR_INV_IOCTL ; We don't support ioclts for now lda #SER_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -456,8 +458,8 @@ search: lda HATABS,y ; get device name
; R: device not found, return error ; R: device not found, return error
lda #<SER_ERR_NO_DEVICE lda #SER_ERR_NO_DEVICE
ldx #0 ldx #0 ; return value is char
rts rts
; R: device found, initialize jump table into main program ; R: device found, initialize jump table into main program
@ -554,8 +556,9 @@ found: lda ptr3
pla pla
sta ptr3 sta ptr3
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts

View File

@ -47,7 +47,8 @@ INSTALL:
lda #$04 ; enable POT input from the joystick ports, see section "GTIA" in lda #$04 ; enable POT input from the joystick ports, see section "GTIA" in
sta CONSOL ; http://www.atarimuseum.com/videogames/consoles/5200/conv_to_5200.html sta CONSOL ; http://www.atarimuseum.com/videogames/consoles/5200/conv_to_5200.html
lda #JOY_ERR_OK lda #JOY_ERR_OK
ldx #0 .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -62,8 +62,9 @@ INSTALL:
sty SWCHB ; enable 2-button 7800 controller 2: pull pin 6 (INPT4) high sty SWCHB ; enable 2-button 7800 controller 2: pull pin 6 (INPT4) high
reset: reset:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -55,11 +55,12 @@ INSTALL:
lda VIA::PRA lda VIA::PRA
and #%00100000 and #%00100000
bne ijkPresent bne ijkPresent
lda #<JOY_ERR_NO_DEVICE lda #JOY_ERR_NO_DEVICE
.byte $2C ; Skip next opcode .byte $2C ; Skip next opcode
ijkPresent: ijkPresent:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -58,7 +58,8 @@ temp2: .byte $00
INSTALL: INSTALL:
lda #JOY_ERR_OK lda #JOY_ERR_OK
ldx #0 .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -141,8 +141,9 @@ SER_CLOSE:
sta ACIA::CMD,x sta ACIA::CMD,x
; Done, return an error code ; Done, return an error code
: lda #<SER_ERR_OK : lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
stx Index ; Mark port as closed stx Index ; Mark port as closed
rts rts
@ -205,8 +206,9 @@ SER_OPEN:
; Done ; Done
stx Index ; Mark port as open stx Index ; Mark port as open
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
; Invalid parameter ; Invalid parameter
@ -235,8 +237,8 @@ SER_GET:
: lda RecvFreeCnt ; (25) : lda RecvFreeCnt ; (25)
cmp #$FF cmp #$FF
bne :+ bne :+
lda #<SER_ERR_NO_DATA lda #SER_ERR_NO_DATA
ldx #>SER_ERR_NO_DATA ldx #0 ; return value is char
rts rts
; Check for flow stopped & enough free: release flow control ; Check for flow stopped & enough free: release flow control
@ -277,8 +279,8 @@ SER_PUT:
; Put byte into send buffer & send ; Put byte into send buffer & send
: ldy SendFreeCnt : ldy SendFreeCnt
bne :+ bne :+
lda #<SER_ERR_OVERFLOW lda #SER_ERR_OVERFLOW
ldx #>SER_ERR_OVERFLOW ldx #0 ; return value is char
rts rts
: ldy SendTail : ldy SendTail
@ -287,7 +289,8 @@ SER_PUT:
dec SendFreeCnt dec SendFreeCnt
lda #$FF ; TryHard = true lda #$FF ; TryHard = true
jsr TryToSend jsr TryToSend
lda #<SER_ERR_OK lda #SER_ERR_OK
.assert SER_ERR_OK = 0, error
tax tax
rts rts
@ -299,7 +302,8 @@ SER_STATUS:
lda ACIA::STATUS lda ACIA::STATUS
ldx #$00 ldx #$00
sta (ptr1,x) sta (ptr1,x)
txa ; SER_ERR_OK .assert SER_ERR_OK = 0, error
txa
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -308,8 +312,8 @@ SER_STATUS:
; Must return an SER_ERR_xx code in a/x. ; Must return an SER_ERR_xx code in a/x.
SER_IOCTL: SER_IOCTL:
lda #<SER_ERR_INV_IOCTL lda #SER_ERR_INV_IOCTL
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -215,7 +215,8 @@ SETPALETTE:
jsr PAPER jsr PAPER
ldy #1 ldy #1
jsr flipcolor jsr flipcolor
dey ; TGI_ERR_OK .assert TGI_ERR_OK = 0, error
dey
sty ERROR sty ERROR
sty PARAM1+1 sty PARAM1+1
jmp INK jmp INK

View File

@ -87,16 +87,17 @@ INSTALL:
cli cli
cmp tmp1 cmp tmp1
beq @ram_present beq @ram_present
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
@ram_present: @ram_present:
ldx #$FF ldx #$FF
stx curpage stx curpage
stx curpage+1 ; Invalidate the current page stx curpage+1 ; Invalidate the current page
.assert EM_ERR_OK = 0, error
inx inx
txa ; A = X = EM_ERR_OK txa
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -120,16 +120,16 @@ INSTALL:
bne @setok bne @setok
@notpresent: @notpresent:
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
@setok: @setok:
lda #0 lda #0
sta pagecount sta pagecount
stx pagecount+1 stx pagecount+1
lda #<EM_ERR_OK .assert EM_ERR_OK = 0, error
ldx #>EM_ERR_OK tax
rts rts
check: check:

View File

@ -87,16 +87,17 @@ INSTALL:
cli cli
cmp tmp1 cmp tmp1
beq @ram_present beq @ram_present
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
@ram_present: @ram_present:
ldx #$FF ldx #$FF
stx curpage stx curpage
stx curpage+1 ; Invalidate the current page stx curpage+1 ; Invalidate the current page
.assert EM_ERR_OK = 0, error
inx inx
txa ; A = X = EM_ERR_OK txa
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -68,8 +68,9 @@ INSTALL:
ldx #$FF ldx #$FF
stx curpage stx curpage
stx curpage+1 ; Invalidate the current page stx curpage+1 ; Invalidate the current page
.assert EM_ERR_OK = 0, error
inx inx
txa ; A = X = EM_ERR_OK txa
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -107,8 +107,9 @@ INSTALL:
ldx #$FF ldx #$FF
stx curpage stx curpage
stx curpage+1 ; Invalidate the current page stx curpage+1 ; Invalidate the current page
.assert EM_ERR_OK = 0, error
inx inx
txa ; A = X = EM_ERR_OK txa
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -97,13 +97,14 @@ INSTALL:
lda #0 lda #0
sta pagecount sta pagecount
stx pagecount+1 stx pagecount+1
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
rts rts
@notpresent: @notpresent:
@readonly: @readonly:
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -126,8 +126,9 @@ size_found:
pagecount_ok: pagecount_ok:
stx pagecount stx pagecount
sty pagecount+1 sty pagecount+1
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
rts rts
; common REU setup for size check ; common REU setup for size check

View File

@ -121,8 +121,9 @@ INSTALL:
lda vdc_cset_save lda vdc_cset_save
jsr vdcputreg jsr vdcputreg
@keep64kBit: @keep64kBit:
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
rts rts
test64k: test64k:

View File

@ -53,8 +53,9 @@ JOY_COUNT = 4 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -57,8 +57,9 @@ JOY_COUNT = 2 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -194,9 +194,10 @@ INSTALL:
sta (ptr3),y sta (ptr3),y
cli cli
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts

View File

@ -228,9 +228,10 @@ INSTALL:
jsr MoveX jsr MoveX
cli cli
; Done, return zero. ; Done
lda #MOUSE_ERR_OK lda #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
tax tax
rts rts

View File

@ -195,9 +195,10 @@ INSTALL:
sta (ptr3),y sta (ptr3),y
cli cli
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts

View File

@ -195,9 +195,10 @@ INSTALL:
sta (ptr3),y sta (ptr3),y
cli cli
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts

View File

@ -187,8 +187,9 @@ SetNMI: sta NMIVec
; Done, return an error code ; Done, return an error code
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -264,22 +265,23 @@ SER_OPEN:
; Done ; Done
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
; Invalid parameter ; Invalid parameter
InvParam: InvParam:
lda #<SER_ERR_INIT_FAILED lda #SER_ERR_INIT_FAILED
ldx #>SER_ERR_INIT_FAILED ldx #0 ; return value is char
rts rts
; Baud rate not available ; Baud rate not available
InvBaud: InvBaud:
lda #<SER_ERR_BAUD_UNAVAIL lda #SER_ERR_BAUD_UNAVAIL
ldx #>SER_ERR_BAUD_UNAVAIL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -300,8 +302,9 @@ SER_CLOSE:
; Return OK ; Return OK
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -322,8 +325,8 @@ SER_GET:
@L1: lda RecvFreeCnt ; (25) @L1: lda RecvFreeCnt ; (25)
cmp #$ff cmp #$ff
bne @L2 bne @L2
lda #<SER_ERR_NO_DATA lda #SER_ERR_NO_DATA
ldx #>SER_ERR_NO_DATA ldx #0 ; return value is char
rts rts
; Check for flow stopped & enough free: release flow control ; Check for flow stopped & enough free: release flow control
@ -370,7 +373,7 @@ SER_PUT:
@L2: ldx SendFreeCnt @L2: ldx SendFreeCnt
bne @L3 bne @L3
lda #<SER_ERR_OVERFLOW ; X is already zero lda #SER_ERR_OVERFLOW ; X is already zero
rts rts
@L3: ldx SendTail @L3: ldx SendTail
@ -379,7 +382,8 @@ SER_PUT:
dec SendFreeCnt dec SendFreeCnt
lda #$ff lda #$ff
jsr TryToSend jsr TryToSend
lda #<SER_ERR_OK lda #SER_ERR_OK
.assert SER_ERR_OK = 0, error
tax tax
rts rts
@ -392,7 +396,8 @@ SER_STATUS:
lda ACIA_STATUS lda ACIA_STATUS
ldx #0 ldx #0
sta (ptr1,x) sta (ptr1,x)
txa ; SER_ERR_OK .assert SER_ERR_OK = 0, error
txa
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -402,8 +407,8 @@ SER_STATUS:
; ;
SER_IOCTL: SER_IOCTL:
lda #<SER_ERR_INV_IOCTL ; We don't support ioclts for now lda #SER_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -77,12 +77,13 @@ INSTALL:
ldx #$FF ldx #$FF
stx curpage ; Invalidate the current page stx curpage ; Invalidate the current page
inx ; X = 0 .assert EM_ERR_OK = 0, error
txa ; A = X = EM_ERR_OK inx
txa
rts rts
nomem: ldx #>EM_ERR_NO_DEVICE nomem: ldx #EM_ERR_NO_DEVICE
lda #<EM_ERR_NO_DEVICE lda #0 ; return value is char
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -120,13 +120,14 @@ INSTALL:
dex dex
@noextradex: @noextradex:
stx bankcount stx bankcount
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
rts rts
@not_present: @not_present:
cli cli
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead

View File

@ -158,13 +158,14 @@ INSTALL:
jsr restore_data jsr restore_data
cpy #$01 cpy #$01
beq @present beq @present
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
@present: @present:
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -147,13 +147,14 @@ INSTALL:
jsr restore_data jsr restore_data
cpy #$01 cpy #$01
beq @present beq @present
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
@present: @present:
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -121,16 +121,17 @@ INSTALL:
bne @setok bne @setok
@notpresent: @notpresent:
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE .assert EM_ERR_OK = 0, error
tax
rts rts
@setok: @setok:
lda #0 lda #0
sta pagecount sta pagecount
stx pagecount+1 stx pagecount+1
lda #<EM_ERR_OK .assert EM_ERR_OK = 0, error
ldx #>EM_ERR_OK tax
rts rts
check: check:

View File

@ -76,13 +76,14 @@ INSTALL:
beq @setok beq @setok
@notpresent: @notpresent:
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
@setok: @setok:
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -82,13 +82,14 @@ INSTALL:
cmp #$AA cmp #$AA
bne @notpresent bne @notpresent
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
rts rts
@notpresent: @notpresent:
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
; use rts from UNINSTALL below ; use rts from UNINSTALL below
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -65,8 +65,9 @@ window: .res 256 ; Memory "window"
INSTALL: INSTALL:
ldx #$FF ldx #$FF
stx curpage ; Invalidate the current page stx curpage ; Invalidate the current page
inx ; X = 0 .assert EM_ERR_OK = 0, error
txa ; A = X = EM_ERR_OK inx
txa
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -98,13 +98,13 @@ INSTALL:
lda #0 lda #0
sta pagecount sta pagecount
stx pagecount+1 stx pagecount+1
lda #<EM_ERR_OK .assert EM_ERR_OK = 0, error
ldx #>EM_ERR_OK tax
rts rts
@notpresent: @notpresent:
@readonly: @readonly:
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -127,8 +127,9 @@ size_found:
pagecount_ok: pagecount_ok:
stx pagecount stx pagecount
sty pagecount+1 sty pagecount+1
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
rts rts
; common REU setup for size check ; common REU setup for size check
@ -152,6 +153,7 @@ reu_size_check_common:
nodevice: nodevice:
lda #EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
.assert EM_ERR_OK = 0, error
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -87,8 +87,8 @@ INSTALL:
bne @L0 bne @L0
iny iny
bne @L0 bne @L0
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ; ldx #0 ; return value is char
rts rts
@present: @present:
@ -131,8 +131,9 @@ INSTALL:
sta pagecount sta pagecount
stx pagecount+1 stx pagecount+1
@endok: @endok:
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
rts rts
test64k: test64k:

View File

@ -93,15 +93,16 @@ INSTALL:
; DTV not found ; DTV not found
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
@present: @present:
ldx #$FF ldx #$FF
stx curpage+1 ; Invalidate curpage stx curpage+1 ; Invalidate curpage
inx ; X = 0 .assert EM_ERR_OK = 0, error
txa ; A/X = EM_ERR_OK inx
txa
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead

View File

@ -59,8 +59,9 @@ temp4: .byte 0
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead

View File

@ -100,12 +100,14 @@ masktable:
; ;
INSTALL: INSTALL:
lda #JOY_ERR_OK ; Assume we have a joystick lda #JOY_ERR_OK ; Assume we have a "joystick"
ldx VIC_CLK_128 ; Test for a C128 .assert JOY_ERR_OK = 0, error
cpx #$FF tax ; Set high byte
ldy VIC_CLK_128 ; Test for a C128
cpy #$FF
bne @C128 ; Jump if we have one bne @C128 ; Jump if we have one
lda #JOY_ERR_NO_DEVICE ; No C128 -> no numpad lda #JOY_ERR_NO_DEVICE ; No C128 -> no numpad
@C128: ldx #0 ; Set high byte @C128:
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead

View File

@ -52,8 +52,9 @@ JOY_COUNT = 4 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -56,8 +56,9 @@ JOY_COUNT = 2 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead

View File

@ -152,9 +152,10 @@ INSTALL:
jsr CMOVEY jsr CMOVEY
cli cli
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts
@ -307,8 +308,8 @@ INFO: jsr POS
; Must return an error code in a/x. ; Must return an error code in a/x.
; ;
IOCTL: lda #<MOUSE_ERR_INV_IOCTL ; We don't support ioclts for now IOCTL: lda #MOUSE_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>MOUSE_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -168,6 +168,7 @@ INSTALL:
; Done, return zero. ; Done, return zero.
lda #MOUSE_ERR_OK lda #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
tax tax
rts rts
@ -319,8 +320,8 @@ INFO: jsr POS
; Must return an error code in .XA. ; Must return an error code in .XA.
; ;
IOCTL: lda #<MOUSE_ERR_INV_IOCTL ; We don't support ioctls, for now IOCTL: lda #MOUSE_ERR_INV_IOCTL ; We don't support ioctls, for now
ldx #>MOUSE_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -156,9 +156,10 @@ INSTALL:
jsr CMOVEY jsr CMOVEY
cli cli
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts
@ -312,8 +313,8 @@ INFO: jsr POS
; Must return an error code in a/x. ; Must return an error code in a/x.
; ;
IOCTL: lda #<MOUSE_ERR_INV_IOCTL ; We don't support ioclts for now IOCTL: lda #MOUSE_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>MOUSE_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -139,9 +139,10 @@ INSTALL:
jsr CMOVEY jsr CMOVEY
cli cli
; Done, return zero (= MOUSE_ERR_OK) ; Done
ldx #$00 ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts
@ -297,8 +298,8 @@ INFO: jsr POS
; Must return an error code in a/x. ; Must return an error code in a/x.
; ;
IOCTL: lda #<MOUSE_ERR_INV_IOCTL ; We don't support ioclts for now IOCTL: lda #MOUSE_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>MOUSE_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -161,8 +161,9 @@ SetNMI: sta NMIVec
; Done, return an error code ; Done, return an error code
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -238,22 +239,23 @@ SER_OPEN:
; Done ; Done
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
; Invalid parameter ; Invalid parameter
InvParam: InvParam:
lda #<SER_ERR_INIT_FAILED lda #SER_ERR_INIT_FAILED
ldx #>SER_ERR_INIT_FAILED ldx #0 ; return value is char
rts rts
; Baud rate not available ; Baud rate not available
InvBaud: InvBaud:
lda #<SER_ERR_BAUD_UNAVAIL lda #SER_ERR_BAUD_UNAVAIL
ldx #>SER_ERR_BAUD_UNAVAIL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -274,8 +276,9 @@ SER_CLOSE:
; Return OK ; Return OK
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -296,8 +299,8 @@ SER_GET:
@L1: lda RecvFreeCnt ; (25) @L1: lda RecvFreeCnt ; (25)
cmp #$ff cmp #$ff
bne @L2 bne @L2
lda #<SER_ERR_NO_DATA lda #SER_ERR_NO_DATA
ldx #>SER_ERR_NO_DATA ldx #0 ; return value is char
rts rts
; Check for flow stopped & enough free: release flow control ; Check for flow stopped & enough free: release flow control
@ -344,7 +347,7 @@ SER_PUT:
@L2: ldx SendFreeCnt @L2: ldx SendFreeCnt
bne @L3 bne @L3
lda #<SER_ERR_OVERFLOW ; X is already zero lda #SER_ERR_OVERFLOW ; X is already zero
rts rts
@L3: ldx SendTail @L3: ldx SendTail
@ -353,7 +356,8 @@ SER_PUT:
dec SendFreeCnt dec SendFreeCnt
lda #$ff lda #$ff
jsr TryToSend jsr TryToSend
lda #<SER_ERR_OK lda #SER_ERR_OK
.assert SER_ERR_OK = 0, error
tax tax
rts rts
@ -366,7 +370,8 @@ SER_STATUS:
lda ACIA_STATUS lda ACIA_STATUS
ldx #0 ldx #0
sta (ptr1,x) sta (ptr1,x)
txa ; SER_ERR_OK .assert SER_ERR_OK = 0, error
txa
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -376,8 +381,8 @@ SER_STATUS:
; ;
SER_IOCTL: SER_IOCTL:
lda #<SER_ERR_INV_IOCTL ; We don't support ioclts for now lda #SER_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -81,8 +81,9 @@ INSTALL:
sbc #$00 sbc #$00
sta pagecount sta pagecount
@L1: lda #<EM_ERR_OK @L1: lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -57,8 +57,9 @@ JOY_COUNT = 2 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -175,6 +175,7 @@ INSTALL:
; Done, return zero. ; Done, return zero.
lda #MOUSE_ERR_OK lda #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
tax tax
rts rts
@ -331,8 +332,8 @@ INFO: jsr POS
; Must return an error code in .XA. ; Must return an error code in .XA.
; ;
IOCTL: lda #<MOUSE_ERR_INV_IOCTL ; We don't support ioctls, for now IOCTL: lda #MOUSE_ERR_INV_IOCTL ; We don't support ioctls, for now
ldx #>MOUSE_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -140,7 +140,8 @@ INSTALL:
; Done, return zero. ; Done, return zero.
ldx #>MOUSE_ERR_OK ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts
@ -315,8 +316,8 @@ POS: ldy #MOUSE_POS::XCOORD ; Structure offset
; Must return an error code in .XA. ; Must return an error code in .XA.
; ;
IOCTL: lda #<MOUSE_ERR_INV_IOCTL ; We don't support ioctls, for now IOCTL: lda #MOUSE_ERR_INV_IOCTL ; We don't support ioctls, for now
ldx #>MOUSE_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -148,8 +148,9 @@ SER_CLOSE:
; Done, return an error code ; Done, return an error code
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -217,22 +218,23 @@ SER_OPEN:
; Done ; Done
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
; Invalid parameter ; Invalid parameter
InvParam: InvParam:
lda #<SER_ERR_INIT_FAILED lda #SER_ERR_INIT_FAILED
ldx #>SER_ERR_INIT_FAILED ldx #0 ; return value is char
rts rts
; Baud rate not available ; Baud rate not available
InvBaud: InvBaud:
lda #<SER_ERR_BAUD_UNAVAIL lda #SER_ERR_BAUD_UNAVAIL
ldx #>SER_ERR_BAUD_UNAVAIL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -253,8 +255,8 @@ SER_GET:
@L1: lda RecvFreeCnt @L1: lda RecvFreeCnt
cmp #$ff cmp #$ff
bne @L2 bne @L2
lda #<SER_ERR_NO_DATA lda #SER_ERR_NO_DATA
ldx #>SER_ERR_NO_DATA ldx #0 ; return value is char
rts rts
; Check for flow stopped & enough free: release flow control ; Check for flow stopped & enough free: release flow control
@ -301,7 +303,7 @@ SER_PUT:
@L2: ldx SendFreeCnt @L2: ldx SendFreeCnt
bne @L3 bne @L3
lda #<SER_ERR_OVERFLOW ; X is already zero lda #SER_ERR_OVERFLOW ; X is already zero
rts rts
@L3: ldx SendTail @L3: ldx SendTail
@ -310,7 +312,8 @@ SER_PUT:
dec SendFreeCnt dec SendFreeCnt
lda #$ff lda #$ff
jsr TryToSend jsr TryToSend
lda #<SER_ERR_OK lda #SER_ERR_OK
.assert SER_ERR_OK = 0, error
tax tax
rts rts
@ -328,7 +331,8 @@ SER_STATUS:
sta (ptr1,x) sta (ptr1,x)
lda IndReg lda IndReg
sta ExecReg sta ExecReg
txa ; SER_ERR_OK .assert SER_ERR_OK = 0, error
txa
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -338,8 +342,8 @@ SER_STATUS:
; ;
SER_IOCTL: SER_IOCTL:
lda #<SER_ERR_INV_IOCTL ; We don't support ioclts for now lda #SER_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -81,8 +81,9 @@ INSTALL:
sbc #$00 sbc #$00
sta pagecount sta pagecount
@L1: lda #<EM_ERR_OK @L1: lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -149,8 +149,9 @@ SER_CLOSE:
; Done, return an error code ; Done, return an error code
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -218,22 +219,23 @@ SER_OPEN:
; Done ; Done
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
; Invalid parameter ; Invalid parameter
InvParam: InvParam:
lda #<SER_ERR_INIT_FAILED lda #SER_ERR_INIT_FAILED
ldx #>SER_ERR_INIT_FAILED ldx #0 ; return value is char
rts rts
; Baud rate not available ; Baud rate not available
InvBaud: InvBaud:
lda #<SER_ERR_BAUD_UNAVAIL lda #SER_ERR_BAUD_UNAVAIL
ldx #>SER_ERR_BAUD_UNAVAIL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -254,8 +256,8 @@ SER_GET:
@L1: lda RecvFreeCnt @L1: lda RecvFreeCnt
cmp #$ff cmp #$ff
bne @L2 bne @L2
lda #<SER_ERR_NO_DATA lda #SER_ERR_NO_DATA
ldx #>SER_ERR_NO_DATA ldx #0 ; return value is char
rts rts
; Check for flow stopped & enough free: release flow control ; Check for flow stopped & enough free: release flow control
@ -302,7 +304,7 @@ SER_PUT:
@L2: ldx SendFreeCnt @L2: ldx SendFreeCnt
bne @L3 bne @L3
lda #<SER_ERR_OVERFLOW ; X is already zero lda #SER_ERR_OVERFLOW ; X is already zero
rts rts
@L3: ldx SendTail @L3: ldx SendTail
@ -311,7 +313,8 @@ SER_PUT:
dec SendFreeCnt dec SendFreeCnt
lda #$ff lda #$ff
jsr TryToSend jsr TryToSend
lda #<SER_ERR_OK lda #SER_ERR_OK
.assert SER_ERR_OK = 0, error
tax tax
rts rts
@ -339,8 +342,8 @@ SER_STATUS:
; ;
SER_IOCTL: SER_IOCTL:
lda #<SER_ERR_INV_IOCTL ; We don't support ioclts for now lda #SER_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -59,7 +59,8 @@ JOY_RIGHT = $08
; ;
INSTALL: lda #JOY_ERR_OK INSTALL: lda #JOY_ERR_OK
ldx #>$0000 .assert JOY_ERR_OK = 0, error
tax
; rts ; Fall through ; rts ; Fall through
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -55,8 +55,9 @@ JOY_COUNT = $05 ; Number of joysticks we support
; Must return a JOY_ERR_xx code in .XA . ; Must return a JOY_ERR_xx code in .XA .
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -139,7 +139,8 @@ INSTALL:
; Done, return zero ; Done, return zero
ldx #>MOUSE_ERR_OK ldx #MOUSE_ERR_OK
.assert MOUSE_ERR_OK = 0, error
txa txa
rts rts
@ -300,8 +301,8 @@ INFO: jsr BUTTONS ; Will not touch ptr1
; specific data in ptr1, and the ioctl code in A. ; specific data in ptr1, and the ioctl code in A.
; Must return an error code in .XA . ; Must return an error code in .XA .
IOCTL: lda #<MOUSE_ERR_INV_IOCTL ; We don't support ioctls, for now IOCTL: lda #MOUSE_ERR_INV_IOCTL ; We don't support ioctls, for now
ldx #>MOUSE_ERR_INV_IOCTL ldx #0 ; return value is char
; rts ; Fall through ; rts ; Fall through
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -47,8 +47,9 @@ JOY_COUNT = 1 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead

View File

@ -125,8 +125,9 @@ INSTALL:
pla pla
sta $01 sta $01
plp plp
lda #<EM_ERR_OK lda #EM_ERR_OK
ldx #>EM_ERR_OK .assert EM_ERR_OK = 0, error
tax
rts rts
test64k: test64k:

View File

@ -53,8 +53,9 @@ JOY_COUNT = 2 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -10,7 +10,7 @@
.include "modload.inc" .include "modload.inc"
.import joy_clear_ptr .import joy_clear_ptr
.import return0 .import return0, return1
@ -31,7 +31,6 @@ _joy_unload:
jmp return0 ; Return JOY_ERR_OK jmp return0 ; Return JOY_ERR_OK
no_driver: no_driver:
tax ; X = 0
pla ; Remove pushed junk pla ; Remove pushed junk
lda #JOY_ERR_NO_DRIVER .assert JOY_ERR_NO_DRIVER = 1, error
rts jmp return1 ; Return JOY_ERR_NO_DRIVER

View File

@ -58,8 +58,9 @@ JOY_COUNT = 1 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -75,8 +75,9 @@ SER_UNINSTALL:
SER_CLOSE: SER_CLOSE:
; Disable interrupts ; Disable interrupts
; Done, return an error code ; Done, return an error code
lda #<SER_ERR_OK lda #SER_ERR_OK
ldx #>SER_ERR_OK .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -190,8 +191,8 @@ SER_OPEN:
cmp #SER_BAUD_134_5 cmp #SER_BAUD_134_5
beq setbaudrate beq setbaudrate
lda #<SER_ERR_BAUD_UNAVAIL lda #SER_ERR_BAUD_UNAVAIL
ldx #>SER_ERR_BAUD_UNAVAIL ldx #0 ; return value is char
rts rts
setprescaler: setprescaler:
stx TIM4CTLA stx TIM4CTLA
@ -238,12 +239,13 @@ checkhs:
lda contrl lda contrl
ora #RxIntEnable|ResetErr ora #RxIntEnable|ResetErr
sta SERCTL sta SERCTL
lda #<SER_ERR_OK lda #SER_ERR_OK
ldx #>SER_ERR_OK .assert SER_ERR_OK = 0, error
tax
rts rts
invparameter: invparameter:
lda #<SER_ERR_INIT_FAILED lda #SER_ERR_INIT_FAILED
ldx #>SER_ERR_INIT_FAILED ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -255,8 +257,8 @@ SER_GET:
lda RxPtrIn lda RxPtrIn
cmp RxPtrOut cmp RxPtrOut
bne GetByte bne GetByte
lda #<SER_ERR_NO_DATA lda #SER_ERR_NO_DATA
ldx #>SER_ERR_NO_DATA ldx #0 ; return value is char
rts rts
GetByte: GetByte:
ldy RxPtrOut ldy RxPtrOut
@ -277,8 +279,8 @@ SER_PUT:
ina ina
cmp TxPtrOut cmp TxPtrOut
bne PutByte bne PutByte
lda #<SER_ERR_OVERFLOW lda #SER_ERR_OVERFLOW
ldx #>SER_ERR_OVERFLOW ldx #0 ; return value is char
rts rts
PutByte: PutByte:
ldy TxPtrIn ldy TxPtrIn
@ -296,7 +298,8 @@ PutByte:
sta TxDone sta TxDone
plp plp
@L1: @L1:
lda #<SER_ERR_OK lda #SER_ERR_OK
.assert SER_ERR_OK = 0, error
tax tax
rts rts
@ -317,8 +320,8 @@ SER_STATUS:
; Must return an SER_ERR_xx code in a/x. ; Must return an SER_ERR_xx code in a/x.
SER_IOCTL: SER_IOCTL:
lda #<SER_ERR_INV_IOCTL lda #SER_ERR_INV_IOCTL
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -8,7 +8,7 @@
.include "mouse-kernel.inc" .include "mouse-kernel.inc"
.include "modload.inc" .include "modload.inc"
.import return0 .import return0, return1
@ -29,7 +29,6 @@ _mouse_unload:
jmp return0 ; Return MOUSE_ERR_OK jmp return0 ; Return MOUSE_ERR_OK
no_driver: no_driver:
tax ; X = 0
pla ; Remove pushed junk pla ; Remove pushed junk
lda #<MOUSE_ERR_NO_DRIVER .assert MOUSE_ERR_NO_DRIVER = 1, error
rts jmp return1 ; Return MOUSE_ERR_NO_DRIVER

View File

@ -53,7 +53,8 @@ JOY_COUNT = 2 ; Number of joysticks we support
INSTALL: INSTALL:
lda #JOY_ERR_OK lda #JOY_ERR_OK
ldx #0 .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -50,8 +50,9 @@ padbuffer: .res JOY_COUNT
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead

View File

@ -51,8 +51,9 @@ JOY_COUNT = 2 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -58,8 +58,9 @@ JOY_COUNT = 2 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -157,8 +157,9 @@ SER_CLOSE:
; Done, return an error code ; Done, return an error code
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -225,22 +226,23 @@ SER_OPEN:
; Done ; Done
lda #<SER_ERR_OK lda #SER_ERR_OK
tax ; A is zero .assert SER_ERR_OK = 0, error
tax
rts rts
; Invalid parameter ; Invalid parameter
InvParam: InvParam:
lda #<SER_ERR_INIT_FAILED lda #SER_ERR_INIT_FAILED
ldx #>SER_ERR_INIT_FAILED ldx #0 ; return value is char
rts rts
; Baud rate not available ; Baud rate not available
InvBaud: InvBaud:
lda #<SER_ERR_BAUD_UNAVAIL lda #SER_ERR_BAUD_UNAVAIL
ldx #>SER_ERR_BAUD_UNAVAIL ldx #0 ; return value is char
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -261,8 +263,8 @@ SER_GET:
@L1: lda RecvFreeCnt ; (25) @L1: lda RecvFreeCnt ; (25)
cmp #$ff cmp #$ff
bne @L2 bne @L2
lda #<SER_ERR_NO_DATA lda #SER_ERR_NO_DATA
ldx #>SER_ERR_NO_DATA ldx #0 ; return value is char
rts rts
; Check for flow stopped & enough free: release flow control ; Check for flow stopped & enough free: release flow control
@ -309,7 +311,7 @@ SER_PUT:
@L2: ldx SendFreeCnt @L2: ldx SendFreeCnt
bne @L3 bne @L3
lda #<SER_ERR_OVERFLOW ; X is already zero lda #SER_ERR_OVERFLOW ; X is already zero
rts rts
@L3: ldx SendTail @L3: ldx SendTail
@ -318,7 +320,8 @@ SER_PUT:
dec SendFreeCnt dec SendFreeCnt
lda #$ff lda #$ff
jsr TryToSend jsr TryToSend
lda #<SER_ERR_OK lda #SER_ERR_OK
.assert SER_ERR_OK = 0, error
tax tax
rts rts
@ -331,7 +334,8 @@ SER_STATUS:
lda ACIA_STATUS lda ACIA_STATUS
ldx #0 ldx #0
sta (ptr1,x) sta (ptr1,x)
txa ; SER_ERR_OK .assert SER_ERR_OK = 0, error
txa
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
@ -341,8 +345,8 @@ SER_STATUS:
; ;
SER_IOCTL: SER_IOCTL:
lda #<SER_ERR_INV_IOCTL ; We don't support ioclts for now lda #SER_ERR_INV_IOCTL ; We don't support ioclts for now
ldx #>SER_ERR_INV_IOCTL ldx #0 ; return value is char
rts ; Run into IRQ instead rts ; Run into IRQ instead
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------

View File

@ -10,7 +10,7 @@
.include "modload.inc" .include "modload.inc"
.import ser_clear_ptr .import ser_clear_ptr
.import return0 .import return0, return1
@ -28,10 +28,10 @@ _ser_unload:
tax tax
pla ; Get pointer to driver pla ; Get pointer to driver
jsr _mod_free ; Free the driver jsr _mod_free ; Free the driver
jmp return0 ; Return SER_ERR_OK .assert SER_ERR_OK = 0, error
jmp return0
no_driver: no_driver:
tax ; X = 0
pla ; Remove pushed junk pla ; Remove pushed junk
lda #<SER_ERR_NO_DRIVER .assert SER_ERR_NO_DRIVER = 1, error
rts jmp return1

View File

@ -46,8 +46,9 @@ JOY_COUNT = 1 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead

View File

@ -54,8 +54,9 @@ INSTALL:
sta VIA2::PRB sta VIA2::PRB
; We could detect joysticks because with previous command bit0,1,2,3,4 should be set to 1 after ; We could detect joysticks because with previous command bit0,1,2,3,4 should be set to 1 after
; But if some one press fire or press direction, we could reach others values which could break joystick detection. ; But if some one press fire or press direction, we could reach others values which could break joystick detection.
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -119,16 +119,16 @@ INSTALL:
bne @setok bne @setok
@notpresent: @notpresent:
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE ldx #0 ; return value is char
rts rts
@setok: @setok:
lda #0 lda #0
sta pagecount sta pagecount
stx pagecount+1 stx pagecount+1
lda #<EM_ERR_OK .assert EM_ERR_OK = 0, error
ldx #>EM_ERR_OK tax
rts rts
check: check:

View File

@ -71,12 +71,13 @@ INSTALL:
ldx #$FF ldx #$FF
stx curpage ; Invalidate the current page stx curpage ; Invalidate the current page
inx ; X = 0 .assert EM_ERR_OK = 0, error
txa ; A = X = EM_ERR_OK inx
txa
rts rts
nomem: ldx #>EM_ERR_NO_DEVICE nomem: ldx #0 ; return value is char
lda #<EM_ERR_NO_DEVICE lda #EM_ERR_NO_DEVICE
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -53,8 +53,9 @@ JOY_COUNT = 3 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------

View File

@ -57,8 +57,9 @@ JOY_COUNT = 1 ; Number of joysticks we support
; ;
INSTALL: INSTALL:
lda #<JOY_ERR_OK lda #JOY_ERR_OK
ldx #>JOY_ERR_OK .assert JOY_ERR_OK = 0, error
tax
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------