platform-trs80m1
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
TRS80 Model I and III This port supports the following configurations currently TRS80 model I with Alpha SuperMem (or compatibles), or Selector (256K+ recommended or a hard disk for swap) and expansion interface (26-1140/1/2), or equivalent. Options: Floppy Disk (somewhat basic support, no format tool yet) RS-232-C Interface(26-1145, or compatible) Hard Disk (Tandy compatible 26-1132) Lower Case Kit (either Tandy 26-1104 or the simple mods) Percom Compatible Doubler Holmes style speed up board (anything using port 254 bit 0) Real Time Clock (supported for time locking, can't do dates as is not Y2K capable, must be at 0xB0) HRG1B Graphics Card Alpha Products Joystick ChromaTRS (as joystick and a graphics device only - need a VDP emulation in xtrs to do console support) Lo-tech or similar IDE CF at 0x40 Tandy HRG (user defined graphics 26-9800) [boot opt micro] Orcim PCG80 [boot opt pcg80] Progamma Intl. 80 Grafix [boot opt 80gfx] In Progress: Exatron stringy Planned: Orchestra 80 sound card Tandy Model I Double Density Kit (26-1143) Support for the FreHD extra features (clock, volume switches) Unsupported: M1SE/M1RE/FreHD (except as far as compatibility features go) TRS80 model III with Alpha SuperMem (or compatibles) (256K+ recommended or a hard disk for swap) Options: Hard Disk (Tandy compatible, so not afaik MIOSYS) Holmes speed up board (using port 95) Real Time Clock (supported for time locking, can't do dates as is not Y2K capable, must be at 0xB0) Micro Labs Graphyx Tandy Hi-Res Card (26-1125) Alpha Products Joystick ChromaTRS (as joystick and a graphics device only - need a VDP emulation in xtrs to do console support) Lo-tech or similar IDE CF at 0x40 Planned: Orchestra 90 sound card Support for the FreHD extra features (clock, volume switches) Unsupported: M3SE (except as far as it's compatibility features go) LNW80 1 with Selector or Alpha SuperMem compatible banking (256K+ recommended or a hard disk for swap) and expansion board. 48K in the base unit required, 64K mod not required Options: Floppy disk (somewhat basic support, no format tool yet) Hard Disk (Tandy compatible) IDE CF at 0x40 Planned: Extra keys (F1 and F2) LNW80 Graphics Modes (once emulator support is done) Upsupported: LNW80 II Low 16K in the base unit. This would be good to support but becomes almost a different port as we could unbank the OS. Alternatively it might be possible to use it for buffers. Note: The LNW80 serial does not permit baud rate setting in software Video Genie & Video Genie I/II / Dick Smith System 80 MkI & MkII / PMC-80/81 / TRZ-80 with EG3014/X-4010/X-4020 and suitable memory expansion (see notes) Options: Floppy Disk (somewhat basic support, no format tool yet) Lower case mod or built in lower case X-4010 expansion interface EG3014 / X-4020 expansion interface EG3016 printer interface EG3020 RS232 interface EG3022 S100 adapter (but no specific card drivers) Percom compatible double density kit HRG1B Graphics Card Lowe Electronics LE18 graphics adapter Tandy style RTC at 0xB0 (only usable for time locking) Anything on the model I list that works with a Genie/System-80 to TRS80 expansion convertor IDE CF at 0x40 Planned: Lowe Electronics FRED Tandy compatible double density kit Unsupported: TRS80 mapped serial/printer port on Video Genie (BUG) Genie IIs/III: These are CP/M capable systems with a different memory model. Any non memory S100 cards that don't match the TRS80/VG devices (ie the X-4010 S100 printer card should work) Notes: (In theory having no RAM but something like a BG 256S 256K RAM S100 card in an expansion unit jumpered for AMOS II 8x32K user banks, with the I/O port jumpered for 0x43 should just work as it'll behave the same way as the SuperMEM for things that matter) Also I suspect an S100 hard disk controller could also be used if a driver was added - providing it doesn't do DMA and it avoids the high ports F8-FF. (What the world really needs is a Quinnterface equivalent with 512K banked RAM - just saying ;-) ) Generally Not Supported: EG 64.3/Lubomir Soft Banker - See the genie-eg64.3 port Various 64K only CP/M adapters (Unless someone knows one that stacks with the supermem!) Would Be Nice To Do Better 80-Grafix - need docs, example apps to debug an emulator TRS80 Model 1 Hires - The UK 'hires' actually a font adapter also needs emulation support Emulator Bugs: Repeating instructions like LDIR appear to be misemulated. LDIR is performed as an emulated block copy, not as an iterated LDI. The real processor actually implements LDIR as "LDI, if not done PC -= 2". FUZIX doesn't do any overlapped LDIR tricks so shouldn't be affected. The interrupt flags are misemulated and RETI is also wrong. Use the xtrs in the EtchedPixels github which fixes the ones that matter. To Do: Only hide/show cursor if curtty == inputty Reclaim 768 bytes by moving irq stack and udata down to 4100 Faster user copiers once it works Fast block copy routines for uget/uput Hint based pre-fetching uget When we have > 512K or so RAM use the rest as a ramdisc Orchestra M3SE video at least Memory Map: 0000-3FFF Various fixed model 1 functionality 4000-40FF Kept clear for ROM bits 4100-7FFF Kernel data, common etc 8000-FFFF Bank0: kernel code 8000-FFFF Bank1: kernel code Remaining banks of 32K are user apps. It is possible with some bankers to overlay the low 32K of RAM but this cannot be done with the systems that use S100 banked RAM. Also by mapping high we have the video accessible. This does mean the Model 1 and III are not binary compatible in user space with the 4 but that'll get fixed when we have relocatable binaries sorted. The kernel doesn't actually need 80K but it also doesn't fit in the available 48K unbanked either (although a minimalish setup might) Note that the current build is an insanely featured one. Turning off the NET and IDE support will shrink it loads and give more buffers. Unfortunately right now some core changes are needed to get to the point we can have configurable options done properly. Setting It Up (current xtrs: https://github.com/TimothyPMann/xtrs with patches) make cp boot.jv3 /whereever/disk1-0 xtrs -model 1 -emtsafe --supermem To set up for hard disk, create a hard disk with the xtrs tools and mkdisk -h hard1-0 # This assumes the default disk size cd Standalone/filesystem-src ./build-filesystem trs80.hd 256 21760 dd if=trs80.hd of=hard1-0 bs=256 seek=1 conv=notrunc tools/trslabel hard1-0 # xtrs -model 1 -emtsafe -supermem You will still need a boot floppy at this point but just boot with device 0 (or hit return). Swap is configured to be on the end of the hard disk Banking Models Currently Supported: Alpha Technology Supermem upper 32K banking. "Selector" for Model 1. Port 31 allows memory reshuffling away from the model 1 default. Either the upper or lower 32K is switchable but not both at once. bits 4/5 control the selection between a further 4 32K banks. Really selector is its own port. Useful rom addresses(Model I) 04C3 -> 64 column 04F6 -> 32 column 0060 -> 14.5*BC uS delay @ 1.774MHz Floppy boot requires a single density disk. The Level II ROM reads disk 0 side 0 track 0 sector 0 (TRS80 disks are 0 offset sector count) into 4200-42FF and then does a JP 4200 (stack is around 407D) Floppy boot for a model III is similar but double density to 4300