Driver:INTELLEC 4

From MAMEDEV Wiki
Revision as of 02:15, 7 July 2017 by Cuavas (talk | contribs)

INTELLEC® 4/MOD 40

The INTELLEC 4/40 is an Intel MCS-40 (4004/4040) development system with interactive debugging features. MAME provides built-in artwork showing the state of front panel LEDs and switches. All switches are clickable. Due to the large number of switches and potential clashes with keys used for typing monitor commands into the terminal, most switches don't have keys assigned by default. However, a few switches do have default keyboard mappings.

Front Panel LEDs

  • STATUS LEDs:
    • SEARCH COMPLETE indicates that the selected address has been accessed the desired number of times and the display is frozen
    • RUN indicates that the CPU is running (i.e. not currently acknowledging stop/halt condition)
    • POINTER VALID indicates that a SRC instruction has been detected since the last time search mode was entered and the LAST RAM/ROM POINTER LEDs are valid
  • MODE LEDs: indicates the currently selected program storage - MONitor ROM, console RAM card, or PROM card
  • ADDRESS LEDs: show the opcode address accessed by the CPU, or the selected address in CMA mode
  • INSTRUCTION LEDs: show the opcode accessed by the CPU, or data at the selected address in CMA mode
  • EXECUTION LEDs: show the data on the bus during the X2 and X3 instruction phases (X2 is the value read/written for I/O instructions)
  • ACTIVE BANK LEDs: show the state of the CM-RAM chip select signals during the A3 instruction phase
  • LAST RAM/ROM POINTER LEDs: shows the address output by the most recent SRC instruction

Front Panel Switches

  • ADDRESS/DATA switches: used for entering search addresses, or RAM addresses/data in CMA mode
    • All toggle switches, most significant bit on the left
    • All switches used for addresses, rightmost eight switches used for data (7-0)
  • MODE CONTROL switches: used to switch program storage and reset the system
    • All momentary switches, mapped to keypad 1, 2 and 3 by default
  • PASS COUNTER switches: used to set the number of times the selected address should be passed over before freezing the display in search mode
    • All toggle switches, most significant bit on the left
  • SEARCH ADDRESS CONTROL switches: used to select an address for search mode or CMA mode, and to control search mode features
    • RUN and NEXT INST are toggle switches
    • DECR, INCR and LOAD are momentary switches, mapped to keypad minus, plus and enter, respectively
  • STOP and SINGLE STEP switches: used to stop the CPU and step the program one instruction at a time
    • STOP is a toggle switch, mapped to keyboard left arrow by default
    • SINGLE STEP is a momentary switch, mapped to keyboard right arrow by default
  • CMA switches: used to examine/modify the content of console RAM
    • CMA ENABLE/DISABLE is a toggle switch
    • CMA WRITE is a momentary switch, mapped to keypad slash by default
  • RESET CONTROL switches: used to reset the system, and choose whether 4002 RAM memory/status is cleared on reset
    • RESET is a momentary switch, and MODE is a momentary switch

Reset Control

The RESET MODE toggle switch controls whether 4002 RAM chips are cleared (filled with zero) when the CPU (4040) and memory controller (4289) are reset. When set to CPU, only the CPU and memory controller are reset; when set to SYSTEM, the CPU and memory controller are reset, and 4002 RAM memory/status is filled with zero. This affects the front panel RESET and MODE CONTROL switches, and also the user reset line from universal cards.

When pressed, the momentary RESET switch resets the CPU and memory controller, and also cleared 4002 RAM memory/status if the RESET MODE switch is set to SYSTEM. This switch generates a pulse when pressed, holding it on will not hold the system in RESET state. This switch will not generate a reset pulse if you're holding any of the MODE CONTROL switches on, or a universal card is asserting the user reset line.

Note that the RESET switch, the MODE CONTROL switches and the user reset line from universal cards don't affect the contents of the console RAM card. Programs/data stored in the console RAM card are preserved when the CPU is reset or 4002 RAM is cleared.

Mode Selection

The INTELLEC 4/40 has three 4KiB program storage spaces: onboard monitor PROM, 4KiB console RAM card, and PROM space. The onboard monitor PROM uses 1KiB of its 4KiB space. It's possible to install universal cards that place code in the other 3KiB, but it's practically useless because the monitor provides no way to read or jump to such code. There's nothing in the PROM space by default, but universal cards can map code here.

Pressing any of the three MODE CONTROL switches, MON, RAM or PROM, selects the respective program storage space and resets the CPU (4040) and memory controller (4289). If the RESET CONTROL MODE switch is set to SYSTEM, the 4002 RAM chips will also be cleared (filled with zero). Execution will start from address zero in the selected storage space. The front panel search/capture state is also reset, and universal cards may respond to the CPU reset signal.

The MODE CONTROL switches are all momentary, and are mapped to keypad 1 (MON), keypad 2 (RAM) and keypad 3 (PROM) by default. Pressing two MODE CONTROL switches at once will result in no program storage being mapped (the CPU will execute from unmapped reads). The switches generate a reset pulse when pressed, holding them won't hold the system in reset state. The MODE CONTROL switches won't reset the system if you're holding the RESET switch on or a universal card is asserting the user reset line.

Stop/Run/Single Step/Halt

Turning the STOP switch on stops the CPU, and turning it off allows the CPU to run. While the STOP switch is on, pressing the SINGLE STEP switch allows the CPU to run for a single instruction and then stops it again, allowing you to step the program one instruction at a time. By default, the STOP button is mapped to the keyboard left arrow, and the SINGLE STEP switch is mapped to the keyboard right arrow. The STOP toggles, and the SINGLE STEP switch is momentary.

If the running program stops the CPU with a HLT instruction, you can resume it from the front panel by turning the STOP switch on and then off again. Universal cards can also stop the CPU, there is no way to override this from the front panel. The RUN LED will be turned off for stop/halt conditions caused by the STOP switch, universal cards requesting stop, or the HLT instruction.

If the front panel display is not frozen and CMA mode is not selected (SEARCH COMPLETE LED off and CMA switch set to DISABLE), the ADDRESS LEDs will show the address of the next instruction to be executed, and the INSTRUCTION LEDs will show the opcode (M1 = OPR, M2 = OPA). Note that this is the next instruction that will be executed after the the CPU resumes, not the last instruction executed before the CPU stopped.

CMA Mode

Console Memory Access (CMA) mode allows you to examine/edit the 4KiB of program storage on the console RAM card using the front panel switches. To use CMA mode, flip the CMA switch to ENABLE (this is a toggle switch). In CMA mode, the ADDRESS LEDs always show the currently selected address, and the INSTRUCTION LEDs show the current data at the selected address in RAM.

To set the selected address, enter it in binary on the twelve ADDRESS/DATA switches (up = 1, down = 0), and press the LOAD switch (mapped to keypad enter by default). You can also decrement or increment the selected address by one with the DECR and INCR switches (mapped to keypad minus and keypad plus by default, respectively). The ADDRESS/DATA switches are all toggles, while the DECR, INCR and LOAD switches are momentary.

To change a value in RAM, first ensure CMA mode is enabled and the desired address has been selected. Enter the desired value on ADDRESS/DATA switches 7-0 (the eight rightmost ADDRESS/DATA switches, up = 1, down = 0), and press the CMA WRITE switch (momentary, mapped to keypad slash by default). The INSTRUCTION LEDs will update to reflect the new value.