CPCWiki forum

General Category => Programming => Topic started by: m_dr_m on 10:16, 22 April 20

Title: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 10:16, 22 April 20
Delivered with latest Orgams! http://orgams.wikidot.com/working (http://orgams.wikidot.com/working)


Oh! That's self promotion.


Enjoy!
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: GUNHED on 15:45, 22 April 20

Thanks for you post, but....

..... under your link we can download a DSK, so which file is it?


BTW: You should by chance clean up the DIRectory of that DSK.  :)
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 16:35, 22 April 20
That's Z80.o


Messy directory: well that's a WIP version. There are NRT reference files of one of the module, for the interested.
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: GUNHED on 17:44, 22 April 20
Thanks. What do I use to open Z80.O ? It seems to be an non-ASCII file, w/o fileheader.
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 18:27, 22 April 20
Orgams!  ::)
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: GUNHED on 19:30, 22 April 20
Quote from: m_dr_m on 18:27, 22 April 20
Orgams!  ::)
Great, can you please tell me the ROM numbers I have to use. IIRC the numbers are fixed.
Is there a sheet somewhere how the orgams files are organized?
I would like to support them with my upcoming text editor.
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 21:10, 22 April 20
Bad luck, it's one of the rare times where the #BURN program wasn't included. It would have answered the question!
ROMs aren't fixed anymore (since almost 4 years!). It's detailed here: http://orgams.wikidot.com/userguide#toc1 (http://orgams.wikidot.com/userguide#toc1)


Orgams sources are pre-assembled! There are some escape codes for comments, unrecognized lines, ...
Since you can export to ASCII files from Orgams, I'm not sure it's worth the trouble.
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: GUNHED on 21:55, 22 April 20
Thank you very much. That's the information I needed. I try to look how the source code is constructed. Seems it has a small header, and &7F has some kind of Carriage Return function. I try to go in detail here and find out.  :) :) :)
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 23:26, 22 April 20
Actually I've abused my own format!


I've entered text as is: since no valid opcode or directive is recognized, the line is cannot be encoded (that is, pre-assembled)!
Some other parts are valid Z80 snippets that are properly encoded.


As you may see in the screenshot, comments are shaded, so the whole document is prettier and easier to read.
You can read about another advantage here: http://memoryfull.net/post.php?id=42&page=1#728


I'll try to take the time to describe the format in the wiki.
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: GUNHED on 13:07, 23 April 20
Quote from: m_dr_m on 23:26, 22 April 20
I'll try to take the time to describe the format in the wiki.
That would be great! So it can be used with other text editors or whatever.

Actually I always wanted to have an Assembler/Disassembler(/Monitor - have that already) running with FutureOS. But I never had the time to make all that. As you see Orgams is huge. Once in a while I think of having an Orgams version for my OS, but Orgams still seems to grow and evolve. I lost track of it a bit. But it's awesome!  :) :) :)
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 18:42, 27 April 20
Update: Flags for ADD 16 bits fixed. Little cheat-sheet from RL A to RLD.


Quote

I'll try to take the time to describe the format in the wiki.


Here you go: http://orgams.wikidot.com/orgamsinternals#toc1 (http://orgams.wikidot.com/orgamsinternals#toc1)


The disp.o source is on the working disc.
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 18:47, 27 April 20
Quote from: GUNHED on 13:07, 23 April 20

Actually I always wanted to have an Assembler/Disassembler running with FutureOS.


What do you use to code FutureOs and its applications BTW?


That's why I don't consider FutureOs or SymbOs self-sufficient: they cannot be used to update themselves.


Can you imagine the sheer joy when Orgams was first able to assemble itself? In the literature, it's called "post bootstrapping orgasm".
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: TotO on 19:39, 27 April 20
Quote from: m_dr_m on 18:47, 27 April 20
Can you imagine the sheer joy when Orgams was first able to assemble itself? In the literature, it's called "post bootstrapping orgasm".
That explain the name... ;D 8)
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: GUNHED on 22:57, 27 April 20
Quote from: m_dr_m on 18:47, 27 April 20
What do you use to code FutureOs and its applications BTW?

That's why I don't consider FutureOS or SymbOs self-sufficient: they cannot be used to update themselves.
Well, I'm using the Maxam assembler in ROM for assembling everything. Of course it's slow in assembling bigger source codes (bigger than around 50 KB or so). However it's extremely reliable and error free. That's the main thing for me. I must be able to rely on it.

I could move to a newer assembler, but this would mean to update more than one or two MB of source code and to test and verify it. I just got no time for that (or maybe I got used to it ;-))

About being self sufficient: I don't think that Prodatron will care about it. IIRC he does use the WinApe assembler, probably a quick solution (few seconds what I did hear).

But you're right in my world of course. I would love to see FutureOS being able to assemble itself. Well, my text editor is a first small step towards this direction. It would be great to have help doing applications for FutureOS, but I guess it's mostly left to me.


Quote from: m_dr_m on 18:47, 27 April 20Can you imagine the sheer joy when Orgams was first able to assemble itself? In the literature, it's called "post bootstrapping orgasm".

Sure!  :) :) :)  Fun at the side: According to your definition Orgams is not self sufficient either, because it doesn't bring it's own OS.  :P ;D :) :) :)
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 23:36, 27 April 20
Quote from: GUNHED on 22:57, 27 April 20
Well, I'm using the Maxam assembler in ROM for assembling everything. However it's extremely reliable and error free.

Poor soul!
Well I think Orgams is reliable too! Hundreds of unit-tests, reset-proof, internal checksums, used several hours a day by several people (I think that's more than maxam statistics...).
Also, my |burn RSX will tell if the ROM is already up-to-date. Coupled with the fact that each Orgams Module can auto-install itself, I use it extensively to test that the same byte-exact binary is generated by the assembler.


Quote
I could move to a newer assembler, but this would mean to update more than one or two MB of source code and to test and verify it. I just got no time for that (or maybe I got used to it ;-))
If time is your issue, I can assure you are loosing it by staying with maxam. It drove the strongest minds crazy.
Regarding testing, I hope you have automated tests. Either way, as I said, just check it generates the same binary.

You might be interested by: [size=78%]http://orgams.wikidot.com/maxammigrationmap (http://orgams.wikidot.com/maxammigrationmap)[/size]

Quote
Fun at the side: According to your definition Orgams is not self sufficient either, because it doesn't bring it's own OS.  :P ;D :) :) :)

What we demand of a Z80 IDE or any program for that matter is not what we demand of an OS! Also, you have to build the universe first.


PS: Bloody markup!
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: GUNHED on 23:41, 27 April 20
Building the universe first is not an issue. FutureOS did that already.  ;D ;D ;D

About Orgams, it's the only "running on real hardware" system I consider being of interest to me. After the next official release I will give it a very serious try. Then the really time consuming part will come, that's to learn how to use it. What it can do and how. All the numerous small things. I'm looking forward.  :) :) :)

Quote from: m_dr_m on 23:36, 27 April 20PS: Bloody markup!

Still so true, see Maxam isn't _that_ time consuming ;-)
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: HAL6128 on 00:02, 28 April 20
I'm using & still learning it and it's a really good program... and fast... and has a some cool features (switch of your CPC and the source is still available after a cool reset or crash). Maxam has more restrictions in labeling, no macros and investigating RAM/ROM etc.
Nice new graphics dump feature and step by step emulated execution.
And yes, if you have a hardware which isn't emulated, orgams can be a first choice for real hardware. It works with the M4 together (fast loading of the source) .
For secure reason I'm still using my disc drive because (with former versions Condigo con or Bugs Bunny?) I sometimes realized saving / loading wasn't reliable on SD with bigger files[/size]. Was there a change in newer version?



Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 00:23, 28 April 20

Thanks for the kind words! I didn't know Orgams was used outside France (for some reason), so it motivates me to update the Shakespearean version of the doc. Expect drama. And love.

Quote from: HAL 6128 on 00:02, 28 April 20
I sometimes realized saving / loading wasn't reliable on SD with bigger files. Was there a change in newer version?


I've done hundreds of IO operations with large files. The only issues I encountered are with newer Dos (e.g CubeMDos bug : ASCII > 64k are truncated).
If you can reproduce that with M4, it would be a giant step for humanity.

Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: m_dr_m on 07:02, 28 April 20
Quote from: GUNHED on 23:41, 27 April 20
About Orgams, it's the only "running on real hardware" system I consider being of interest to me. After the next official release I will give it a very serious try.


Glad to hear that! Why not the other way around? Give it a fun try to see what bothers you, so I can fix it for the release?
The Beta G is in a really good shape.


Maybe we should continue the discussion here: [size=78%]https://www.cpcwiki.eu/forum/programming/orgams-best-assembler-in-my-living-room (https://www.cpcwiki.eu/forum/programming/orgams-best-assembler-in-my-living-room)[/size]
Title: Re: Accurate CPC timing and flag behaviour of Z80 instruction set.
Post by: GUNHED on 16:32, 28 April 20
Yes, thanks! Back to topic, back to fun with flags.  :laugh:
Powered by SMFPacks Menu Editor Mod