Files
open-roms/c64/kernal/iec/iec_devnum_check.s
T

23 lines
498 B
ArmAsm

;;
;; Checks whether device numbe (in .A) is a correct IEC device number
;;
;; Preserves .A, .X and .Y
;;
iec_devnum_check:
;; 0, 1, 2, or 3 are illegal - reserved for non-IEC devices on Commodore
cmp #$04
bcs +
;; FALLTROUGH
iec_devnum_check_failed:
sec ; indicate non-IEC device
rts
*
;; 31 and above are illegal too, due to IEC command encoding scheme,
;; see https://www.pagetable.com/?p=1031
cmp #$1F
bcs iec_devnum_check_failed
;; Carry is clear here - indicates IEC device
rts