Building an Extension Card for the TRS Building an Extension Card - - PowerPoint PPT Presentation

building an extension card for the trs building an
SMART_READER_LITE
LIVE PREVIEW

Building an Extension Card for the TRS Building an Extension Card - - PowerPoint PPT Presentation

Tandy Assembly Springfield, OH 11/10/18 Building an Extension Card for the TRS Building an Extension Card for the TRS -80: 80: Lessons Learned from the Lessons Learned from the RetroStoreCard RetroStoreCard Arno Puder & Sascha


slide-1
SLIDE 1

Building an Extension Card for the TRS Building an Extension Card for the TRS

  • 80:

80: Lessons Learned from the Lessons Learned from the RetroStoreCard RetroStoreCard

Arno Puder & Sascha Häberling Arno Puder & Sascha Häberling

Outline: Outline: 1. RetroStore 2. TRS

  • 80 emulator for Android

3. Understanding the I/O Bus 4. Building the RetroStoreCard

Tandy Assembly Springfield, OH 11/10/18

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4

TRS

  • 80 Emulator for Android
  • Design goals:

○ Well integrated with Android UI. ○ Make use of sdltrs (do not reinvent the wheel!)

  • Features:

○ Model I/III text mode with all the features supported by sdltrs. ○ Support for different screen sizes. ○ Retro fonts by Rebecca Bettencourt http://www.kreativekorp.com/software/fonts/trs80.shtml ○ Different soft -keyboard layouts, external keyboard, game controller, tilt interface. ○ Tutorial system. ○ Chromecast support. ○ Sound. ○ Configurations.

  • First public release on Google Play Store April 16, 2013.
  • Google Play Store listing:

https://play.google.com/store/apps/details?id=org.puder.trs80

slide-5
SLIDE 5
  • Apple and Google made the concept of app stores popular.
  • Idea: create an app store for vintage platforms.
  • Goals:

○ Effortless downloading and installation of retro apps. ○ Support different vintage platforms. ○ Serve as a digital archive preserving retro apps.

  • Related approaches:

○ Retrocomputing Archive (http://www.retroarchive.org/) ○ South West Retro Computing Archive (http://www.retro-computing.org/) ○ ClassicCmp (http://www.classiccmp.org/cpmarchives/trs80.php) ○ System 80 Archive (http://www.classic-computers.org.nz/system-80/software_archive_directory.htm) ○ Many, many, others...

  • Differentiator: we offer open API to access and download retro apps!

RetroStore.org

slide-6
SLIDE 6
slide-7
SLIDE 7

RetroStoreCard

slide-8
SLIDE 8

RetroStoreCard Overview

  • 1. Push button
  • 2. Multi-color status LED
  • 3. Power indicator
  • 4. Micro-USB connector
  • 5. TRS
  • 80 I/O bus connector
slide-9
SLIDE 9
slide-10
SLIDE 10
slide-11
SLIDE 11
slide-12
SLIDE 12

I/O Bus Pins

Name Description Pins D[0-7] Data lines 1,3,…,15 A[0-7] Address lines 17,19,…,31 RD* Read in progress 33 WR* Write in progress 35 IORQ* I/O request 49 IOBUS_WAIT* Force wait-states on Z80 41 IOBUS_INT* Signal interrupt to Z80 39

slide-13
SLIDE 13

I/O Bus Write Cycle

slide-14
SLIDE 14

1 Bit Output

A0 A1 A2 A3 A4 A5 A6 A7 WR* IORQ* D0 D Q CLK 3110 = 1F16 = 000111112

slide-15
SLIDE 15
slide-16
SLIDE 16

Writing to the I/O Bus – First Attempt

> OUT31,0 > OUT31,1 > OUT31,0 > OUT31,1

slide-17
SLIDE 17

Writing to the I/O Bus – Second Attempt

> OUT236,56 > OUT31,0 > OUT31,1 > OUT31,0 > OUT31,1

slide-18
SLIDE 18

Writing to the I/O Bus – Third Attempt

10 OUT236,56 20 OUT31,0 30 INPUT X 40 OUT31,1 50 INPUT X 60 GOTO20 RUN

slide-19
SLIDE 19

Success!

slide-20
SLIDE 20
slide-21
SLIDE 21

ESP

  • W

ROOM-32

  • Low-cost microcontroller including WiFi and Bluetooth.
  • Produced by Shanghai-based Chinese manufacturer, Espressif Systems.
  • CPU:

dual core 32-bit RISC Tensilica Xtensa LX6 @ 240 MHz.

  • FreeRTOS
  • Flash memory: 4MB
  • SRAM

: 520 kB

  • WiFi:

IEEE 802.11 b/g/n

WEP or WPA/WPA2 authentication, or

  • pen

networks.

  • Interface: 16 GPIO pins, SPI, I2C, UART, 10
  • bit ADC.
  • Price point: $11
slide-22
SLIDE 22
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25

Architecture

  • 1. Type in small BASIC bootstrap application to download Z80 code via the

expansion board.

  • 2. Native client uses expansion port to interact with proxy.
  • 3. Proxy uses ESP32's

WiFi to connect to the router and communicate with the Retro Store.

RetroStore

Native Client (Z80 code) Proxy

RetroStoreCard Internet Router 1 2 3

slide-26
SLIDE 26

RetroStoreCard Protocol

Send Receive Description 0x00 101 bytes bootstrap 0x01 <xx xx> CMD Send CMD 0x02 <xx xx> <str> 0x00 Send app title 0x03 <xx xx> <str> 0x00 Send app details 0x04 <xx> Query WiFi status 0x05 <ssid> \t <passwd> Configure WiFi 0x06 <str> Set search parameter 0x07 <b1> <b2> <b3> Send version 0x08 <str> Send WiFi SSID 0x09 <str> Send WiFi IP

slide-27
SLIDE 27

Bootstrap

10 OUT236,56 20 OUT31,0 30 FOR X=0TO100:POKE17152+X,IN(31):NEXT RUN SYSTEM *? /17152

slide-28
SLIDE 28

Bootstrap

10 OUT236,56 20 OUT31,0 30 FOR X=0TO100:POKE17152+X,INP(31):NEXT RUN SYSTEM *? /17152

slide-29
SLIDE 29
slide-30
SLIDE 30

All Good Things...

  • Summary:

○ RetroStore as a curation and preservation effort for vintage platforms. ○ Building modern extensions is not that complicated! ○ RetroStoreCard allows access for a TRS

  • 80 Model III to the RetroStore.
  • Outlook:

○ ROM patch for auto-boot. ○ Expand to other vintage platforms. ○ Reinterpret RetroStoreCard as a general gateway to the Internet. TrsWiki? TrsBox?

  • Complete source and schematics freely available at:

https:// github.com/apuder/RetroStoreCard

Contact: Arno: arno@retrostore.org Sascha: sascha@retrostore.org