Hey Rob,

Sorry for the delayed response ... your message ended up in my SPAM folder for some reason, along with the other responses on this thread. I must have hit the wrong key and marked the thread as SPAM accidentally or something.

After running my simulation yesterday and sending the email, I dug into the design I had done to remind myself. Turns out I had done QUITE A BIT of work back in 2012. I had extended the 8085 CPU with not only relative branch opcode, but also extended it's memory range to 16MB. This was done by:

a. Adding an 8-bit "page" register for each of the 16-bit register pairs (BC, DE, HL and PC). b. Added an opcode to set the "page" register for those 16-bit reg pairs.
  c.  Adding opcodes for long jump operations:  LJMP,  LCALL, LRET
d. Changing the INT sources to perform LONG jump back to page zero of the ROM.
  e.  Patching the main M100 SYSTEM ROM to support LRET from the ISRs.
f. Adding a memory map peripheral that allows memory from the 16-meg space to be mapped to the base 64K space in 8K chunks (or maybe it was 4K chunks). g. Wrote assembly code to test all of the extended OPCODES, then setup the memory mapper with the main PATCHED ROM located at physical address 0x30000 (mapped to the lower 64K) just to test it out. h. Wrote an LCD handler that can accept standard M100 LCD signals from both 8085Ext CPU *and* an ARM/RISC-V CPU at the same time. This module has memory for both interfaces and saves the state in that memory if the other CPU has control of the physical LCD. Then when a Keyboard hotkey is pressed (CTRL-SHIFT-GRAPH 1 or CTRL-SHIFT-GRAPH-2), the module will updated the physical LCD from the saved up SRAM image using an internal state machine.

So the screenshot output from the simulation I posted yesterday was all of that running!

And actually, I would really like to join your "group of engineers" and help with this! I have a whole collection of FPGA boards at my disposal here at home:

   Arty-35T   (Xilinx Artix-7 FPGA)
   CMOD-A7  (Xilinx Artix-7 FPGA)
   Mercury   (Xilinx Spartan-6 FPGA)
   Digilent NEXYS-3   (Xilinx Spartan-6 FPGA)
   miniSpartan-6+   (Xilinx Spartan-6 FPGA)
   DE0-NANO  (Altera Cyclone IV FPGA)
   Brevia2    (Lattice XP2-5E FPGA)

Currently my favorite is the CMOD-A7 because it is small and has easy to use 512K Byte SRAM, is a breadboard form factor and is readily available. But it is not 5V compliant, so that would need to be addressed.

The Arty-35T has more memory, but is DDR3 and a bit more difficult to work with. But the board has Ethernet and other peripherals that the CMOD-A7 doesn't.

I also see there is a Mercury-2 board now with an Artix-7 FPGA, on-board SRAM and on-board 5V I/O translators. But I think this company is a one-man shop and he just makes them based on sales, so I don't know about consistency of availability. But I really like the Mercury-1 boards I have.

I will put stuff together on a github site and also create a block diagram of what I have.

Ken

On 5/22/21 2:18 PM, Rob Messer wrote:
Ken,

That is awesome! I am admittedly a mechanical engineer and I took one semester of computer engineering and VHDL programming and changed majors (I was more of a beer drinker than D&D guy). In any event I will rope in some colleagues and badger them with questions. Another question is whether there are LCD screens close to what the Model 100 had still available (240X64) with similar dimensions. It think backlit would be great.

I have been really saddened to see fewer and fewer Model 100s on Ebay. I also think the machine could be very useful still. I am thinking about people who want to work without distraction of the internet and have some basic capabilities. Imagine adding some minor features like bluetooth file transfer and an SD card slot, that would make this a very useful device. It will be the model 104 :)

If you want to share this on Github that would be great! I will be sure to update you on the progress!

BR

/RGM

On Sat, May 22, 2021 at 9:44 PM Ken Pettit <[email protected] <mailto:[email protected]>> wrote:

    Hey Rob,

    I have an RTL design I worked on YEARS ago where I was trying to
    get the
    Model 100 in an FPGA along with some extensions.  It was back when
    there
    was a lot of talk on the list about a Model 401.  For those who
    weren't
    around then or don't recall, the Model 401 was something that was
    discussed around April Fools day (thus the number 401) about an
    updated
    Model 100.

    I actually had this running somewhat on an Actel Igloo FPGA at that
    time, though not fully.  I believe I had extended the 8085
    instruction
    set to add relative jump and branch opcodes using the "MOV A,A", "MOV
    B,B" etc. opcodes which are basically useless and not used in the
    M100
    ROM.  I was also planning at that time to have a 2-processor system
    where the LCD and Keyboard would be shared by both the extended
    8085 and
    an ARM core.  The keyboard controller I wrote detects a hotkey escape
    sequence to connect the LCD and keyboard to either the ARM
    interface or
    the 8085 interface.

    I just re-ran my RTL simulation and I see that it is at least running
    and generating an output on the RTL testbench LCD monitor that I
    wrote.
    This LCD monitor in the testbench monitors all LCD writes and outputs
    "pixels" as X'x to a Linux /dev/pty device.  Then with minicom
    connected
    using Linux socat, I can see what the emulation is sending to the
    LCD.
    I have attached a snapshot of the output of the simulation (the
    dots are
    actually very small X's, just zoomed out so it's like a 3-point
    font on
    minicom or something). You can see the minicom status line at the
    bottom
    in a very small font.  I can see the time isn't advancing, so maybe
    something not quite right with the clock chip RTL (uPD1990.v).

    If you would like to use this RTL as a starting point, I'm happy
    to post
    it to github and give you a link.  The files in this design are:

    -rw-rw-r-- 1 kpettit users  4108 Apr 16  2012 armspi.v
    -rw-rw-r-- 1 kpettit users 97936 Apr 12  2012 cpu8085.v
    -rw-rw-r-- 1 kpettit users  2468 May  8  2016 fifo1kx13sram.v
    -rw-r--r-- 1 kpettit users  1531 May  9  2016 hvsync_generator.v
    -rw-rw-r-- 1 kpettit users 19422 Mar 31  2012 im6402.v
    -rw-rw-r-- 1 kpettit users  8344 May  6  2016 keymap.v
    -rw-rw-r-- 1 kpettit users 12032 May  5  2016 keyscan.v
    -rw-rw-r-- 1 kpettit users 40316 May  7  2016 lcd.v
    -rw-rw-r-- 1 kpettit users   687 May  9  2016 m100rom.v
    -rw-rw-r-- 1 kpettit users  6383 Apr 13  2012 mapper.v
    -rw-rw-r-- 1 kpettit users 16475 May  7  2016 model401.v
    -rw-r--r-- 1 kpettit users  7842 May  5  2016 nr5_tx8n.vhd
    -rw-rw-r-- 1 kpettit users  6161 May  4  2016 nr5_uart.v
    -rw-rw-r-- 1 kpettit users  5947 Apr  7  2012 pio8155.v
    -rw-rw-r-- 1 kpettit users  1825 Mar 23  2012 ramCore512.v
    -rw-rw-r-- 1 kpettit users  1836 Apr 11  2012 ramCore512x9.v
    -rw-rw-r-- 1 kpettit users  9971 Apr 15  2012 socTop.v
    -rw-rw-r-- 1 kpettit users  1036 May  9  2016 sram32k.v
    -rw-rw-r-- 1 kpettit users  1114 May  7  2016 sram512.v
    -rw-rw-r-- 1 kpettit users  1116 May  8  2016 sram512x9.v
    -rw-r--r-- 1 kpettit users  9053 May  5  2016 uart_rx8n.vhd
    -rw-rw-r-- 1 kpettit users 10794 Apr  7  2012 uPD1990.v

    Ken

    On 5/22/21 11:22 AM, Rob Messer wrote:
    > I have followed this email list for a years and I have never
    asked a
    > question...but here goes! I am sitting here with my model 100 and I
    > had an idea to 3D print a replica case and get my hands on an
    LCD and
    > mechanical keyboard and try to faithfully reproduce the Model
    100 with
    > simple additions. I have enlisted a few friends (we are all
    > engineers)... I was wondering of anyone knows of an FPGA
    > implementation of the Model 100 hardware? I want to make a fairly
    > faithful reproduction short of using an 80C85.
    >
    > Thanks!
    >
    > --
    > Robert Messer
    > BARA Sweden
    >
    >



--
Robert Messer
Palisandergatan 13
Bara Sverige 23040
Tel: 01146708901871
www.linkedin.com/in/ <http://www.linkedin.com/in/>robert-messer-a3833b4



Reply via email to