37 lines
668 B
ArmAsm
37 lines
668 B
ArmAsm
|
|
//
|
|
// Official Kernal routine, described in:
|
|
//
|
|
// - [RG64] C64 Programmer's Reference Guide - page 282
|
|
// - [CM64] Compute's Mapping the Commodore 64 - page 230
|
|
//
|
|
// CPU registers that has to be preserved (see [RG64]): .Y
|
|
//
|
|
|
|
|
|
clrchn_real:
|
|
|
|
// Handle IEC input device
|
|
lda DFLTN
|
|
jsr iec_check_devnum
|
|
bcs !+
|
|
// Previous device was IEC one - send UNTALK first
|
|
jsr UNTLK
|
|
!:
|
|
// Restore output device to default
|
|
lda DFLTO
|
|
jsr iec_check_devnum
|
|
bcs !+
|
|
// Handle IEC output device
|
|
jsr UNLSN
|
|
!:
|
|
clrchn_reset: // entry needed by CHRIN
|
|
// Set input device number to keyboard
|
|
lda #$00
|
|
sta DFLTN
|
|
// Set output device number to screen
|
|
lda #$03
|
|
sta DFLTO
|
|
|
|
rts
|