Global { InputName "rom500.bin"; OutputName "rom500.s"; StartAddr $E000; PageLength 0; Comments 4; }; Range { Start $E612; End $E631; Type Code; }; Range { Start $E632; End $E640; Type ByteTable; }; Range { Start $E856; End $E86B; Type TextTable; }; Range { Start $EA51; End $EA84; Type RtsTable; }; Range { Start $EAAA; End $EAAA; Type ByteTable; }; Range { Start $EAB1; End $EC30; Type ByteTable; }; Range { Start $EC31; End $EC39; Type TextTable; }; Range { Start $EC3A; End $EC6B; Type ByteTable; }; Range { Start $EC6C; End $ECAB; Type RtsTable; }; Range { Start $ECAC; End $ECB5; Type ByteTable; }; Range { Start $ECB6; End $ECEE; Type TextTable; }; Range { Start $ECEF; End $ED07; Type ByteTable; }; Range { Start $ED08; End $ED11; Type AddrTable; }; Range { Start $ED12; End $EDFF; Type ByteTable; }; Range { Start $EED1; End $EED1; Type TextTable; }; Range { Start $EED2; End $EED3; Type AddrTable; }; Range { Start $EED4; End $EED4; Type TextTable; }; Range { Start $EED5; End $EED6; Type AddrTable; }; Range { Start $EED7; End $EED7; Type TextTable; }; Range { Start $EED8; End $EED9; Type AddrTable; }; Range { Start $EEDA; End $EEDA; Type TextTable; }; Range { Start $EEDB; End $EEDC; Type AddrTable; }; Range { Start $EEDD; End $EEDD; Type TextTable; }; Range { Start $EEDE; End $EEDF; Type AddrTable; }; Range { Start $EEE0; End $EEE0; Type TextTable; }; Range { Start $EEE1; End $EEE2; Type AddrTable; }; Range { Start $EEE3; End $EEE3; Type TextTable; }; Range { Start $EEE4; End $EEE5; Type AddrTable; }; Range { Start $EEE6; End $EEE6; Type TextTable; }; Range { Start $EEE7; End $EEE8; Type AddrTable; }; Range { Start $EEE9; End $EEE9; Type TextTable; }; Range { Start $EEEA; End $EEEB; Type AddrTable; }; Range { Start $EEEC; End $EEEC; Type TextTable; }; Range { Start $EEED; End $EEEE; Type AddrTable; }; Range { Start $EEEF; End $EEEF; Type TextTable; }; Range { Start $EEF0; End $EEF1; Type AddrTable; }; Range { Start $EEF2; End $EEF2; Type TextTable; }; Range { Start $EEF3; End $EEF4; Type AddrTable; }; Range { Start $EF26; End $EF40; Type TextTable; }; Range { Start $F1C8; End $F1C9; Type ByteTable; }; Range { Start $F1CA; End $F222; Type TextTable; }; Range { Start $F99C; End $F99D; Type ByteTable; }; Range { Start $FB09; End $FB3C; Type AddrTable; }; Range { Start $FF36; End $FF6E; Type ByteTable; }; Range { Start $FFFA; End $FFFF; Type AddrTable; }; # CPU registers Label { Name "e6509"; Addr $00; Comment "6509 execution bank"; }; Label { Name "i6509"; Addr $01; Comment "6509 indirect bank"; }; # Kernal indirect address variables Label { Name "fnadr"; Addr $90; size 3; Comment "Far address of file name"; }; Label { Name "sal"; Addr $93; Comment "Start address low"; }; Label { Name "sah"; Addr $94; Comment "Start address high"; }; Label { Name "sas"; Addr $95; Comment "Start address seg"; }; Label { Name "eal"; Addr $96; Comment "End address low"; }; Label { Name "eah"; Addr $97; Comment "End address high"; }; Label { Name "eas"; Addr $98; Comment "End address seg"; }; Label { Name "stal"; Addr $99; }; Label { Name "stah"; Addr $9A; }; Label { Name "stas"; Addr $9B; }; Label { Name "status"; Addr $9C; Comment "Status byte"; }; Label { Name "fnlen"; Addr $9D; Comment "Length of file name"; }; Label { Name "la"; Addr $9E; Comment "Logical file number"; }; Label { Name "fa"; Addr $9F; Comment "Device address"; }; Label { Name "sa"; Addr $A0; Comment "Secondary address"; }; Label { Name "dfltn"; Addr $A1; Comment "Current input device"; }; Label { Name "dflto"; Addr $A2; Comment "Current output device"; }; Label { Name "tape1"; Addr $A3; size 3; Comment "Address of tape buffer"; }; Label { Name "ribuf"; Addr $A6; size 3; Comment "Address of rs232 buffer"; }; Label { Name "stkey"; Addr $A9; Comment "Stop key flag"; }; Label { Name "c3po"; Addr $AA; Comment "IEC buffer flag"; }; Label { Name "bsour"; Addr $AB; Comment "IEC output buffer"; }; Label { Name "ipoint"; Addr $AC; size 2; Comment "RAM indirect pointer"; }; # Monitor variables Label { Name "pch"; Addr $AE; Comment "Monitor: PC low"; }; Label { Name "pcl"; Addr $AF; Comment "Monitor: PC high"; }; Label { Name "sp"; Addr $B4; Comment "Monitor: stack pointer"; }; Label { Name "xi6509"; Addr $B5; Comment "Monitor: indirect bank"; }; Label { Name "invh"; Addr $B7; Comment "Monitor: user irq low"; }; Label { Name "invl"; Addr $B8; Comment "Monitor: user irq high"; }; Label { Name "tmp1"; Addr $B9; size 2; Comment "Monitor: temp ptr 1"; }; Label { Name "tmp2"; Addr $BB; size 2; Comment "Monitor: temp ptr 2"; }; Label { Name "tmpc"; Addr $BD; Comment "Monitor: last command"; }; Label { Name "t6509"; Addr $BE; Comment "Monitor: current indirect bank"; }; Label { Name "ddisk"; Addr $BF; Comment "Monitor: disk device number"; }; # Indirect pointers screen editor Label { Name "pkybuf"; Addr $C0; size 2; Comment "Start of function keys"; }; Label { Name "keypnt"; Addr $C2; size 2; }; Label { Name "sedsal"; Addr $C4; size 2; }; Label { Name "sedeal"; Addr $C6; size 2; }; Label { Name "pnt"; Addr $C8; size 2; Comment "Current position in video RAM"; }; # Editor variables Label { Name "tblx"; Addr $CA; Comment "Cursor position: line"; }; Label { Name "pntr"; Addr $CB; Comment "Cursor position: column"; }; Label { Name "grmode"; Addr $CC; Comment "Flag for text/graph mode"; }; Label { Name "lstx"; Addr $CD; Comment "Scancode of last key pressed"; }; Label { Name "lstp"; Addr $CE; }; Label { Name "lsxp"; Addr $CF; }; Label { Name "crsw"; Addr $D0; }; Label { Name "ndx"; Addr $D1; }; Label { Name "qtsw"; Addr $D2; Comment "Quote mode flag"; }; Label { Name "insrt"; Addr $D3; Comment "Insert mode flag"; }; Label { Name "config"; Addr $D4; Comment "Cursor type"; }; Label { Name "indx"; Addr $D5; }; Label { Name "kyndx"; Addr $D6; }; Label { Name "rptcnt"; Addr $D7; Comment "Keyboard repeat counter"; }; Label { Name "delay"; Addr $D8; Comment "Kbd repeat delay counter"; }; Label { Name "sedt1"; Addr $D9; Comment "Screen editor temp storage #1"; }; Label { Name "sedt2"; Addr $DA; Comment "Screen editor temp storage #2"; }; Label { Name "data"; Addr $DB; Comment "Current output character"; }; Label { Name "sctop"; Addr $DC; Comment "Top line of current window"; }; Label { Name "scbot"; Addr $DD; Comment "Bottom line of current window"; }; Label { Name "sclf"; Addr $DE; Comment "Left border of current window"; }; Label { Name "scrt"; Addr $DF; Comment "Right border of current window"; }; Label { Name "modkey"; Addr $E0; Comment "Flag for shift/control keys"; }; Label { Name "norkey"; Addr $E1; }; Label { Name "bitabl"; Addr $E2; size 4; }; # P500 special Label { Name "blnon"; Addr $E6; Comment "Blinking cursor on"; }; Label { Name "blncnt"; Addr $E7; Comment "Blink counter"; }; Label { Name "user"; Addr $E8; size 2; Comment "Ptr to color ram"; }; Label { Name "tcolor"; Addr $EA; Comment "Temporary color"; }; Label { Name "blnsw"; Addr $EB; Comment "Blink switch"; }; Label { Name "color"; Addr $EC; Comment "Character color"; }; Label { Name "gdcol"; Addr $ED; Comment "Color behind cursor"; }; Label { Name "saver"; Addr $EE; Comment "Temp store for output char"; }; Label { Name "scrseg"; Addr $EF; Comment "Segment of video ram"; }; # Stack Label { Name "stack"; Addr $100; size 255; }; Label { Name "stackp"; Addr $1FF; }; # Indirect vectors Label { Name "cinv"; Addr $300; size 2; Comment "IRQ indirect vector"; }; Label { Name "cbinv"; Addr $302; size 2; Comment "BRK indirect vector"; }; Label { Name "nminv"; Addr $304; size 2; Comment "NMI indirect vector"; }; Label { Name "iopen"; Addr $306; size 2; Comment "Open file vector"; }; Label { Name "iclose"; Addr $308; size 2; Comment "Close file vector"; }; Label { Name "ichkin"; Addr $30A; size 2; }; Label { Name "ickout"; Addr $30C; size 2; }; Label { Name "iclrch"; Addr $30E; size 2; }; Label { Name "ibasin"; Addr $310; size 2; }; Label { Name "ibsout"; Addr $312; size 2; }; Label { Name "istop"; Addr $314; size 2; }; Label { Name "igetin"; Addr $316; size 2; }; Label { Name "iclall"; Addr $318; size 2; }; Label { Name "iload"; Addr $31A; size 2; }; Label { Name "isave"; Addr $31C; size 2; }; Label { Name "usrcmd"; Addr $31E; size 2; Comment "Vector for monitor command extensions"; }; Label { Name "escvec"; Addr $320; size 2; }; Label { Name "ctlvec"; Addr $322; size 2; }; Label { Name "isecnd"; Addr $324; size 2; }; Label { Name "itksa"; Addr $326; size 2; }; Label { Name "iacptr"; Addr $328; size 2; }; Label { Name "iciout"; Addr $32A; size 2; }; Label { Name "iuntlk"; Addr $32C; size 2; }; Label { Name "iunlsn"; Addr $32E; size 2; }; Label { Name "ilistn"; Addr $330; size 2; }; Label { Name "italk"; Addr $332; size 2; }; # File number handling Label { Name "lat"; Addr $334; size 10; Comment "Logical file number table"; }; Label { Name "fat"; Addr $33E; size 10; Comment "Device number table"; }; Label { Name "sat"; Addr $348; size 10; Comment "Secondary address table"; }; # Memory pointers and sizes Label { Name "lowadr"; Addr $352; size 3; Comment "Start of system memory"; }; Label { Name "hiadr"; Addr $355; size 3; Comment "End of system memory"; }; Label { Name "memstr"; Addr $358; size 3; Comment "Start of user memory"; }; Label { Name "memsiz"; Addr $35B; size 3; Comment "End of user memory"; }; # Disk Label { Name "timout"; Addr $35E; Comment "IEEE timeout enable"; }; Label { Name "verck"; Addr $35F; Comment "Load/verify flag"; }; Label { Name "ldtnd"; Addr $360; Comment "Device table index"; }; Label { Name "msgflg"; Addr $361; Comment "Message flag"; }; Label { Name "bufpt"; Addr $362; Comment "Cassette buffer index"; }; # Kernal temporaries Label { Name "t1"; Addr $363; }; Label { Name "t2"; Addr $364; }; Label { Name "xsav"; Addr $365; }; Label { Name "savx"; Addr $366; }; Label { Name "svxt"; Addr $367; }; Label { Name "temp"; Addr $368; }; Label { Name "alarm"; Addr $369; }; # Kernel cassette variables Label { Name "itape"; Addr $36A; size 2; Comment "Vector: Tape routines"; }; Label { Name "cassvo"; Addr $36C; }; Label { Name "aservo"; Addr $36D; }; Label { Name "caston"; Addr $36E; }; Label { Name "relsal"; Addr $36F; }; Label { Name "relsah"; Addr $370; }; Label { Name "relsas"; Addr $371; }; Label { Name "oldinv"; Addr $372; size 3; }; Label { Name "cas1"; Addr $375; }; # RS232 Label { Name "m51ctr"; Addr $376; }; Label { Name "m51cdr"; Addr $377; }; # Label { Name "rsstat"; Addr $37A; Comment "rs232 status byte"; }; Label { Name "dcdsr"; Addr $37B; }; Label { Name "ridbs"; Addr $37C; }; Label { Name "ridbe"; Addr $37D; }; # Screen editor variables Label { Name "pkyend"; Addr $380; size 2; }; Label { Name "keyseg"; Addr $382; Comment "Segment of function key texts"; }; Label { Name "rvs"; Addr $383; Comment "Reverse mode flag"; }; Label { Name "lintmp"; Addr $384; }; Label { Name "lstchr"; Addr $385; }; Label { Name "insflg"; Addr $386; Comment "Insert mode flag"; }; Label { Name "scrdis"; Addr $387; }; Label { Name "bitmsk"; Addr $388; }; Label { Name "keyidx"; Addr $389; }; Label { Name "logscr"; Addr $38A; }; Label { Name "bellmd"; Addr $38B; Comment "Bell on/off flag"; }; Label { Name "pagsav"; Addr $38C; }; Label { Name "keysiz"; Addr $38D; size 20; Comment "Sizes of function key texts"; }; Label { Name "tab"; Addr $3A1; size 10; }; Label { Name "keyd"; Addr $3AB; size 10; Comment "Keyboard buffer"; }; # Several more indirect vectors Label { Name "funvec"; Addr $3B5; size 2; Comment "Vector: funktion key handler"; }; Label { Name "iwrtvrm"; Addr $3B7; size 2; Comment "Vector: video ram write routine"; }; Label { Name "iwrtcrm"; Addr $3B9; size 2; Comment "Vector: color ram write routine"; }; Label { Name "iunkwn1"; Addr $3BB; size 2; }; Label { Name "iunkwn2"; Addr $3BD; size 2; }; # System warm start variables and vectors Label { Name "evect"; Addr $3F8; size 5; Comment "Warm start vector and flags"; }; # Free ram Label { Name "ramloc"; Addr $400; Comment "First free ram location"; }; # IPC buffer Label { Name "ipb"; Addr $800; size 16; }; Label { Name "ijtab"; Addr $810; size 256; }; Label { Name "ipptab"; Addr $910; size 128; }; # I/O area and chips Label { Name "charrom"; Addr $C000; }; Label { Name "vidram"; Addr $D000; size $0400; }; Label { Name "clrram"; Addr $D400; size $0400; }; # VIC Label { Name "vic"; Addr $D800; }; Label { Name "vic_addr";Addr $D818; }; # SID Label { Name "sid_s1freq"; Addr $DA00; size 2; }; Label { Name "sid_s1pw"; Addr $DA02; size 2; }; Label { Name "sid_s1ctl"; Addr $DA04; }; Label { Name "sid_s1ad"; Addr $DA05; }; Label { Name "sid_s1sr"; Addr $DA06; }; Label { Name "sid_s2freq"; Addr $DA07; size 2; }; Label { Name "sid_s2pw"; Addr $DA09; size 2; }; Label { Name "sid_s2ctl"; Addr $DA0B; }; Label { Name "sid_s2ad"; Addr $DA0C; }; Label { Name "sid_s2sr"; Addr $DA0D; }; Label { Name "sid_s3freq"; Addr $DA0E; size 2; }; Label { Name "sid_s3pw"; Addr $DA10; size 2; }; Label { Name "sid_s3ctl"; Addr $DA12; }; Label { Name "sid_s3ad"; Addr $DA13; }; Label { Name "sid_s3sr"; Addr $DA14; }; Label { Name "sid_filter"; Addr $DA15; size 2; }; Label { Name "sid_fltctl"; Addr $DA17; }; Label { Name "sid_volume"; Addr $DA18; }; Label { Name "sid_potx"; Addr $DA19; }; Label { Name "sid_poty"; Addr $DA1A; }; Label { Name "sid_random"; Addr $DA1B; }; Label { Name "sid_env3"; Addr $DA1C; }; # CIA #1 (coprocessor communication) Label { Name "cia1_pra"; Addr $DB00; }; Label { Name "cia1_prb"; Addr $DB01; }; Label { Name "cia1_ddra"; Addr $DB02; }; Label { Name "cia1_ddrb"; Addr $DB03; }; Label { Name "cia1_talo"; Addr $DB04; }; Label { Name "cia1_tahi"; Addr $DB05; }; Label { Name "cia1_tblo"; Addr $DB06; }; Label { Name "cia1_tbhi"; Addr $DB07; }; Label { Name "cia1_tod10"; Addr $DB08; }; Label { Name "cia1_todsec"; Addr $DB09; }; Label { Name "cia1_todmin"; Addr $DB0A; }; Label { Name "cia1_todhr"; Addr $DB0B; }; Label { Name "cia1_sdr"; Addr $DB0C; }; Label { Name "cia1_icr"; Addr $DB0D; }; Label { Name "cia1_cra"; Addr $DB0E; }; Label { Name "cia1_crb"; Addr $DB0F; }; # CIA #2 (IEC data, userport, game controller) Label { Name "cia2_pra"; Addr $DC00; }; Label { Name "cia2_prb"; Addr $DC01; }; Label { Name "cia2_ddra"; Addr $DC02; }; Label { Name "cia2_ddrb"; Addr $DC03; }; Label { Name "cia2_talo"; Addr $DC04; }; Label { Name "cia2_tahi"; Addr $DC05; }; Label { Name "cia2_tblo"; Addr $DC06; }; Label { Name "cia2_tbhi"; Addr $DC07; }; Label { Name "cia2_tod10"; Addr $DC08; }; Label { Name "cia2_todsec"; Addr $DC09; }; Label { Name "cia2_todmin"; Addr $DC0A; }; Label { Name "cia2_todhr"; Addr $DC0B; }; Label { Name "cia2_sdr"; Addr $DC0C; }; Label { Name "cia2_icr"; Addr $DC0D; }; Label { Name "cia2_cra"; Addr $DC0E; }; Label { Name "cia2_crb"; Addr $DC0F; }; # ACIA Label { Name "acia_data"; Addr $DD00; }; Label { Name "acia_status"; Addr $DD01; }; Label { Name "acia_cmd"; Addr $DD02; }; Label { Name "acia_ctrl"; Addr $DD03; }; # Triport #1 Label { Name "tpi1_pa"; Addr $DE00; }; Label { Name "tpi1_pb"; Addr $DE01; }; Label { Name "tpi1_pc"; Addr $DE02; }; Label { Name "tpi1_ddra"; Addr $DE03; }; Label { Name "tpi1_ddrb"; Addr $DE04; }; Label { Name "tpi1_ddrc"; Addr $DE05; }; Label { Name "tpi1_ctrl"; Addr $DE06; }; Label { Name "tpi1_air"; Addr $DE07; }; # Triport #2 Label { Name "tpi2_pa"; Addr $DF00; }; Label { Name "tpi2_pb"; Addr $DF01; }; Label { Name "tpi2_pc"; Addr $DF02; }; Label { Name "tpi2_ddra"; Addr $DF03; }; Label { Name "tpi2_ddrb"; Addr $DF04; }; Label { Name "tpi2_ddrc"; Addr $DF05; }; Label { Name "tpi2_ctrl"; Addr $DF06; }; Label { Name "tpi2_air"; Addr $DF07; }; # ROM start addresses Label { Name "basic"; Addr $8000; }; # Jump table at start of kernal ROM Label { Name "jmoncld"; Addr $E000; Comment "Jump vector: Monitor cold start"; }; Label { Name "jcint"; Addr $E004; Comment "Jump vector: Screen editor init"; }; Label { Name "jrdkey"; Addr $E007; Comment "Jump vector: Read a key from the keyboard"; }; Label { Name "jscrget"; Addr $E00A; Comment "Jump vector: Read key from screen"; }; Label { Name "jprint"; Addr $E00D; Comment "Jump vector: Print character on screen"; }; Label { Name "jscrorg"; Addr $E010; Comment "Jump vecror: Return screen dimensions"; }; Label { Name "jscnkey"; Addr $E013; Comment "Jump vector: keyboard scan"; }; Label { Name "jplot"; Addr $E019; Comment "Jump vector: Get/set the cursor position"; }; Label { Name "jmovcur"; Addr $E016; Comment "Jump vector: Set screen pointers to cursor position"; }; Label { Name "jiobase"; Addr $E01C; Comment "Jump vector: Return CIA base address"; }; Label { Name "jescape"; Addr $E01F; Comment "Jump vector: Handle an escape sequence"; }; Label { Name "jfunkey"; Addr $E022; Comment "Jump vector: Get/set/list function keys"; }; # Mixed kernal routines Label { Name "plot"; Addr $E025; Comment "Get/set the cursor position depending on the carry flag"; }; Label { Name "rdplt"; Addr $E035; }; Label { Name "nofunc"; Addr $E039; }; Label { Name "iobase"; Addr $E03A; Comment "Return CIA base address"; }; Label { Name "escape"; Addr $EA3C; Comment "Handle an escape sequence"; }; Label { Name "scrorg"; Addr $E03F; Comment "Return screen dimensions"; }; Label { Name "cint"; Addr $E044; Comment "Screen editor init"; }; Label { Name "clrscr"; Addr $E0C5; Comment "Clear the screen, cursor home"; }; Label { Name "home"; Addr $E0D3; Comment "Cursor home"; }; Label { Name "stu10"; Addr $E0D9; }; Label { Name "movcur"; Addr $E0DF; Comment "Set screen pointers to cursor position"; }; Label { Name "scrset"; Addr $E0E1; }; Label { Name "rdkey"; Addr $E0F4; Comment "Read a key from kbd and return it in A"; }; Label { Name "rdkbuf"; Addr $E10A; Comment "Remove key from kbd buffer and return it in A"; }; Label { Name "scrinp"; Addr $E11F; Comment "Screen input"; }; Label { Name "scrget"; Addr $E174; Comment "Read char from screen"; }; Label { Name "qtswc"; Addr $E1C8; Comment "Switch quote mode depending on char in A"; }; Label { Name "doblnk"; Addr $E207; }; Label { Name "dspp"; Addr $E213; }; Label { Name "clrlin"; Addr $E224; }; Label { Name "clrprt"; Addr $E229; }; Label { Name "get1ch"; Addr $E23F; Comment "Get a character from the screen"; }; Label { Name "getych"; Addr $E241; }; Label { Name "crtmode"; Addr $E251; Comment "Switch the VIC to normal or graphics character set"; }; Label { Name "grcrt"; Addr $E253; }; Label { Name "txtcrt"; Addr $E257; }; Label { Name "pagkey"; Addr $E267; Comment "Switch to the indirect segment containing the key buffer"; }; Label { Name "pagscr"; Addr $E26E; Comment "Switch to the indirect segment containing the video screen"; }; Label { Name "pagsub"; Addr $E271; Comment "Switch to the indirect segment in A"; }; Label { Name "pagres"; Addr $E27C; Comment "Restore the indirect segment"; }; Label { Name "print"; Addr $E284; Comment "Print character on screen"; }; Label { Name "ntcn"; Addr $E2E0; }; Label { Name "ctldisp"; Addr $E317; Comment "Control code dispatcher"; }; Label { Name "ctluser"; Addr $E322; Comment "User control code jump vector"; }; Label { Name "cdnup"; Addr $E325; Comment "Handle cursor up/down"; }; Label { Name "cursdn1"; Addr $E32A; }; Label { Name "cdrts"; Addr $E332; }; Label { Name "cursup"; Addr $E334; Comment "Cursor up"; }; Label { Name "cursup1"; Addr $E33A; }; Label { Name "crtlf"; Addr $E342; Comment "Handle cursor right/left"; }; Label { Name "critgo"; Addr $E349; }; Label { Name "cleft"; Addr $E34A; Comment "Cursor left"; }; Label { Name "rvsf"; Addr $E355; Comment "RVS on/off"; }; Label { Name "homeclr"; Addr $E35B; Comment "Handle home/clear"; }; Label { Name "curhome"; Addr $E360; Comment "Cursor home"; }; Label { Name "hm110"; Addr $E368; }; Label { Name "tabit"; Addr $E36B; Comment "Set/reset a tabulator"; }; Label { Name "tab1"; Addr $E36F; }; Label { Name "tab2"; Addr $E378; }; Label { Name "tabtog"; Addr $E381; Comment "Toggle a tabulator at the current position"; }; Label { Name "nxln"; Addr $E38B; }; Label { Name "doscrl"; Addr $E39C; }; Label { Name "nxln1"; Addr $E3A0; }; Label { Name "nowhop"; Addr $E3A2; }; Label { Name "nxt1"; Addr $E3A5; }; Label { Name "movlin"; Addr $E3B6; }; Label { Name "movl10"; Addr $E3CB; }; Label { Name "scrdwn"; Addr $E3DF; Comment "Scroll down"; }; Label { Name "scd30"; Addr $E3E9; }; Label { Name "scd10"; Addr $E3EB; }; Label { Name "scd20"; Addr $E402; }; Label { Name "scrup"; Addr $E408; Comment "Scroll up"; }; Label { Name "scru00"; Addr $E40A; }; Label { Name "scru15"; Addr $E41A; }; Label { Name "scru20"; Addr $E422; }; Label { Name "scru30"; Addr $E42A; }; Label { Name "scru10"; Addr $E43E; }; Label { Name "scr10"; Addr $E43F; }; Label { Name "scr40"; Addr $E456; Comment "Test for slow scroll"; }; Label { Name "scr60"; Addr $E464; Comment "Slow scroll delay loop"; }; Label { Name "scr70"; Addr $E46C; }; Label { Name "scr75"; Addr $E46E; }; Label { Name "scr80"; Addr $E479; Comment "Scroll stop"; }; Label { Name "scr90"; Addr $E484; }; Label { Name "scr95"; Addr $E48B; }; Label { Name "getlin"; Addr $E49A; Comment "Keyboard check for slow scroll"; }; Label { Name "getbit"; Addr $E4A6; Comment "Check for a double length line"; }; Label { Name "getbt1"; Addr $E4A8; }; Label { Name "putbit"; Addr $E4B2; Comment "Mark current line as double length line"; }; Label { Name "putbt1"; Addr $E4B4; }; Label { Name "clrbit"; Addr $E4B6; }; Label { Name "bitsav"; Addr $E4BD; }; Label { Name "bitout"; Addr $E4BF; }; Label { Name "setbit"; Addr $E4C3; Comment "Mark a double length line"; }; Label { Name "bitpos"; Addr $E4CF; }; Label { Name "fndfst"; Addr $E4E5; }; Label { Name "fistrt"; Addr $E4E9; }; Label { Name "fnd0"; Addr $E4F4; }; Label { Name "fndend"; Addr $E4F7; }; Label { Name "eloup1"; Addr $E509; }; Label { Name "eloup2"; Addr $E50E; }; Label { Name "endbye"; Addr $E51E; }; Label { Name "nextchr"; Addr $E521; }; Label { Name "bumpnt"; Addr $E52F; }; Label { Name "bakchr"; Addr $E534; }; Label { Name "bakot1"; Addr $E53D; }; Label { Name "bakout"; Addr $E54C; }; Label { Name "bakot2"; Addr $E551; }; Label { Name "savpos"; Addr $E552; }; Label { Name "delins"; Addr $E55B; }; Label { Name "delete"; Addr $E55D; }; Label { Name "deloop"; Addr $E565; }; Label { Name "delout"; Addr $E574; }; Label { Name "delop1"; Addr $E57F; }; Label { Name "insert"; Addr $E591; }; Label { Name "ins10"; Addr $E59D; }; Label { Name "ins30"; Addr $E5A4; }; Label { Name "ins50"; Addr $E5C0; }; Label { Name "insout"; Addr $E5C6; }; Label { Name "stprun"; Addr $E5C9; }; Label { Name "runlop"; Addr $E5D0; }; Label { Name "runrts"; Addr $E5DA; }; Label { Name "movchr"; Addr $E5DB; }; Label { Name "movc10"; Addr $E5EA; }; Label { Name "movc20"; Addr $E600; }; Label { Name "movc30"; Addr $E601; }; Label { Name "colorky"; Addr $E602; }; Label { Name "wrtvic"; Addr $E612; Comment "Write a byte to the VIC chip"; }; Label { Name "wrtvram"; Addr $E641; Comment "Write a byte to the video RAM"; }; Label { Name "wrtcram"; Addr $E650; Comment "Write a byte to the color RAM"; }; Label { Name "junkwn1"; Addr $E669; }; Label { Name "junkwn2"; Addr $E66C; }; Label { Name "jwrtvrm"; Addr $E66F; Comment "Jump vector: Write a byte to video RAM"; }; Label { Name "jwrtcrm"; Addr $E672; Comment "Jump vector: Write a byte to color RAM"; }; Label { Name "bell"; Addr $E675; Comment "Ring the bell"; }; Label { Name "ce"; Addr $E6A3; Comment "Clear last input number"; }; Label { Name "escseq"; Addr $E6DE; Comment "Handle an escape sequence"; }; Label { Name "iline"; Addr $E6E1; Comment "Insert a line"; }; Label { Name "linrts"; Addr $E6F5; }; Label { Name "dline"; Addr $E6F8; Comment "Delete a line (esc-d)"; }; Label { Name "eraeol"; Addr $E71F; Comment "Erase to end of line (esc-q)"; }; Label { Name "erasol"; Addr $E721; Comment "Erase to start of line (esc-p)"; }; Label { Name "etout"; Addr $E736; }; Label { Name "scrlup"; Addr $E74A; Comment "Scroll upwards (esc-v)"; }; Label { Name "scrldwn"; Addr $E74C; Comment "Scroll downwards (esc-w)"; }; Label { Name "scroll"; Addr $E74D; Comment "Scroll screen depending on carry"; }; Label { Name "sddn"; Addr $E75D; }; Label { Name "sddn2"; Addr $E765; }; Label { Name "rstmode"; Addr $E772; }; Label { Name "scrlon"; Addr $E77F; Comment "Allow scrolling (esc-l)"; }; Label { Name "scrloff"; Addr $E782; Comment "Disallow scrolling (esc-m)"; }; Label { Name "scrsw"; Addr $E783; }; Label { Name "insoff"; Addr $E78A; Comment "Insert mode off"; }; Label { Name "inson"; Addr $E78D; Comment "Insert mode on"; }; Label { Name "inssw"; Addr $E78E; }; Label { Name "logoff"; Addr $E795; }; Label { Name "logon"; Addr $E798; }; Label { Name "logsw"; Addr $E799; }; Label { Name "keyfun"; Addr $E7A9; Comment "Get/set/list function keys"; }; Label { Name "listkey"; Addr $E7AF; Comment "List function keys"; }; Label { Name "listlp"; Addr $E7B1; }; Label { Name "preamb"; Addr $E7C6; }; Label { Name "ky2asc"; Addr $E7D4; }; Label { Name "nosec"; Addr $E7E5; }; Label { Name "lstk10"; Addr $E818; }; Label { Name "lstk30"; Addr $E82C; }; Label { Name "nodefn"; Addr $E831; }; Label { Name "jbsout"; Addr $E853; Comment "Jump vector: BSOUT via indirect vector"; }; Label { Name "keword"; Addr $E856; }; Label { Name "crword"; Addr $E85A; }; Label { Name "qtword"; Addr $E863; }; Label { Name "addkey"; Addr $E86C; Comment "Get/set a function key"; }; Label { Name "keysho"; Addr $E8A2; }; Label { Name "kymove"; Addr $E8A5; }; Label { Name "newky4"; Addr $E8BC; }; Label { Name "kshort"; Addr $E8C6; }; Label { Name "kyinlp"; Addr $E8F3; }; Label { Name "keyins"; Addr $E8D8; }; Label { Name "kyinok"; Addr $E907; }; Label { Name "scnkey"; Addr $E90C; Comment "Keyboard scan"; }; Label { Name "key"; Addr $E933; Comment "Poll the keyboard and place the result into the kbd buffer"; }; Label { Name "linelp"; Addr $E95C; }; Label { Name "line01"; Addr $E95F; }; Label { Name "kyloop"; Addr $E961; }; Label { Name "havkey"; Addr $E974; }; Label { Name "doctl"; Addr $E98D; }; Label { Name "havasc"; Addr $E990; }; Label { Name "notfun"; Addr $E9A2; Comment "Not a function key"; }; Label { Name "nulxit"; Addr $E9BF; }; Label { Name "keyxit"; Addr $E9C1; }; Label { Name "keyxt2"; Addr $E9C3; }; Label { Name "dorpt"; Addr $E9CE; Comment "Handle key repeat"; }; Label { Name "savkey"; Addr $E9DE; Comment "Store key in keyboard buffer"; }; Label { Name "getkey"; Addr $E9EA; Comment "Read keyboard matrix and debounce"; }; Label { Name "funjmp"; Addr $E9F3; Comment "Jump vector: Called when a function key has been pressed"; }; Label { Name "funrts"; Addr $EA13; Comment "Default function key handler"; }; Label { Name "findky"; Addr $EA15; Comment "Find a function key definition"; }; Label { Name "findlp"; Addr $EA19; }; Label { Name "fndout"; Addr $EA25; }; Label { Name "gettab"; Addr $EA26; Comment "Calculate tabulator position"; }; Label { Name "escrts"; Addr $EA45; }; Label { Name "escgo"; Addr $EA46; Comment "Call an escape sequence routine"; }; Label { Name "escvect"; Addr $EA51; size 52; Comment "Alphabetical table of escape sequence handlers"; }; Label { Name "sethtt"; Addr $EA85; Comment "Set top left window corner"; }; Label { Name "sethtb"; Addr $EA87; Comment "Set bottom right window corner"; }; Label { Name "window"; Addr $EA88; }; Label { Name "setbts"; Addr $EA8E; }; Label { Name "sreset"; Addr $EA93; Comment "Window to full screen (off)"; }; Label { Name "settps"; Addr $EA9D; }; Label { Name "bellon"; Addr $EAA2; Comment "Bell on (esc-g)"; }; Label { Name "belloff"; Addr $EAA4; Comment "Bell off (esc-h)"; }; Label { Name "notimp"; Addr $EAA7; Comment "Not implemented escape sequences jump here"; }; Label { Name "autoff"; Addr $EAA8; Comment "Auto insert mode off"; }; Label { Name "auton"; Addr $EAAB; Comment "Auto insert mode on"; }; Label { Name "normtb"; Addr $EAB1; Comment "Keyboard table, no modifiers"; }; Label { Name "shfttb"; Addr $EB11; Comment "Keyboard table with shift modifier"; }; Label { Name "shftgr"; Addr $EB71; Comment "Keyboard table with shift and graph"; }; Label { Name "ctrltb"; Addr $EBD1; Comment "Keyboard table with control"; }; Label { Name "runtab"; Addr $EC31; Comment "DLOAD \"*\" + RUN"; }; Label { Name "ldtab2"; Addr $EC3A; size 25; Comment "Start of screen lines, low bytes"; }; Label { Name "ldtab1"; Addr $EC53; size 25; Comment "Start of screen lines, high bytes"; }; Label { Name "ctlvect"; Addr $EC6C; size 64; Comment "Control key handler table"; }; Label { Name "keylen"; Addr $ECAC; size 10; Comment "Length of function key texts"; }; Label { Name "keydef1"; Addr $ECB6; size 5; Comment "Function key definitions"; }; Label { Name "keydef2"; Addr $ECBB; Comment "Text for function key F2"; }; Label { Name "keydef3"; Addr $ECBF; Comment "Text for function key F3"; }; Label { Name "keydef4"; Addr $ECC5; Comment "Text for function key F4"; }; Label { Name "keydef5"; Addr $ECCB; Comment "Text for function key F5"; }; Label { Name "keydef6"; Addr $ECD0; Comment "Text for function key F6"; }; Label { Name "keydef7"; Addr $ECD6; Comment "Text for function key F7"; }; Label { Name "keydef8"; Addr $ECDA; Comment "Text for function key F8"; }; Label { Name "keydef9"; Addr $ECE3; Comment "Text for function key F9"; }; Label { Name "keydef10";Addr $ECEA; Comment "Text for function key F10"; }; Label { Name "bits"; Addr $ECEF; size 8; Comment "Generic bit mask table"; }; Label { Name "vicinit"; Addr $ECF7; size 17; Comment "Register values for VIC initialization"; }; Label { Name "edvect"; Addr $ED08; size 10; Comment "Extended editor vector table (copied to $3B5)"; }; Label { Name "colortb"; Addr $ED12; size 16; Comment "Table with color values"; }; Label { Name "unused1"; Addr $ED22; size 222; Comment "Unused space"; }; Label { Name "monitor"; Addr $EE00; Comment "Monitor entry after boot (no basic)"; }; Label { Name "moncold"; Addr $EE09; Comment "Monitor cold start"; }; Label { Name "timc"; Addr $EE16; Comment "Monitor entry using SYS"; }; Label { Name "timb"; Addr $EE21; Comment "Monitor entry via BRK"; }; Label { Name "b2"; Addr $EE2B; Comment "Pop registers from stack and save them"; }; Label { Name "b3"; Addr $EE31; Comment "Save indirect segment and other stuff"; }; Label { Name "erropr"; Addr $EE50; Comment "Invalid monitor input, print \"?\" + CR + \".\""; }; Label { Name "st1"; Addr $EE69; }; Label { Name "s1"; Addr $EE7F; }; Label { Name "mcmd"; Addr $EE73; Comment "Search for a monitor command in the table"; }; Label { Name "s2"; Addr $EE94; Comment "Increment X to point to next command in table"; }; Label { Name "s3"; Addr $EE9D; Comment "Check for a disk command"; }; Label { Name "s4"; Addr $EEAE; Comment "Handle a disk command"; }; Label { Name "s5"; Addr $EED0; }; Label { Name "cmds"; Addr $EED1; size 36; Comment "Table with monitor commands. One letter command followed by address."; }; Label { Name "mexit"; Addr $EEF5; Comment "Monitor command 'x' (exit)"; }; Label { Name "putpc"; Addr $EEFB; Comment "Move tmp1/tmp1+1 to PC memory location"; }; Label { Name "setr"; Addr $EF04; Comment "Set tmp1 to point to the saved regs in zero page"; }; Label { Name "altrit"; Addr $EF13; Comment "Print CR + '.' + A + ' '"; }; Label { Name "space"; Addr $EF1B; Comment "Print ' '"; }; Label { Name "outqst"; Addr $EF1E; Comment "Print '?'"; }; Label { Name "crlf"; Addr $EF21; Comment "Print CR + '.'"; }; Label { Name "reghead"; Addr $EF26; Comment "Header for 'r' command"; }; Label { Name "mregs"; Addr $EF41; Comment "Monitor command 'r' (regs)"; }; Label { Name "mdump"; Addr $EF84; Comment "Monitor command 'm' (memory dump)"; }; Label { Name "msetreg"; Addr $EFC5; Comment "Monitor command ';' (set registers)"; }; Label { Name "mbank"; Addr $EFDF; Comment "Monitor command 'v' (set bank)"; }; Label { Name "mdunit"; Addr $EFEB; Comment "Monitor command 'u' (unit)"; }; Label { Name "msetmem"; Addr $EFF7; Comment "Monitor command ':' (set memory)"; }; Label { Name "@L1"; Addr $F000; }; Label { Name "@L2"; Addr $F00F; }; Label { Name "@L3"; Addr $F013; }; Label { Name "mgo"; Addr $F014; Comment "Monitor command 'g' (go)"; }; Label { Name "mload"; Addr $F043; Comment "Monitor commands 'l' and 's' (load & save)"; }; Label { Name "hex4"; Addr $F0F9; Comment "Output X/Y as 4 hex bytes"; }; Label { Name "hex2"; Addr $F0FE; Comment "Output A as two hex bytes"; }; Label { Name "hex1"; Addr $F10A; Comment "Output low nibble of A as one hex byte"; }; Label { Name "xchgtmp"; Addr $F116; Comment "Exchange tmp1 and invl"; }; Label { Name "@L1"; Addr $F118; }; Label { Name "rdfour"; Addr $F126; Comment "Read 4 chars from input into tmp1/tmp1+1"; }; Label { Name "@L1"; Addr $F132; }; Label { Name "rdtwo"; Addr $F133; Comment "Read 2 chars from input into A"; }; Label { Name "@L1"; Addr $F156; }; Label { Name "@L1"; Addr $F161; }; Label { Name "hexit"; Addr $F157; Comment "Convert char in A into hex value"; }; Label { Name "rdone"; Addr $F162; Comment "Input one char, check for CR"; }; Label { Name "mdisk"; Addr $F168; Comment "Monitor command '@' (disk commands)"; }; Label { Name "kmsgtab"; Addr $F1CA; Comment "Table with kernal messages"; }; Label { Name "spmsg"; Addr $F223; Comment "Test error flag, print system message"; }; Label { Name "msg"; Addr $F228; Comment "Print system message, offset in Y"; }; Label { Name "talk"; Addr $F237; Comment "Output talk on IEC bus"; }; Label { Name "listn"; Addr $F23B; Comment "Output listen on IEC bus"; }; Label { Name "secnd"; Addr $F27B; Comment "Output secondary address after listen on IEC bus"; }; Label { Name "secatn"; Addr $F27E; Comment "NOT ATN high after secnd"; }; Label { Name "tksa"; Addr $F287; Comment "Output secondary address on IEC bus"; }; Label { Name "tkatn"; Addr $F28A; }; Label { Name "setlns"; Addr $F28F; Comment "Output A on IEC, switch data to input"; }; Label { Name "ciout"; Addr $F29E; Comment "Output A on IEC with EOF flag"; }; Label { Name "untalk"; Addr $F2B2; Comment "Output untalk on IEC"; }; Label { Name "unlsn"; Addr $F2B6; Comment "Output unlisten on IEC"; }; Label { Name "txbyte"; Addr $F2C0; Comment "Output A on IEC without EOF flag"; }; Label { Name "txbyt1"; Addr $F2DB; }; Label { Name "txbyt2"; Addr $F2E5; }; Label { Name "txbyt3"; Addr $F2EA; }; Label { Name "txbyt4"; Addr $F2EB; }; Label { Name "txbyt4"; Addr $F303; }; Label { Name "txbyt4"; Addr $F30B; }; Label { Name "acptr"; Addr $F311; Comment "Read char from IEC bus into A"; }; Label { Name "timeron"; Addr $F376; Comment "Set timer for timeout on IEC"; }; Label { Name "open232"; Addr $F388; Comment "Open the RS232 port"; }; Label { Name "toascii"; Addr $F3CE; Comment "Convert PETSCII into ASCII for RS232"; }; Label { Name "tocbm"; Addr $F3E3; Comment "Convert ASCII to PETSCII for RS232"; }; Label { Name "xon232"; Addr $F3F8; Comment "Allow RS232 interrupts"; }; Label { Name "aloc256"; Addr $F403; Comment "Allocate 256 bytes as RS232 buffer"; }; Label { Name "alloc"; Addr $F407; Comment "Allocate buffer space"; }; Label { Name "rdst232"; Addr $F435; Comment "Read the RS232 status"; }; Label { Name "getin"; Addr $F444; Comment "GETIN: Input 1 byte from the current input device"; }; Label { Name "getinc2"; Addr $F454; Comment "Check for input from device 2 (RS232)"; }; Label { Name "getin2"; Addr $F45B; Comment "GETIN routine for device 2 (RS232)"; }; Label { Name "gn232a"; Addr $F47F; Comment "Get one byte from RS232 input buffer"; }; Label { Name "basin"; Addr $F4A3; Comment "BASIN: Input 1 byte from the current input device"; }; Label { Name "basinc3"; Addr $F4B2; Comment "Check for input from device 3 (screen)"; }; Label { Name "basin3"; Addr $F4BC; Comment "BASIN: input from device 3 (screen)"; }; Label { Name "LF4C1"; Addr $F4C1; Comment "BASIN dispatcher, check inut devices"; }; Label { Name "basind"; Addr $F4D2; Comment "BASIN entry for IEC devices"; }; Label { Name "basin2"; Addr $F4D7; Comment "BASIN routine for device 2 (RS232)"; }; Label { Name "bsout"; Addr $F4F5; Comment "Output 1 byte on current output device"; }; Label { Name "chkin"; Addr $F550; Comment "Open an input channel (la in X)"; }; Label { Name "ckout"; Addr $F5AA; Comment "Open an output channel (la in X)"; }; Label { Name "close"; Addr $F5F4; Comment "Close a logical file"; }; Label { Name "lookup"; Addr $F645; }; Label { Name "fz100"; Addr $F657; }; Label { Name "lkupsa"; Addr $F667; }; Label { Name "lkupla"; Addr $F67F; }; Label { Name "clrall"; Addr $F686; Comment "Close all logical files"; }; Label { Name "clrch"; Addr $F6AD; Comment "Unlisten/untalk on IEC"; }; Label { Name "open"; Addr $F6C6; Comment "Open a logical file, output the filename"; }; Label { Name "openi"; Addr $F70E; Comment "Open on IEC"; }; Label { Name "openib"; Addr $F71F; Comment "Output sa and filename on IEC"; }; Label { Name "openfn"; Addr $F72F; Comment "Output filename on IEC"; }; Label { Name "tranr"; Addr $F741; Comment "Output sa 15 + name on IEC"; }; Label { Name "load"; Addr $F74D; Comment "Load from logical file"; }; Label { Name "load1"; Addr $F761; }; Label { Name "load2"; Addr $F764; Comment "Dispatch based on load device"; }; Label { Name "load3"; Addr $F76D; Comment "Load from IEC"; }; Label { Name "load4"; Addr $F778; }; Label { Name "load5"; Addr $F798; }; Label { Name "load6"; Addr $F7C1; Comment "Wait if IEC timeout"; }; Label { Name "load7"; Addr $F7CF; }; Label { Name "load8"; Addr $F7F5; }; Label { Name "load9"; Addr $F7F7; }; Label { Name "load10"; Addr $F807; }; Label { Name "load11"; Addr $F817; Comment "Load from cassette"; }; Label { Name "load12"; Addr $F81A; }; Label { Name "srching"; Addr $F822; Comment "In direct mode, print \"searching ...\""; }; Label { Name "outfn"; Addr $F835; }; Label { Name "loading"; Addr $F847; Comment "In direct mode, print \"loading ...\""; }; Label { Name "save"; Addr $F853; Comment "Save to logical file"; }; Label { Name "save1"; Addr $F871; }; Label { Name "save2"; Addr $F874; }; Label { Name "save3"; Addr $F885; Comment "Open file on IEC for writing"; }; Label { Name "save4"; Addr $F8A6; }; Label { Name "break"; Addr $F8BA; }; Label { Name "save5"; Addr $F8C1; }; Label { Name "clsei"; Addr $F8C6; Comment "Close IEC program file"; }; Label { Name "save6"; Addr $F8DB; }; Label { Name "save7"; Addr $F8DC; }; Label { Name "save8"; Addr $F8DD; Comment "Open device number < 3 for writing"; }; Label { Name "saving"; Addr $F8E0; Comment "In direct mode, print \"saving ...\""; }; Label { Name "rdtim"; Addr $F8ED; Comment "Read the time from the TOD clock"; }; Label { Name "settim"; Addr $F915; Comment "Set the time"; }; Label { Name "error1"; Addr $F940; Comment "Output \"i/o error: 1\" (too many files)"; }; Label { Name "error2"; Addr $F943; Comment "Output \"i/o error: 2\" (file open)"; }; Label { Name "error3"; Addr $F946; Comment "Output \"i/o error: 3\" (file not open)"; }; Label { Name "error4"; Addr $F949; Comment "Output \"i/o error: 4\" (file not found)"; }; Label { Name "error5"; Addr $F94C; Comment "Output \"i/o error: 5\" (device not present)"; }; Label { Name "error6"; Addr $F94F; Comment "Output \"i/o error: 6\" (not input file)"; }; Label { Name "error7"; Addr $F952; Comment "Output \"i/o error: 7\" (not output file)"; }; Label { Name "error8"; Addr $F955; Comment "Output \"i/o error: 8\" (missing file name)"; }; Label { Name "error9"; Addr $F958; Comment "Output \"i/o error: 9\" (illegal device number)"; }; Label { Name "errorx"; Addr $F95A; Comment "Error output routine"; }; Label { Name "stop"; Addr $F972; Comment "Check the stop key"; }; Label { Name "udtim"; Addr $F980; }; Label { Name "patall"; Addr $F99C; Comment "Test bytes for ROMs"; }; Label { Name "cold"; Addr $F99E; Comment "System reset routine"; }; Label { Name "warm"; Addr $F9FB; Comment "Warm start entry"; }; Label { Name "ioinit"; Addr $F9FE; Comment "I/O register init"; }; Label { Name "ramtas"; Addr $FA94; Comment "RAM test"; }; Label { Name "size"; Addr $FAE3; Comment "Remember the available memory"; }; Label { Name "jmptab"; Addr $FB09; Comment "Table with standard vectors"; }; Label { Name "nmi"; Addr $FB3D; Comment "NMI entry, jumps indirect to NMI routine"; }; Label { Name "setnam"; Addr $FB40; Comment "Set the file name address"; }; Label { Name "setlfs"; Addr $FB4F; Comment "Set logical file number"; }; Label { Name "readst"; Addr $FB56; Comment "Read/write the system status byte"; }; Label { Name "setmsg"; Addr $FB69; Comment "Set the system message flag"; }; Label { Name "readss"; Addr $FB6C; }; Label { Name "udst"; Addr $FB6E; Comment "ORA A in status"; }; Label { Name "storst"; Addr $FB73; Comment "Write the status byte"; }; Label { Name "storss"; Addr $FB7F; }; Label { Name "settmo"; Addr $FB83; Comment "IEC timeout on/off"; }; Label { Name "memtop"; Addr $FB87; Comment "Get/set top of available memory"; }; Label { Name "settop"; Addr $FB92; }; Label { Name "membot"; Addr $FB9C; Comment "Get/set bottom of available memory"; }; Label { Name "setbot"; Addr $FBA7; }; Label { Name "restor"; Addr $FBB1; Comment "Restore the system vector table"; }; Label { Name "vector"; Addr $FBB8; Comment "Get/set the system vector table"; }; Label { Name "vreset"; Addr $FBD9; }; Label { Name "irq"; Addr $FBE5; Comment "IRQ routine"; }; Label { Name "brkirq"; Addr $FBF5; }; Label { Name "kirq"; Addr $FBF8; Comment "Standard IRQ routine via indirect vector cinv"; }; Label { Name "kirq1"; Addr $FC04; Comment "Check for ACIA IRQ"; }; Label { Name "kirq2"; Addr $FC0B; Comment "Handle ACIA IRQ"; }; Label { Name "kirq8"; Addr $FC69; Comment "Check for coprozessor IRQ"; }; Label { Name "kirq9"; Addr $FC77; Comment "Check for CIA IRQ"; }; Label { Name "kirq10"; Addr $FC88; Comment "Check for IEC bus IRQ (and ignore it)"; }; Label { Name "kirq11"; Addr $FC8F; Comment "Must be a 50/60Hz IRQ - poll keyboard, update time"; }; Label { Name "prendn"; Addr $FCB0; Comment "IRQ end, restore indirect segment and registers"; }; Label { Name "prend"; Addr $FCB3; Comment "IRQ end, restore registers"; }; Label { Name "panic"; Addr $FCB8; Comment "Default NMI routine"; }; Label { Name "ipcrq"; Addr $FCB9; Comment "Coprocessor request"; }; Label { Name "ipserv"; Addr $FD56; Comment "Coprocessor irq handler"; }; Label { Name "waitlo"; Addr $FDF4; }; Label { Name "waithi"; Addr $FDFC; }; Label { Name "acklo"; Addr $FE04; }; Label { Name "ackhi"; Addr $FE0D; }; Label { Name "frebus"; Addr $FE16; Comment "Free the bus for the coprocessor"; }; Label { Name "getbus"; Addr $FE1F; Comment "Wait until we own the bus"; }; Label { Name "getpar"; Addr $FE2F; Comment "Place coprocessor parameters into buffer"; }; Label { Name "ipcgo"; Addr $FE41; Comment "End of coprocessor irq handler"; }; Label { Name "ipcgx"; Addr $FE55; Comment "Prepare for coprocessor takeover"; }; Label { Name "iploop"; Addr $FE65; Comment "Wait while the coprocessor has the bus"; }; Label { Name "tape"; Addr $FE68; Comment "Cassette entry. Standard value for itape is notape (below)."; }; Label { Name "notape"; Addr $FE6B; Comment "Default cassette routines (device not present)"; }; Label { Name "cmpste"; Addr $FE7F; }; Label { Name "incsal"; Addr $FE8D; }; Label { Name "fnadry"; Addr $FEA0; Comment "Load a byte from the file name"; }; Label { Name "farcall"; Addr $FEAB; Comment "Support routine for cross bank calls"; }; Label { Name "excomm"; Addr $FED5; }; Label { Name "excrts"; Addr $FEFE; Comment "Return from call to foreign bank"; }; Label { Name "ipinit"; Addr $FF11; Comment "ipoint = $100, Y = $FF (stack)"; }; Label { Name "putaxs"; Addr $FF1C; Comment "Place X/A to ipoint (build stack in foreign bank)"; }; Label { Name "putag"; Addr $FF22; Comment "Place A to ipoint (build stack in foreign bank)"; }; Label { Name "expull"; Addr $FF26; Comment "Pull registers after calling subroutine in foreign bank"; }; Label { Name "exnmi"; Addr $FF2D; Comment "Helper routine to route interrupts from foreign to system bank"; }; Label { Name "exbrk"; Addr $FF31; Comment "Helper routine to route BRK insns from foreign to system bank"; }; Label { Name "exirq"; Addr $FF34; Comment "Helper routine to route interrupts from foreign to system bank"; }; Label { Name "unused2"; Addr $FF36; Comment "Unused space"; }; # Jump table at end of kernal ROM Label { Name "kvreset"; Addr $FF6F; }; Label { Name "kipcgo"; Addr $FF72; }; Label { Name "kfunkey"; Addr $FF75; }; Label { Name "kipcrq"; Addr $FF78; }; Label { Name "kioinit"; Addr $FF7B; }; Label { Name "kcint"; Addr $FF7E; }; Label { Name "kalloc"; Addr $FF81; }; Label { Name "kvector"; Addr $FF84; }; Label { Name "krestor"; Addr $FF87; }; Label { Name "klkupsa"; Addr $FF8A; }; Label { Name "klkupla"; Addr $FF8D; }; Label { Name "ksetmsg"; Addr $FF90; }; Label { Name "ksecnd"; Addr $FF93; }; Label { Name "ktksa"; Addr $FF96; }; Label { Name "kmemtop"; Addr $FF99; }; Label { Name "kmembot"; Addr $FF9C; }; Label { Name "kscnkey"; Addr $FF9F; }; Label { Name "ksettmo"; Addr $FFA2; }; Label { Name "kacptr"; Addr $FFA5; }; Label { Name "kciout"; Addr $FFA8; }; Label { Name "kuntalk"; Addr $FFAB; }; Label { Name "kunlsn"; Addr $FFAE; }; Label { Name "klisten"; Addr $FFB1; }; Label { Name "ktalk"; Addr $FFB4; }; Label { Name "kreadst"; Addr $FFB7; }; Label { Name "ksetlfs"; Addr $FFBA; }; Label { Name "ksetnam"; Addr $FFBD; }; Label { Name "kopen"; Addr $FFC0; }; Label { Name "kclose"; Addr $FFC3; }; Label { Name "kchkin"; Addr $FFC6; }; Label { Name "kckout"; Addr $FFC9; }; Label { Name "kclrch"; Addr $FFCC; }; Label { Name "kbasin"; Addr $FFCF; }; Label { Name "kbsout"; Addr $FFD2; }; Label { Name "kload"; Addr $FFD5; }; Label { Name "ksave"; Addr $FFD8; }; Label { Name "ksettim"; Addr $FFDB; }; Label { Name "krdtim"; Addr $FFDE; }; Label { Name "kstop"; Addr $FFE1; }; Label { Name "kgetin"; Addr $FFE4; }; Label { Name "kclrall"; Addr $FFE7; }; Label { Name "kudtim"; Addr $FFEA; }; Label { Name "kscrorg"; Addr $FFED; }; Label { Name "kplot"; Addr $FFF0; }; Label { Name "kiobase"; Addr $FFF3; }; Label { Name "kgbye"; Addr $FFF6; Comment "Actual execution segment switch routine"; }; # Hardware vectors Label { Name "hanmi"; Addr $FFFA; Comment "Hardware NMI vector"; }; Label { Name "hares"; Addr $FFFC; Comment "Hardware reset vector"; }; Label { Name "hairq"; Addr $FFFE; Comment "Hardware IRQ vector"; };