Welcome, Guest. Please login or register.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - elmer

Pages: [1] 2 3 4 5 6 7 8 ... 10
Programming / Re: IS-DOS crash bug.
« on: 2021.January.23. 21:59:30 »
Yes I think you're right... it's a binary number with leading 0s, but only 7 digitts! :oops: I think it is meant to be 10h, which resets the channels and devices. Having said that it seems unlikely that that piece of code has ever been executed, as it is only a final attempt at doing *something* if it is unable to open its normal channels.

OK, thanks, I'll change it to 10h, which sounds like the right value.

I think that I have managed to get very *close* to triggering that piece of code while testing the latest IS-DOS changes on a 64KB Enterprise in EP128EMU.

Allocating a dedicated segment for IS-DOS means that there isn't enough memory left on an EP64 for an 80-column text screen, and that fallback code seems to be activating and switching to a 40-column text screen.  It is nice to know that you professionals at IS were programming so defensively!  ;-)

I'm sure it says it somewhere, but I agree it is not in the obvious place in the kernel spec and I can't find it now!

Thanks for the information, I'll be careful to remember that for the future. :)

Hardware / Re: Like a Z180, but much better ... the Z280
« on: 2021.January.23. 21:49:51 »
I don't think any of the standard EP software uses undocumented features of the Z80, the IS programmers were professionals! :mrgreen:

Hahaha ... good for you guys! :lol:  ;-)

My folks in the games-industry side of things were always trying to push the hardware performance to the limit, and so the "undocumented" instructions were considered fair game to use in shipping products.

Those extra half-IX/IY opcodes are a lot more useful than the 6502's "undocumented" instructions.

When the CMOS 65C02 came around, very little software broke IIRC.

When Zilog made the CMOS Z80, thankfully the undocumented instructions still worked.

OK, so Z8S180 might be usable from a system point-of-view.  I wonder if the SD adapter code is also clean?

For some reason, I think that it might be interesting to run the Z8S180 at 6MHz, and see what kind of performance boost you would get over a 6MHz Z80.

Hardware / Re: Like a Z180, but much better ... the Z280
« on: 2021.January.23. 16:38:09 »
Same problem with the original Z180. But the Z8S180 version have a option for double the the clock, then you got the right speed.

Have you actually tried a Z8S180?

How did your experiment with the Z180 work out?

Did EXOS/EXDOS/IS-DOS/BASIC all work without using any of the undocumented IXH/IXL/IYH/IYL instructions?

Programming / Re: IS-DOS crash bug.
« on: 2021.January.23. 16:27:32 »
As I keep working on the IS-DOS source code, I have just come across this.

It looks like the flags that are sent to the EXOS RESET function are wrong, at least according to the documentation that I have seen.

Is it a bug?

Another thing ... why is the SP saved and loaded before and after the EXOS RESET?  The documentation does not mention that the EXOS RESET changes the SP ... is the documentation wrong?

Code: [Select]
; This routine attempts to ensure that IS-DOS's keyboard, video and editor
; channels are open. It does this by first trying to open them, and ignoring
; 'channel exists' errors. If some other error occurs, then the editor, video
; and keyboard channels are closed, and an attempt is made to re-open them. If
; this fails, then all channels up to the first one used by IS-DOS batch files
; are closed, and the open again attempted. If this fails, then another open
; attempt is made with the video in 40 column mode. If this still fails, then
; as a last resort an EXOS reset is done, closing all channels (including
; batch file channels). If it is still impossible to open the channels, then
; IS-DOS gives up and prints 'FATAL IS-DOS ERROR' on the status line and, in
; the traditional Enterprise 'I've given up' way, flashes the border.
CALL OPEN ; Make sure kbd, editor & vid are open.
RET Z ; Ret if OK.
CALL CLOPEN ; Else close all three and try again.
RET Z ; Ret if OK.
LD H,0 ; Else close all user channels.
CP ISCHAN## ; Reached first IS-DOS channel ?
JR NZ,CLCHAN ; Close next if not.
CALL CLOPEN ; Attempt to open again.
RET Z ; Ret if OK now.
PUSH AF ; Else save error code.
LD (VIDMOD),A ; Else try in 40 column mode.
RET Z ; Ret if OK with 80 col. error code.
EXX ; Else reset EXOS.
PUSH HL ; Save HL'.
LD (CLI_SP##),SP ; Save SP.
LD C,0001000B ; Forcibly close all channels. <<<--- BUG ???
LD SP,(CLI_SP##) ; Restore SP.
CALL OPEN ; Try openning one more time.
RET Z ; Ret if OK, else give up.
JR Z,FIS10 ;   status line & flash border.
LD A,01001001B
LD B,3

Hardware / Re: Like a Z180, but much better ... the Z280
« on: 2021.January.21. 22:14:08 »
Same problem with the original Z180. But the Z8S180 version have a option for double the the clock, then you got the right speed.

Hahaha ... funny that you should mention the Z8S180, because one of those was included with the Z280 that I bought yesterday! ;-)

Hardware / Re: Like a Z180, but much better ... the Z280
« on: 2021.January.21. 21:16:36 »
OTOH, it would need a small PCB designed for it, both because it is a PLCC chip, and also because it needs a TTL 8-bit latch added for the low 8-bits of the address bus. But IMHO that also gives you a good location to add the 20MHz, 16MHz, or 12MHz TTL oscillator that you need to use!

Damn! It looks like the Z280 is probably not going to be a good match for the Enterprise ... the CPU itself runs at half the speed of the external clock. :cry:

Hardware / Re: Like a Z180, but much better ... the Z280
« on: 2021.January.21. 17:55:17 »
And now that you mention the Enterprise sequel.... it was already projected, effectively with a 6Mhz clock as standard. It had shape and was real, now we know. You can see it on Werner's thread.

Yes, I have read that thread, and I would have loved to have one of those machines! :)

I would like to create something similar to that today, with SD card instead of the floppy ... but now that I know that I have the bad Nick chip in my Egyptian EP64, I have to wait until I can find an affordable Enterprise (or just motherboard) that has a good Nick chip on it. :(

Unfortunately Enterprise 911 was not a real sequel, they just inserted a 6MHz z80 CPU, additional RAM, if i remember well it had 320KB, and a 3,5' floppy was built in.

Back in the 1980's, I would have happily seen that as a worthy sequel to the EP128! ;-)

As I work with the IS-DOS source code, I have finally remembered that I took a similar path from the old-and-slow M80/L80 to the fast Z80ASM back in 1986.

I have also remembered that I abandoned using the EP128 as my primary development machine sometime back then, precisely because it didn't have enough memory to run a useful sized RAMdisk.

IIRC Gryzor (and maybe Renegade) was actually written on an Amstrad 6128 with both the DK'Tronics 256KB RAM and 256KB Silicon Disc expansion boards.  There is an old magazine interview from the time that mentions me using that as my Gryzor development system.

If we check overclocking from Dave's perspective then the best is 6MHz, because by setting bit1 of 0bfh port Dave behaviour will be the same like on a 4MHz machine, but anyway i think 6MHz should be the base of Enterprise instead of 4MHz, and 8MHz is a good choice.

Yes, 6MHz is the obvious choice for an upgrade, precisely for that reason, and it would have been a good Z80 upgrade speed back in the 1980s.

But when thinking of a Z280, which probably wouldn't even have been affordable to put into a home computer at the time, 6MHz seems just a little to slow! :mrgreen:

The best thing in Zozo's turbo realisation, that you can switch between the CPU speeds on the fly, and you can turn back to 4MHz when you want.

That is perfect for a Z80 upgrade, but it really wouldn't work out quite as well for a Z180 or Z280 upgrade, because they will run faster than a Z80 at the same clock speed because of the CPU pipelining.

Z180 main advantage, it is still in production (like the normal Z80), easy to get it. Previously I never see any available Z280! (And at this case, the price: 8.99$ + 44.06$ shipping to Hungary, +27% VAT -> 67.37$ total price)

If you want me to get you one or more of those chips, it seems like a small (<0.22KG) package costs me $15.25 to send to Hungary, and tax is 7% here.  I don't know if they would charge you VAT at the receiving end if the package is marked as a "gift".

Errrm ... I also still have 2 512KB memory expansion boards left for sale! :lol:

I currently don't know, but how about internal I/O registers? There are also problem with Z180, but least can relocated (EXOS 2.4 move these to 40-7Fh, for avoid collosion with EXDOS card).

Yes, I've heard that the internal I/O locations on the Z180 can cause problems.

There is also the unfixable problem that it doesn't (AFAIK) work with the undocumented IXH/IXL/IYH/IYL opcodes that were widely used by Z80 programmers in the 1980s.

The Z280 puts it internal I/O registers into a different 64KB I/O region (I/O addresses are 24-bit), and it does officially support those previously-undocumented IXH/IXL/IYH/IYL instructions.

OTOH, it would need a small PCB designed for it, both because it is a PLCC chip, and also because it needs a TTL 8-bit latch added for the low 8-bits of the address bus. But IMHO that also gives you a good location to add the 20MHz, 16MHz, or 12MHz TTL oscillator that you need to use!

Hardware / Re: Like a Z180, but much better ... the Z280
« on: 2021.January.20. 22:12:01 »
Have you read this thread about overclocking the EP?


I read it again, and if I am understanding it, any replacement CPU *MUST* use the clock from the Nick chip, or accesses to video memory will break.

It seems as though Zozo and you other hardware-experts have already tested and figured out how to overclock Dave with a 20MHz (or 16MHz) crystal, and so use a 10MHz (or 8MHz) CPU.

From my POV, I think that I prefer the idea of running the computer at 8MHz rather than 10MHz, because then all of Dave's audio register values just need to be doubled in order to get the correct frequencies for any game sound.

Somehow it also just seems like a more reasonable speed for CPUs in the late 1980s, when the Z280 came out.

From my personal curiosity, I wonder what an Enterprise-sequel could have looked like back in 1987-1989.

As soon as you get much further than those years, it was becoming clear that the IBM PC and its clones were going to take over the entire home-computer market. :ds_icon_frown:

Hardware / Re: Like a Z180, but much better ... the Z280
« on: 2021.January.20. 00:04:42 »
It runs on 5V, it has a Z80-compatible bus mode, and it offers internal clock-doubling!  :shock:

Oh dear, no it doesn't! :oops:

Wikipedia is wrong and it offers clock-division instead, so the CPU clock can be 1,2, or 4x the bus clock, but you've still got to give the CPU a higher clock speed.

That presumably means that it would need a board with its own clock, and then either feed that clock into the Enterprise motherboard, or directly tap the Enterprise's own 8MHz or 12MHz clock signal.

Hardware / Like a Z180, but much better ... the Z280
« on: 2021.January.19. 23:00:44 »
I can see that there are a number of threads where people have talked about putting a Z180 into an Enterprise ... but how about the Z180's bigger and better (but less successful) cousin from 1987, the Z280?

It runs on 5V, it has a Z80-compatible bus mode, and it offers internal clock-doubling!  :shock:

I didn't think that there would be any of the chips still available, but apparently there are still a *few* for sale.

Programming / Re: IS-DOS crash bug.
« on: 2021.January.15. 20:51:03 »
Here is the final set of changes to the IS-DOS 1.0 source to convert it to fully build with Z80ASM and SLRNK1.

The advantages of Z80ASM and SLRNK1 are ...

1) It is much faster than M80/L80.
2) There is no need to output the .REL files with different names to the .MAC files.
3) Labels are significant to 16 characters (rather than 6 in L80), allowing them to be more readable.
4) SLRNK1 can link to Page3 ($C000-$FFFF) without leaving Page3 unused in CP/M. This means that IS-DOS can now be built on an actual Enterprise!
5) SLRNK1 does not put a relocation header onto the output file, meaning that the output that it writes is directly usable as IS-DOS.SYS (i.e. there is no need to use SJASM to strip junk off the start of IS-DOS).

The only significant changes from the source code that I posted a few days ago, was to fix labels that were actually wrong, but worked OK with M80/L80 because the first 6 characters were correct.

I have included new builds of XCPM that use the full 64KB of Z80 memory, to take advantage of SLRNK1 not needing to leave $C000-$FFFF free for the linked program.

Programming / Re: IS-DOS crash bug.
« on: 2021.January.15. 20:30:31 »
Ok.... maybe I offended somebody, so I am going to explain me.

Haha ... I don't think that any English speaker would be offended by what you said! :)

For some of us, the imprecision of the English language is one of its charms, and it is the source of a lot of British humour. ;-)

Programming / Re: IS-DOS crash bug.
« on: 2021.January.14. 19:56:32 »
And you can make an EXOS/EXDOS program that can be run from IS-DOS or loaded as an EXOS program! https://enterpriseforever.com/programming/com-file-for-is-basic-and-is-dos/ :mrgreen:

Nice trick! :ds_icon_cheesygrin:

Programming / Re: IS-DOS crash bug.
« on: 2021.January.14. 19:30:58 »
May be we could edit more intelligible texts with more space available.

Yes, this is something that can reasonably be done ... as long as they don't all get much longer, and so use up a lot of extra space.

There are only about 320 bytes of usable space left in the current IS-DOS.SYS program file, and in where it actually runs when in memory on the Enterprise.

That really isn't a lot of space to play with, and I need most, or maybe all, of that memory to improve the performance and capabilities of the video driver, which is what I personally feel is the most-important thing to add to an IS-DOS version 1.1, because it directly effects the user-experience of running existing programs like WordStar, VEDIT and Turbo Pascal.

Beyond that, adding some MSX-DOS2 functionality (or CP/M 3, or Z-System) will need a major reorganization of how IS-DOS actually runs when it is in memory, and that is likely to break things and need a lot of work and testing to make it stable.

Please remember, from a programming point-of-view, you can already accomplish nearly all of this extra functionality just by using native EXOS and EXDOS calls within an IS-DOS program, or you can just write a native EXOS application.

Programming / Re: IS-DOS crash bug.
« on: 2021.January.12. 18:33:45 »
Here is the latest IS-DOS source, buildable with either Z80ASM or M80, both using the L80 linker.

Bruce's EXDOS3 changes are included, but currently disabled so that this corresponds exactly to version 1.0 of IS-DOS.SYS

For anyone that wants to track the differences, here is what I needed to change from the original files that Zozo posted ...

"FCB1" and "FCB2" were defined in both START.MAC and the private EXDOS CLIDATA.MAC.  I have renamed the IS-DOS ones, used in START.MAC/CLI.MAC/CMD.MAC.

"ORM" was defined in both CLIV.MAC and the private EXDOS CLIVAR.INC.  I have renamed the IS-DOS ones, used in CLIV.MAC/CMD.MAC.

All uses of the M80-specific "CODE" macro, which were used to either define self-modifying code addresses, or define single-byte opcodes used to skip over the next instruction (to avoid branch instructions), have  been removed and replaced with code and comments that work on both assemblers.

Most of the uses of "IF1" and "IF2" have been changed, since Z80ASM only needs a single pass to build the source.  There are a couple of files left that still use these, but they aren't critical to building a functioning IS-DOS.SYS.

I have included the Z80ASM.COM and SLRLNK1.COM in the archive, both configured (using their CONFIG programs) to default to ".MAC" source files and ".SLR" script files (which avoid the need to rename files to get around CP/M's 128-character line length limit).

There are also 32-bit and 64-bit Windows builds of the modified XCPM that works with Z80ASM, together with a patch file for the changes from the current version of lgb's "ReCPM" project on github.

Enjoy! ;-)

Pages: [1] 2 3 4 5 6 7 8 ... 10