Close

First working CPU run!

A project log for RC2016/99: TI-99/4A clone using TMS99105 CPU

Retrochallenge 2016/10 entry and winner: try to build a TI-99/4A clone using a TMS99105 CPU and an FPGA. In a month...

erik-piehlErik Piehl 10/02/2016 at 19:210 Comments

Got the CPU working. The video is very lame (shot on my iPhone - unfortunately low res). But the point is, the TMS99105 actually runs and executes instructions! CPU external clock is still 20MHz, so machine cycle time is 200 ns (runs at 5MHz).

There are 8 LEDs on the Pepino board. These are controlled by the CPU. The software listing is below after the video. The program resides on the external RAM chip on the Pepino board. The FPGA demultiplexes the address / data bus and arbitrates access between CPU and serial port loader.

And here is the firmware listing (sorry for the lack of comments). There is one write only IO port at >8000, the top 8 bits are connected to the LED drivers.

* Erik Piehl (C) 2016 October
* boot99105.asm
*
* Compile with: xas99.py -b -R -L list.lst boot99105.asm
* Load with:  ../memloader/memloader 0 boot99105_0000.bin
*

       IDT  'BOOT99'

WRKSP EQU   >1000
OUTP  EQU   >8000

       AORG  0
       DATA WRKSP,BOOT


BOOT
      LIMI  0
; BOOTLP
;      JMP   BOOTLP
;      NOP
;      NOP
;      JMP   BOOTLP

      LWPI  WRKSP
      LI    R1,OUTP
      LI    R0,>100
MAINLOOP
      MOVB  R0,*R1
      SLA   R0,1
      JNE   !
      LI    R0,>100
!     CLR   R2
!delay
      DEC   R2
      JNE   -!delay
      JMP   MAINLOOP

SLAST  END  BOOT

Discussions