=== ==================== === === KERNAL ($e000-$ffff) === === ==================== === http://www.everything2.com/index.pl?node_id=747887 Memory Map ┌──────┬────────┬──────────────────┬───────────────────────────────────────────────────────────┐ │ ff96 │ TKSA │ │ Send secondary addr after talk │ │ │ │ │ in: A=secondary address │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffb2 │ TALK │ │ Make SERIAL device talk │ │ │ │ │ in: A=device number │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffa5 │ ACPTR │ │ Input byte from SERIAL │ │ │ │ │ out:A=byte, C=1 and ST=2 if timeout │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffab │ UNTLK │ │ Untalk all SERIAL devices │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffba │ SETLSF │ │ Set file parameters │ │ │ │ │ in: A=logical file number │ │ │ │ │ in: X=device number │ │ │ │ │ in: Y=secondary addr │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffb7 │ READST │ │ Read I/O status byte │ │ │ │ │ out: A=status byte │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffbd │ SETNAM │ │ Set file name │ │ │ │ │ in: A=length of file name │ │ │ │ │ in: X=pointer to name LB │ │ │ │ │ in: Y=pointer to name HB │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffc0 │ OPEN │ ($031a) -> $f34a │ Open logical file │ │ │ │ │ out: A=error# if C==1 │ │ │ │ │ Comment: First call SETLFS and SETNAM with appropriate │ │ │ │ │ parameters. │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffc3 │ CLOSE │ ($031c) -> $f291 │ Close a logical file │ │ │ │ │ in: A=logical file number │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffcf │ CHRIN │ ($0324) -> $f147 │ Input character │ │ │ │ │ out: A=character, C=1 and ST=error │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffd2 │ CHROUT │ ($0326) -> $f1ca │ Output character » Endet bei $e6b5 rts │ │ │ │ │ in: A=character, C=1 and ST=error │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffd5 │ LOAD │ ($0330) -> $f49e │ Load after call SETLSF, SETNAM │ │ │ │ │ in: A=0 load, a=1 verify │ │ │ │ │ in: X=dest.addr LB │ │ │ │ │ in: Y=dest.addr HB │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffd8 │ SAVE │ ($0332) -> $f5dd │ Save after call SETLSF, SETNAM │ │ │ │ │ in: A=zero page pointer to start.addr │ │ │ │ │ in: X=dest.addr LB │ │ │ │ │ in: Y=dest.addr HB │ ├──────┼────────┼──────────────────┼───────────────────────────────────────────────────────────┤ │ ffe4 │ GETIN │ ($032a) -> $f13e │ Get a byte from channel │ │ │ │ │ out: keyboard: A=character, A=0 if buffer empty │ │ │ │ │ out: RS232: A=status byte │ │ │ │ │ out: serial: A=status byte │ │ │ │ │ out: tape: A=status byte │ └──────┴────────┴──────────────────┴───────────────────────────────────────────────────────────┘
Fehlerhinweise, Kommentare und Anregungen sind mir herzlich willkommen.
Letzte Aktualisierung: 2017-02-23