=== ==================== ===
=== 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