Home » RBC Forums » General Discussion » Interested in a Z280 SBC (Z280 SBC retrobrew (CPU280 Revival))
() 1 Vote
Re: Interested in a Z280 SBC [message #4719 is a reply to message #4717] |
Wed, 23 May 2018 13:34 |
hperaza
Messages: 68 Registered: March 2017
|
Member |
|
|
New version of the Z280 assembler just released (beta 6, download link above).
Changes and additions:
- Fixed load instructions that use half-index registers on both sides (e.g. ld ixh,ixl): the prefix was being output twice. Those instructions are undocumented on the Z80, but legal on the Z280.
- suppress all code output for false conditionals (EQU was still getting into listing.)
- colons are now required after labels that are not followed by an opcode (in other words, when the label is the only thing on the line besides a comment); this was done in order to detect errors like the following:
ld a,5
stc ; zsm4b5 sees 'stc' as a label,
; zsm4b6 flags the statement as error
ret
- added .LIST and .XLIST pseudo-ops for compatibility with M80.
- added signed LESS relational operator from ZSM 2.9.
- assembly date and time now shown on listing if the feature is supported by the OS.
- added MACROS, NOMACROS and XMACROS option to the LIST command, as well as the M80-compatible shortcuts .LALL, .SALL and .XALL.
- nested < > in MACRO arguments are now properly propagated to nested MACROs (one pair of < > removed for each nesting level).
- the PAGE statement can be followed by an expression argument to set the page length.
|
|
|
|
Re: Interested in a Z280 SBC [message #4743 is a reply to message #4720] |
Thu, 07 June 2018 06:39 |
hperaza
Messages: 68 Registered: March 2017
|
Member |
|
|
New version of the Z280 assembler just released (beta 7, download link above).
Fixes, changes, etc:
- EQU/DEFL processing should be correct now (EQU no longer gives an M error if value and mode of a symbol is the same, DEFL will generate an error when redefining a value defined with EQU).
- LIST options are now reset before each pass.
- ADD, SUB, AND without an argument did not produce an error message.
- Unterminated macros and conditionals now produce a T error at the end.
- New command line syntax (see below)
The assembler is now initiated by typing:
Where command is optional and has the following format:
- [relfile],[prnfile]=srcfile[/option][/option...]
If no command is specified, the assembler will enter an interactive command mode and prompt for the next command to be executed. relfile, prnfile and srcfile are valid CP/M file specifications and may contain a drive specification and extension. The default extensions are the following:
- relfile: REL
- prnfile: PRN
- srcfile: MAC
The following device names can be used as well in place of a file specification (normally to redirect the output of the listing):
- LPT: or LST: (line printer)
- CON: or TTY: (user's console)
Options are a single char preceded by a slash. Some options require an argument. If several options are specified, each one must be preceded by a slash:
- /L (force generation of a listing file)
- /Dsymbol[=value] (define symbol, optionally assigning value to it. The value is a numeric constant following the standard format (i.e. nnnn, nnnnH, etc.) If no value is specified, 0 is assumed)
- /Sn (set the maximum symbol name length in the REL file, allowed value of n is 5..8 and defaults to 6)
- /M (initialize block data areas defined by DS to zeros)
- /U (treat all undefined symbols as externals)
See also the readme.txt included in the package.
|
|
|
Re: Interested in a Z280 SBC [message #4744 is a reply to message #4743] |
Thu, 07 June 2018 07:20 |
hperaza
Messages: 68 Registered: March 2017
|
Member |
|
|
Forgot to mention, I have successfully assembled the CPU280 ROM code using zsm4b7. Mostly thanks to the new /U option, as the source files assume that all undefined symbols are External. Still, minor modifications were necessary:
- Replaced ++ and -- in Z280 instructions by + and - (the ++ and -- were used as hints for the pre280 preprocessor to generate long versions of some Z280 instructions; they are not an official Zilog syntax. ZSM4 can determine the operand size automatically).
- The 'defb' instructions generated by pre280 were removed from the include (*.mac) files and the original Z280 instructions restored (a limitation of pre280 is that include files needed to be processed separately, and the top module has to include the modified copy and not the original).
- Relational operators such as =, >, <=, etc. in conditionals were replaced by eq, gt, le, etc. respectively (the = > <= forms are an extension of the SLR180 assembler and were not implemented in ZSM4 because they conflict with the syntax of Z280 mnemonics)
- The diskio.280 contains the following lines:
TransA: defb 1,3,5,7,9,11,2,4,6,8,10,
...
TransB: defb 1,3,5,7,9,11,2,4,6,8,10,
...
TransC: defb 1,3,5,7,9,11,2,4,6,8,10,
...
TransD: defb 1,3,5,7,9,11,2,4,6,8,10,
note the extra comma at the end. The comma is superfluous and was removed, as it triggers a syntax error in ZSM4. - In the ldrio.* files there are a couple of macro definitions that end like this:a label before 'endm' is accepted by SLR180, but not by ZSM4/M80/RMAC; 'endm' is now simply moved to the next line.
- In loader.280 the following statement can be found:where ValNum is an external variable. The problem is that the standard REL file format does not allow external 8-bit values. The instruction was therefore modified:
- Again in loader.280, 'Boot' must be declared as PUBLIC (e.g. by using a double-colon), as it is referenced by the kernel.280 module.
- Renamed ldos.mrl to ldos.rel (old ldos.rel deleted, as it was meant for SLRNK and therefore was not in the standard REL format)
Linking of both the loader and the BIOS is now done with Digital Research's LINK. That means that pre280 is no longer necessary, neither are SLR180 nor SLRNK.
The Windows Build scripts were modified and Linux scripts were added.
The diff file is attached, as well as a zip file containing the new source tree (BTW, who's the official maintainer of the package?). Once you unzip it, cd to the SYSTEM directory and run the Build script, it should compile cleanly without error messages and produce the system.evn and system.odd ROM images (note that the zxcc Linux binaries are not included, they are assumed to be somewhere in your shell's PATH).
I tried the ROMs in my CPU280 and they work with no problems. In fact they are the ones I use now.
[Updated on: Fri, 08 June 2018 00:29] Report message to a moderator
|
|
|
Re: Interested in a Z280 SBC [message #4746 is a reply to message #4744] |
Thu, 07 June 2018 10:45 |
|
Wayne W
Messages: 384 Registered: October 2015 Location: Fallbrook, California, US...
|
Senior Member |
|
|
hperaza wrote on Thu, 07 June 2018 07:20The diff file is attached, as well as a zip file containing the new source tree (BTW, who's the official maintainer of the package?. Once you unzip it, cd to the SYSTEM directory and run the Build script, it should compile cleanly without error messages and produce the system.evn and system.odd ROM images (note that the zxcc Linux binaries are not included, they are assumed to be somewhere in your shell's PATH).
Well, I hesitate to think of myself as the official maintainer, but I did create the GitHub repository and developed the existing build scripts. The intent was really just to have someplace where everyone could always find the latest code.
Over the next couple days, I will just confirm that the new build script and toolset creates byte identical output. I would also invite comments from anyone else involved with CPU280 concerning switching the build toolset.
If there are no concerns, then the repository could be updated. I could take your archive and do it for you or you could fork the current trunk in GitHub and submit the changes. Using GitHub to submit the changes would ensure you are credited for all the updates.
One last question. I may have missed it, but I have not seen the source code to your assembler. Are you planning to make that public?
Thanks,
Wayne
|
|
|
Re: Interested in a Z280 SBC [message #4747 is a reply to message #4746] |
Thu, 07 June 2018 16:29 |
hperaza
Messages: 68 Registered: March 2017
|
Member |
|
|
Wayne W wrote on Thu, 07 June 2018 10:45Over the next couple days, I will just confirm that the new build script and toolset creates byte identical output. I would also invite comments from anyone else involved with CPU280 concerning switching the build toolset.
You will not get byte-identical output, at least not compared to the previous 1.20.2 version. That's because: 1) an instruction was changed in loader.280 (see pt. 6 in my previous message); 2) ZSM4 and Pre280 may disagree on the operand size of certain Z280 instructions; 3) DR LINK is now used to build the loader (DR LINK is unique in that it groups code and data segments from different modules together; while ZLRNK is like L80 where modules are simply chained after each other unless explicit /P and /D options are specified, which results in fragmented code and data segments); and 4) the date string in the sign-on message was changed as well.
Quote:If there are no concerns, then the repository could be updated. I could take your archive and do it for you or you could fork the current trunk in GitHub and submit the changes. Using GitHub to submit the changes would ensure you are credited for all the updates.
I'm not familiar with GitHub, but I can try (I normally use SourceForge).
Quote:One last question. I may have missed it, but I have not seen the source code to your assembler. Are you planning to make that public?
The source code has not been released yet, but yes, I'm planning to make it public. I just want to add first all the features I have in my TODO list and fix some pending issues (very few remain).
Also I would like to write some documentation for it, but since English is not my native language it can take some time (thus, any help will be very much appreciated!).
|
|
|
|
Re: Interested in a Z280 SBC [message #4760 is a reply to message #4754] |
Sun, 17 June 2018 05:54 |
|
Wayne W
Messages: 384 Registered: October 2015 Location: Fallbrook, California, US...
|
Senior Member |
|
|
Wayne W wrote on Fri, 08 June 2018 13:06hperaza wrote on Thu, 07 June 2018 16:29You will not get byte-identical output, at least not compared to the previous 1.20.2 version. That's because: 1) an instruction was changed in loader.280 (see pt. 6 in my previous message); 2) ZSM4 and Pre280 may disagree on the operand size of certain Z280 instructions; 3) DR LINK is now used to build the loader (DR LINK is unique in that it groups code and data segments from different modules together; while ZLRNK is like L80 where modules are simply chained after each other unless explicit /P and /D options are specified, which results in fragmented code and data segments); and 4) the date string in the sign-on message was changed as well.
Right, sorry, that makes sense. I will just run the new build script and confirm it works on my CPU280.
Thanks,
Wayne
Hi Hector,
I did run the revised build script and it seemed to work fine on Windows. Unfortunately, I did not get a chance to get out my CPU280 and test the ROM image that was created before I had to go out of town. I will be out of pocket for about 3 weeks and will try it when I return.
Thanks,
Wayne
|
|
|
Re: Interested in a Z280 SBC [message #4761 is a reply to message #1189] |
Tue, 19 June 2018 02:00 |
stefan_n
Messages: 11 Registered: June 2018
|
Junior Member |
|
|
Hi,
Stefan Nitschke here, please let me clarify some points about my fork of UZI280 for the REH CPU280 board.
First of all about the license, I had to set the license to non-commercial only (temporarily) because i was in progress to make a full-blown Z280 ANSI like C compiler available for UZI280. Unfortunately none of the deals worked out and as a result i lost interest in the project. And, more important, i forgot to change the license back to a MIT license as originally intended, lazy me !!
Actually my version of the UZI280 kernel is under a MIT license. BTW this is not really new, many uncounted moons ago i informed Harald Brower, when he worked on his UZI180, that he can use my code without any restrictions.
In case this statement is not sufficient for you i can send the kernel sources with an MIT license to Fritz who is hosting my version. Well i am better going to send him the archive anyway while i am on it.
@Alan, Doug Braun's original UZI280 had no support for split I/D. Please have a look at machdep.c initmmu(): The MMU is initialized with 0x8800 means no split I/D for user and system space. Somehow i have the feeling of a Deja vu while writing this...
It was me who beefed up the linker and the UZI280 kernel to support split I/D (besides several other things) but i gave up on it due to a questionable QC compiler license. BTW the quality and reliability of the code generated by the compiler was questionable as well.
Therefore I switched to the HiTech C compiler for my fork of UZI280, while keeping binary compatibility for user space applications for both split- and non-split I/D. The available archive with the compiler binaries is based on the original HiTech compiler files patched with the provided CPM emulator to make them directly executable on UZI280. This way i was able to use the HiTech C compiler to compile and link the kernel and applications on the target system.
Reaching my initial goal: A self-hosting system without any questionable license issues!
But without the possibility to link binaries with split I/D. Maybe the HiTech linker can be modified for that but i never tried. AFAIK the sources of the HiTech C compiler have never been made available. If i recall correctly HiTech told me the sources got lost (its a shame, i never came along any other ANSI like C compiler with such a small foot print on memory usage). The archives also contain the source for the modified CC and the Z280 optimizer written by Alexander and me.
The sources with the modifications to the HiTech runtime libs (UZI280 adaption and some manual Z280 code optimizations for floating point calculations, etc) got lost due to a partly HD crash. Same happened to the sources of mostly all UZI280 utilities.
There is a very small chance that at least the sources for the modified HiTech runtime libraries are still on one of my old CPM partitions but for checking that i first have to find my old CPU280 system. It is still around somewhere i just don't recall where i put it.
- Stefan
[Updated on: Tue, 19 June 2018 02:01] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
Re: Interested in a Z280 SBC [message #4779 is a reply to message #4768] |
Sun, 24 June 2018 09:49 |
hperaza
Messages: 68 Registered: March 2017
|
Member |
|
|
New version of the Z280 assembler just released (beta 8, download link same as before).
Fixes, changes, etc:
- sending listing directly to the printer (LPT: device) should work correctly now.
- nested <>s allowed in IRPC macros.
- new command-line options /Z0, /Z1 and /Z2 to set the initial target CPU type to Z80, Z180 and Z280 respectively.
- fixed a bug in IFIDN/IFDIF string comparison.
- fixed 'ldw ix,(ix+n)' and 'ldw (ix+n),ix' instructions, where n is a 8-bit constant: they no longer produce a syntax error and the expected object code is generated. Thanks to Tony Nicholson (the only beta tester?) who found the bug.
- added .LFCOND and .SFCOND as shortcuts for LIST COND and LIST NOCOND respectively, for compatibility with M80.
[Updated on: Sun, 24 June 2018 09:51] Report message to a moderator
|
|
|
|
|
|
|
Re: Interested in a Z280 SBC [message #4890 is a reply to message #1189] |
Tue, 10 July 2018 18:18 |
|
agn453
Messages: 68 Registered: June 2018 Location: Newcastle, NSW, Australia
|
Member |
|
|
Hello all!
I'm currently tinkering with one of Bill Shen's Z280RC boards and porting software with the aim to get a banked-memory CP/M-Plus running. I've been using Hector Peraza's new ZSM4 and building software natively.
[To get around restrictions on posting URLs for this message (my first posting here), I'll put the rest of the details in the next message]
--
Tony Nicholson
[Updated on: Tue, 10 July 2018 22:43] Report message to a moderator
|
|
|
|
|
|
Re: Interested in a Z280 SBC [message #4899 is a reply to message #4893] |
Wed, 11 July 2018 10:17 |
|
lowen
Messages: 226 Registered: August 2016 Location: Western NC USA
|
Senior Member |
|
|
Wow, so many replies, so little time....
Tony, just wow! Those translated comments are going to be so nice. Thank you!
Rienk, thanks so much for taking the time to redraw in kicad. I haven't had time to look through the files as yet, but I will be doing so as soon as I can.
Andrew, my CPU280 isn't really photogenic right now, but Wayne posted a nice photo of his setup upthread, but I believe you're looking for a bit more than what's in that photo. I'm glad you're enjoying the thread!
Bill, again, just wow! Your enthusiasm for the Z280 is so very gratifying to me.
Hector, the assembler is coming along nicely I see! I'm looking forward to the source being available.
All, this has been a team effort, for sure, and I thank you all for all of your help!
--
Bughlt: Sckmud
Shut her down Scotty, she's sucking mud again!
|
|
|
|
|
|
|
|
|
|
|
Re: Interested in a Z280 SBC [message #5060 is a reply to message #4989] |
Tue, 28 August 2018 05:41 |
|
lowen
Messages: 226 Registered: August 2016 Location: Western NC USA
|
Senior Member |
|
|
It's been a little bit since I last posted parts status on the thread, so here goes:
I have four IDE boards available, and nine CPU280 boards. I think I have enough parts on-hand to send out three or four hard-to-find parts kits, limited primarily by my stock of COM81C17 chips (I tend to keep a small amount on-hand of these chips and order only when needed). I do have over 20 Z280 CPUs on-hand, so if you need a Z280 for a different project (such as building one of Plasmo's neat RC2014-compatible boards) I can help out with that.
I've put my CPU280 in storage for a bit as I work on my home computer lab room relocation, but I can pull it out if needed on relatively short notice, and will be setting it up semi-permanently in my lab once I'm done with the work on the lab space, and then I'm going to get back on the UZI280 items that I've had on my list for quite some time.
Do I owe anyone a set of boards or a kit at this time? I think I got everyone's stuff shipped out, with no outstanding orders, but I want to make sure.
Also, I want to just mention how wonderful it has been to see all the interest in the Z280, particularly from hperaza and plasmo, and now that etchedpixels has a Z280 in-hand I really look forward to a FUZIX for Z280.....
Andrew B, did anyone get a set of photos to you?
--
Bughlt: Sckmud
Shut her down Scotty, she's sucking mud again!
|
|
|
|
Re: Interested in a Z280 SBC [message #5062 is a reply to message #5061] |
Tue, 28 August 2018 12:49 |
|
lowen
Messages: 226 Registered: August 2016 Location: Western NC USA
|
Senior Member |
|
|
plasmo wrote on Tue, 28 August 2018 15:42lowen,
Thank you for bringing back Z280 from the grave and introducing this interesting processor to me.....
You're welcome; it has been very encouraging to me to watch you run with it like you have!
Quote:....May Z280 lives long and prosper!
Indeed! If Z88dk and thus sdcc get a good port, we'll really be one our way.
Quote:PS, What do you think of selling Z280 on eBay with nominal markup for S&H and eBay fee? It is a way to advertise the availability of the device and faster shipping to USA destinations.
If you throw in 'tested' into the mix I think it would be well worthwhile, for a moderate markup plus S&H.
Quote:PPS, I still have 5 blank ZZ80RC pc boards. The offer to mail a complimentary board to USA address is still valid.
I've been waiting to see if others want them first, but if you don't get any takers put me in for one, and you have my address. I'm a sucker for another Z280 machine, especially if etchedpixels ports FUZIX to it.. (hi, Alan!)... but I want others to have first dibs, since I have running Z280 systems, just not the RC2014-compatible one.
--
Bughlt: Sckmud
Shut her down Scotty, she's sucking mud again!
[Updated on: Tue, 28 August 2018 12:50] Report message to a moderator
|
|
|
Re: Interested in a Z280 SBC [message #5063 is a reply to message #5062] |
Tue, 28 August 2018 13:02 |
plasmo
Messages: 866 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
lowen wrote on Tue, 28 August 2018 13:49
I've been waiting to see if others want them first, but if you don't get any takers put me in for one, and you have my address. I'm a sucker for another Z280 machine, especially if etchedpixels ports FUZIX to it.. (hi, Alan!... but I want others to have first dibs, since I have running Z280 systems, just not the RC2014-compatible one.
OK, I'll mail one out to you tomorrow. It is a single board computer, so it doesn't really need the RC2014 backplane. You don't need to populate the RC2014 connector or you can wire it for other type of expansion.
Bill
|
|
|
|
|
Current Time: Thu Mar 28 22:24:11 PDT 2024
Total time taken to generate the page: 0.01627 seconds
|