En dum idé - Z80 emulator
Postat: 10 november 2018, 14:00:59
Jag kan inte släppa tankarna om den TRS-80 jag hade i sin tid. Jag byggde den om en del:
* Bytte all dynamisk minne till 1 st 32kB SRAM.
* Bytte ut de två PROM (8kB + 4kB) till en enda 16kB EEPROM.
* Byggde in en RTC med supercap back-up.
* Byggde in 128kB SRAM med batteri back-up. Sås som 8kB adressområde och man valde "klump" via en skrivning till en port.
Jag har en Dataman S3 så jag lekte en hel del med detta. Den kan emulera EPROM (laddas med data via COM-port) och sedan bränna EPROM.
* Dekodade PROM'en till fungerande assembler, inkl. fixa några "trick" som sparade plats i PROM och sannolikt identifierar versionen.
* Ändrade vissa L3-funktioner (LOAD, SAVE, TIME$) till att faktisk fungera. Kunde spara ett BASIC-program (upp till 8kB) i valfri bank av den extra SRAM som var, lade till en parameter så att det ville starta automatisk om den parameter var satt.
* Lade in att om det - vid uppstart - fanns program i Bank 0 med autostart-flagga blev det program laddad in och kört.
Det var innan mobilernas tid så jag byggde även en DTMF-sändning och mottagning och använde den till att dels ha telefonlistan i, då kunde jag välja i listan vem jag ville ringa upp och sedan bara lyfta röret inom 30 sekunder, då tog den över linjen, slog numret och lämnade tillbaka linjen - och dels till att visa vem som ringde mig. Var numret inte i min lista blev del listat med nummer, annars med namn
Ganska praktisk med tanke på utlandsnummer osv.
Och nu funderar jag på om man skulle böra "om" med detta projekt. Inte telefondelen men TRS-80 delen och hotta upp det hela lite vid att låta en µC emulera själva Z80-delen. Då kan jag ge BASIC'en tillgång till UART och portpinnar och montera ett LCD på det hela för att ha en "riktig" TRS-80 men med modern display osv.
Men jag funderar på om det verkligen är vad jag vill, jag funderar på om inte det är det att ha BASIC på en modern µC som egentligen är grejen. Alltså ett mycket okomplicerat programspråk för snabba tester och sedan kombinera det med lite portar, UART osv. för att kunde testa grejer och evt. övervaka något vid att ha en standard låda som kan programmeras medelst en terminalsnöre.
* Bytte all dynamisk minne till 1 st 32kB SRAM.
* Bytte ut de två PROM (8kB + 4kB) till en enda 16kB EEPROM.
* Byggde in en RTC med supercap back-up.
* Byggde in 128kB SRAM med batteri back-up. Sås som 8kB adressområde och man valde "klump" via en skrivning till en port.
Jag har en Dataman S3 så jag lekte en hel del med detta. Den kan emulera EPROM (laddas med data via COM-port) och sedan bränna EPROM.
* Dekodade PROM'en till fungerande assembler, inkl. fixa några "trick" som sparade plats i PROM och sannolikt identifierar versionen.
* Ändrade vissa L3-funktioner (LOAD, SAVE, TIME$) till att faktisk fungera. Kunde spara ett BASIC-program (upp till 8kB) i valfri bank av den extra SRAM som var, lade till en parameter så att det ville starta automatisk om den parameter var satt.
* Lade in att om det - vid uppstart - fanns program i Bank 0 med autostart-flagga blev det program laddad in och kört.
Det var innan mobilernas tid så jag byggde även en DTMF-sändning och mottagning och använde den till att dels ha telefonlistan i, då kunde jag välja i listan vem jag ville ringa upp och sedan bara lyfta röret inom 30 sekunder, då tog den över linjen, slog numret och lämnade tillbaka linjen - och dels till att visa vem som ringde mig. Var numret inte i min lista blev del listat med nummer, annars med namn
Ganska praktisk med tanke på utlandsnummer osv.
Och nu funderar jag på om man skulle böra "om" med detta projekt. Inte telefondelen men TRS-80 delen och hotta upp det hela lite vid att låta en µC emulera själva Z80-delen. Då kan jag ge BASIC'en tillgång till UART och portpinnar och montera ett LCD på det hela för att ha en "riktig" TRS-80 men med modern display osv.
Men jag funderar på om det verkligen är vad jag vill, jag funderar på om inte det är det att ha BASIC på en modern µC som egentligen är grejen. Alltså ett mycket okomplicerat programspråk för snabba tester och sedan kombinera det med lite portar, UART osv. för att kunde testa grejer och evt. övervaka något vid att ha en standard låda som kan programmeras medelst en terminalsnöre.