Model 100 System Map Part 7 (F5F4-FFEC)
From Bitchin100 DocGarden
This is a derived work of the "Model 100 System Map", Copyright (C) 1985, Robert D. Covington, Systems Information Management Consultants.
Model 100 RAM Memory Map
F5F4H - Himem (2) F5F9H - RST 5.5 RAM vector (3) Used for BCR interrupt F5FCH - RST 6.5 RAM vector (3) Used for UART interrupt (Called) F5F0H - Active system signature: warm vs. cold boot F5FFH - RST 7.5 RAM vector (3) Used for Timer interrupt (Called) F602H - RAM vector for TRAP interrupt (3) (1431H) F62AH - Option ROM flag (0-no option ROM) F62BH - Dial speed (1=10pps, 2=20pps) F630H - Start of 8 byte table for each function key status (1=on, 0=off) F639H - Cursor row (1-8) F63AH - Cursor column (1-40) F63BH - Number of active rows (1-8) F63CH - Number of active columns on screen (1-40) F63DH - Label line/8th line protect status (0=off) F63EH - Scroll disable flag (0-allow scrolling) F63FH - Cursor status (0-off, 1-on) F640H - Cursor row (1-8) F641H - Cursor Column (1-40) F646H - ESCape mode flag for RST 20H (0-normal video, not zero-ESCape mode) F648H - Reverse video switch (0=off) F64EH - X coordinate of last graphic point plotted F64FH - Y coordinate of last graphic point plotted F651H - Flag used during EDITing a BASIC program. 0, when editing a .DO file, 1, while editing an entire BASIC program 255, when editing a specific lines from a BASIC program F652H - "ERRTRP" error trap code pointer (2) F654H - ??? Some counter related to the token interpreter (1) F655H - ??? (2) F656H - Power off exit condition switch (0-return control back to program on power up, 1-return to menu on power up) F658H - Full/half duplex switch (0-half duplex) F65AH - Auto linefeed on RS232 output switch (0-auto linefeed option off, not zero-automatically send a linefeed after every carriage return) F65BH - Start of textual RS232 parameter setting buffer. This buffer is normally used to store the STAT setting for TELCOM (5) F660H - Self modifying address called on CALL statement F661H - Address last called (2) F667H - Called on OUT statement F66AH - Called on INP function F672H - Error code of last error F674H - Line printer head position F675H - Output device for RST 20H (0=screen, 1=printer) F678H - Start of string buffer for BASIC (2) F67AH - Current executing line number, FFFFH if no program running. (2) F67CH - Start of BASIC program pointer (2) F680H - End of statement marker ':' or null F681H - BASIC tokenized text F685H - Start of keyboard buffer used by the keyboard line input routine at 4644H. F788H - Current horizontal position of cursor (0-39) F789H - Function key definition area (128) F809H - End of function key definition area F80AH - Function key definition area used by BASIC (128) F88CH - End of file area, start of paste buffer and/or BASIC variables (2) F897H - Start of "work area" F923H - Seconds (ones) F924H - Seconds (tens) F925H - Minutes (ones) F926H - Minutes (tens) F927H - Hours (ones) F928H - Hours (tens) F929H - Date (ones) F92AH - Date (tens) F92BH - Day code (0=Sunday, 1=Monday, etc.) F92CH - Current month (1-12) F92DH - Year (ones) F92EH - Year (tens) F92FH - Timer, decreases from 125 to 0. At zero, time+date copied from clock chip to RAM. F930H - Timer, decreases from 12 to 1. When 1, byte at $F931 decreased by 1. F931H - Power down counter. When 1, power goes OFF. F933H - Seconds (ones) F934H - Seconds (tens) F935H - Minutes (ones) F936H - Minutes (tens) F937H - Hours (ones) F938H - Hours (tens) F939H - Date (ones) F93AH - Date (tens) F93BH - Day (0=Sunday, 1=Monday, etc.) F93CH - ??? timer or timer interrupt related (1) F93DH - Time for ON TIME interrupt (SSMMHH) (6) F943H - ??? other source claims this is COM on/off flag. States COM on/off is 1 for ON, 0 for OFF F944H - On Com flag (0=off, 255=on) F945H - Address of On Com routine (2) F947H - On time flag (0=off, 255=on) F948H - Address of on time routine (2) F94AH - Function key vector table (24) First byte - On/off status Next 2 bytes - Vector address F962H - Start of RAM directory Byte 1 - Directory flags. A 255 specifies the end of the directory. Bit 7 - Set if valid entry 6 - Set for .DO file 5 - Set for .CO file 4 - Set for ROM file 3 - Set for invisible file 2-3 - Address of file 4-11 - Eight byte filename. Filename must have extension right justified and filename left justified. Any gaps should be filled with spaces (ex. "ADD.DO" should be "ADD DO") F962H - BASIC file slot F96DH - TEXT file slot F978H - TELCOM file slot F979H - ADDRSS file slot F98EH - SCHEDL file slot F999H - Start of "Suzuki" file slot F99AH - Pointer to current BASIC program not saved (Suzuki) (2) F9A4H - Start of "Hayashi" file slot F9A5H - Start of PASTE buffer ("Hayashi") pointer (2) F9AFH - Start of "RickY" file slot Note: this is the last reserved file slot. All following file slots are in the user region. The routine at $20E4, for example, starts out pointing to RickY, but immediately adds 11, since it is walking the user file area. F9B0H - Pointer to BASIC program line being edited (unverified) (2) F9BAH - User file slots 1-19, extends to FA8A FA8BH - End of directory marker ($FF) FAACH - ASCII character last output to printer FAADH - Label line enable flag (0 = disabled, non-zero = enabled) FAAEH - Contents of port $A8 FAAFH - Start of IPL filename (8) FABAH - Address where last BASIC list started (2) FABEH - Storage for stack pointer on power up/down for continued program execution after a power down (2) FAC0H - Lowest RAM memory address used by system (8000H for a 32k system) (2) FAC9H - Offset of last RST 38H call (computed address for RST 7 call) FAD0H - Length of last program loaded or saved on tape (2) FADAH - Start of RST 38H vector table (256) FAE2H - LCD character output RAM vector for 20H routine. The address at this location is called everytime a character is sent to the LCD (note:This routine is called at 4317H). (2) FAE4H - Printer output RAM vector. The 2 byte address at this location is called everytime a character is output to the printer via the routine at 1470H. (2) FB00H - EOF function RAM vector. The 2 byte address at this location is called evertime an EOF function is performed. (2) FB0CH - TELCOM TERM mode F6 RAM vector (2) FB0EH - TELCOM TERM mode F7 RAM vector (2) FB14H - WIDTH statement RAM vector. (2) FB1AH - CRT open routine RAM vector (2) FB1EH - CRT output file routine RAM vector (2) FB20H - WAND Open routine RAM vector (2) FB22H - WAND Close routine RAM vector (2) FB24H - WAND Get routine RAM vector (2) FB26H - WAND Special I/O routine vector (2) FB28H - LOF function routine RAM vector (2) FB2AH - LOC function routine RAM vector (2) FB2CH - LFILES statement routine RAM vector (2) FB2EH - DSKI$ routine RAM vector (2) FB30H - DSKO$ routine RAM vector (2) FB64H - Create/Locate switch for variables used in the main evaluation routine (Locate=0, Create>0). FB65H - Type of last variable used (2-Integer, 3-String, 4-Single Precision, 5-Double Precision) FB67H - Start address for file buffer area (2) FB94H - Line number of current data statement (2) FB96H - 0 if no FOR/NEXT loop in progress FB99H - Address of last variable assigned via a LET instruction. This address points to the variable description table as with a VARPTR(variable) instruction. (2) FB9BH - Pointer to most recent or currently running line (2). This address points to the actual text skipping the line number and spaces. FB9DH - Stack pointer value used by BASIC to reinitialize the stack. This memory pointer is updated after each instruction by the routine at 0804H. (2) FB9FH - Line number of last error (2) FBA1H - Most recent used or entered line number (2) FBA3H - Pointer to statement where error occurred (2) FBA5H - Address of ON ERROR routine (2) FBA7H - Error status flag VirtualT disassembly calls this "BASIC program is running flag" FBA8H - End of BASIC expression (2) FBAAH - Line where last break, END, or STOP occured (2) FBACH - Address where program stopped on last break, END, or STOP (2) FBAEH - Pointer to the start of the DO files (2) FBB0H - Pointer to the start of CO files (2) FBB2H - Pointer to the start of variable table (2) FBB4H - Pointer to the start of array table (2) FBB6H - Pointer to the start of the systems unused memory (2) FBB8H - Address where DATA search will begin on next READ statement (2) FBBAH - 26 byte table for default variable types declared by the DEF statement. Each entry corresponds to one of the letters A-Z. The contents of each entry are 2 for an integer, 3 for a string, 4 for a single precision number, and 8 for a double precision number. (26) FC18H - Start of FAC1 for single (4) and double (8) precision numbers (8) FC1AH - Start of FAC1 for integers (2) FC69H - Start for FAC2 for single (4) and double (8) precision numbers FC6BH - Start of FAC2 for integers (2) FC82H - Maximum number of open files (MAXFILES) (1) FC83H - Pointer to the 30 byte file number descriptor pointer table-2. Each entry of the table points to the actual file descriptor table (same as VARPTR(#x)). FC8CH - Pointer to the file descriptor table for the last file used (2) FC93H - Filename Buffer #1 of current BASIC program (8) FC9BH - ??? maybe terminator of Filename buffer #1 FC9CH - Filename Buffer #2 of last program loaded from tape (6 or 8?) FCA2H - ??? (30 bytes) FCC0H - Start of alternate LCD character buffer (320) FD88H - Scratchpad w/in ALTLCD for Date/Time in ASCII, used by MENU routine, FD9FH - End of Date/Time scratchpad FDD9H - Scratchpad w/in ALTLCD for filename argument to $5AA6 (CHKDC - 4) FDE2H - End of CHKDC-4 filename argument FDF0H - Scratchpad w/in ALTLCD for filespec to be check against filespec searched for by CHKDC FDF9H - End of CHKDC scratchpad FDFFH - End of alternate LCD character buffer FE00H - Start of LCD memory (320) FF3FH - End of LCD memory FF40H - ??? (2) FF42H - XON/XOFF enable flag. If this byte is 0, XON/XOFFs are not significant for RS232 operations. If this byte is greater than 0, XON/XOFFs are treated as normal. FF43H - RS232 initialization status (0-deactivated, >0- activated) FF44H - Sound flag (0=on, 175=off) (1) FF45H - Contents of port $E8H (1) (called Cassette ON/OFF flag, elsewhere) FF46H - Start of 64 character RS232 buffer (64) FF85H - End of 64 RS232 buffer FF86H - Number of characters in the RS232 buffer (FF46H). When this number reaches 40, a control S is automatically sent by the system. FF8AH - Status of control S (1-Control S has been pressed, 0-no control S is active). FF8BH - 8155 UART baud rate generator baud rate timer value (2) FF8DH - RS232 parity control byte (1) FF8EH - High or low cassette level trigger flag for 6FDBH (1) FF8FH - ??? (1) FF90H - Contains a 2 as long as a noncontrol key held down (1) FF91H - ??? (6) FF97H - 8 bits for storing space, del, tab, esc, paste, label, print, and enter key recognition. FF98H - 8 bits for storing function key recognition FF99H - ??? (9) FFA2H - 8 bits for storing shift, ctrl, grph, code, num, and caps lock. FFAAH - Number of characters in keyboard buffer. FFABH - Start of keyboard typeahead buffer (64) FFEAH - End of keyboard buffer FFEBH - ??? (1) FFECH - Start of 5 byte bit image of the pattern currently under the cursor (5). Can be used by screen dump routines