When I start BASIC included with TRSDOS 6 I get strangest error message.
Few diagnostic facts I have been able to gather are;
BASIC is not accessing video memory directly etc. but is using API.
I suspect because of licensing it will only run on a TANDY TRS-80 computer. I suspect BASIC is reading some I/O port to verify it is on a TRS-80 machine.
I do not have facilities for trapping I/O using something like an emulator, but if anyone can check if BASIC directly reads and writes an I/O port we can patch that out.
If not with time I will get around to fixing it.
Here is the really cool looking error message:
All of my systems, including the Min-eZ, are shipped with a version of PCGET which can be used to download files via XMODEM on the second serial port. HyperTerm, TeraTerm etc. can be used on the Min-eZ's UART 1 and the file can be stored on RAMdisk, either of the internal flash drives or on an SD card. Instructions are in the $ReadMe.txt file.... if I can figure out how to transfer files to my ez-Min Ez80 based system.
Having done a bit of eZ80 benchmarking, I found the 50 MHz version to typically be the equivalent of a Z80 at about 170-195 MHz. I simply used STOPWATCH and eZ80 run times of about 10 seconds. One of the problems using the internal real time clock (1 second resolution) and short run times is it can produce a nearly 200% error i.e. just over 1 second could be reported as 3 seconds.Takes 3 seconds using actual eZ80 @ 50 Mhz.
I ran this program using a terminal set at 9600 baud. It only prints time, twice but still this takes time.Your eZ80 times make me wonder what else might be going on in your system or if you're executing from flash or possibly RAM with significant wait states. Admittedly under CP/M and MBASIC 5.21, I repeatedly get 6 seconds plus a few hundredths.
Four minutes + 10 seconds on a 4 MHz Z80 would be 250 * 4 or 1000 seconds on a 1 MHz Z80.
1000 / 6 = 167 i.e. eZ80 at 50 MHz being equivalent to a Z80 at 167 MHz which I believe to be more reasonable.
I would agree that UART should not make that big a difference but it does.On an 11 second run, the baud rate isn't that significant and actually insignificant in your revised code. Your times show your eZ80 system to be the equivalent of a Z80 at about 91 MHz whereas my various benchmarks have always been in the range of 167-195 MHz.
Since your eZ80 times are more than twice mine, I'll repeat my unanswered questions:
- Is any of your code running from flash memory (internal defaults to 4 wait states, external = ? waits)?
- Is your RAM set to use wait states? I use zero and that's where CP/M and MBASIC run on my system.
- Has PHI been checked to be 50 MHz? Most F91 systems use the PLL programmed with a multiplier value.
cpu_dly FOR 1,10,1 cpu_dly_1 FOR 1,65535,1 NEXT cpu_dly_1 NEXT cpu_dly
FOR MACRO START,STOP,STEP SCOPE ld HL,($1) ld ($4),HL JR $5 $4 DW 0 ; I hold count when running (+8). $1 DW START ; Start count from xx (+10). $2 DW STOP ; Stop when equal or greater than STOP (+12). $3 DW STEP ; Step to increment by (+14). $5 equ $ ENDMAC NEXT MACRO pointer ld hl,(pointer+8) ; POINTER ld bc,(pointer+14) ; STEP add hl,bc PUSH HL LD BC,(pointer+12) ; STOP LIMIT. OR A ; Clear carry flag. SBC HL,BC POP HL jp nz,pointer+3 JP M,pointer+3 ;> endmac
LD BC,0 LD DE,0 LOOP: DJNZ $ DEC C JR NZ,LOOP DEC E JR NZ,LOOP DEC D JR NZ,LOOP
Hello WSM! Bus settle comment has to do with discussions had here about preserving TRSDOS source as is or a rewrite.I was going by your original references of 11 seconds for 10,000 iterations vs 250 seconds on the 4 MHz emulator and 6 seconds on my eZ80 when also using interpreted BASIC.
I have no idea what it is or why you'd need to do "BUS SETTLE" loops with the eZ80. I've had no bus issues at 50 MHz (20 ns cycle). When porting an OS to different hardware, I believe removing this kind of useless delay is reasonable, perhaps by conditional assembly.
There is no reason a version could not be made to run on this hardware.Would be interesting to see if you could run TRS-80 inside the Brother Powernote or Super Powernote.
Reverse engineering a Z180 powered word processor from the mid 1990s. Inspired by a similar project that ported a CP/M clone to an old Brother typewriter with similar hardware.hackaday.io