ordelore wrote:
Any updates on this? I really want to start learning z80 assembly, and was waiting for this to be finished.
I'm afraid we're all so busy with other projects that this is progressing extremely slowly. You're better off just starting to learn from the tutorial as-is, I believe.
I vote on integrating Brass/z80 assembly into SC3 and then integrating SC3/jsTIfied into Asm in 28 days to allow one-click running and editing of asm examples. Yes, this requires a web version hosted here, however being able to start working with z80 asm without needing local tools at all is something to consider. Also, being able to step through example code on the page using the debugger in jsTIfied demonstrating register changes seems like a cool feature for me.
Also, nagnagnagnagnagnagnagnagnagnagnagnagnagnagnag
Cool idea! You could also talk to Deep Thought about using ORG.
Could we not just have an erratum for the tutorials and corrected code examples ?
The challenges for the typical noob will be more than sufficient without getting to grips with a web based IDE.
A web-based IDE is much easier than setting up TASM ever was. Type in code, press button, and then it's already running on the emulator. And if you can automatically load the code into the IDE...
Honestly, the hardest part on my end is making Brass run on my server and (1) not allow any job to consume more than a certain share of CPU time (2) implement queuing so that only one file is being assembled at a time (3) Properly sandbox it so no Brass or Mono bugs can be used to do unseemly things. I already have enough editor and emulator and editor -> emulator transfer infrastructure that that part of it is surprisingly trivial. CodeMirror even has a built-in z80 ASM syntax highlighter mode.
What about example code? How should that be handled? A shared project that can be forked by users?
AHelper wrote:
What about example code? How should that be handled? A shared project that can be forked by users?
I'd say add an API to SourceCoder 3 to directly load file(s) into the editor, and either instruct the user to press the transfer-to-jsTIfied button, or have a way to automatically have it triggered on SourceCoder 3 loading. That way ASM28D won't depend on its projects being stored in SourceCoder 3 at all, and all the synchronization problems that would introduce.
Having an API to simply load things into SC3 could be used in other places as well. Has the source of ASMn28D been put up anywhere? Mercurial?
Probably HCWP would be a great place to talk about the structure of the changes on bringing it up to date.
AHelper wrote:
Having an API to simply load things into SC3 could be used in other places as well. Has the source of ASMn28D been put up anywhere? Mercurial?
I could have sworn that Tari put it up on his GitHub, but I don't see it there. I can put it on mine.
Quote:
Probably HCWP would be a great place to talk about the structure of the changes on bringing it up to date.
Agreed! It's a date. Maybe we can divide up responsibilities there.
KermMartian wrote:
AHelper wrote:
Having an API to simply load things into SC3 could be used in other places as well. Has the source of ASMn28D been put up anywhere? Mercurial?
I could have sworn that Tari put it up on his GitHub, but I don't see it there. I can put it on mine. That's because it's on hit BitBucket.
Nice, and I even remembered my BitBucket credentials. I have pushed a fix to the broken Day 1 "Hello, World" code.
*bump* Ahelper, DrDnar, and I are discussing this project on HCWP. We don't want to limit who all can help, so we're not assigning specific tasks for now. Instead we're just talking about the various things that we think should be changed, improved, and added to the tutorial. We came up with the following items so far:
Changes
[ ] Fix the interrupts day (this is a big one)
[ ] Fix any existing code samples that are wrong and/or poorly-commented and/or inconsistent with style like opcode/register capitalization
[ ] Rename to ASM in XX Days, depending on how many days of new info we append? This would also help distinguish our new version.
Technical Aspects
[ ] Switch to prettify.js for the syntax highlighting of code?
[ ] Switch all the manual CSS styling to a stylesheet?
Information to Add
[ ] TI-83 Plus Silver Edition/TI-84 Plus/Silver Edition day, covering things like crystal timers, larger RAM and Flash, and clock speed changes.
[ ] TI-84 Plus C Silver Edition stuff, especially regarding the LCD?
[ ] Memory mapping
[ ] Apps, including multipage Apps
[ ] Bobblehead BrandonW included with every copy
For syntax highlighting, well, are we going to still make offline copies? If so, prettify.js wouldn't work. We can still export syntax highlighted z80 asm to HTML to reduce client-side CPU usage and make offline stuff happy. (Bumped from KermM, I mean will CHMs still be made? I am not sure if javascript works in them. Other single-file HTML formats?) (Bumped again: Never mind)
Greyscale? I feel that this should be put in. Getting a lot of info on this that is laid out in an easy-to-learn way isn't really there from when I did greyscale stuff. Maybe include a 4-shade example, talk extensively on the ideology of how the LCD is updated to show it, maybe talk about higher shade counts?
Put in a section for heavy asm optimization. For me, I don't know how to use all ops to their full potential, adding in a section that goes over lots of ways to compact and optimize asm would be nice. I can't really help there, but would love to see this happen.
BrandonW bobblehead 3D printed? What about a WebGL version of a bobblehead?
Dude.... somebody needs to write a comparative routine.
For example, let's say you have the good 'ol putsprite and you want to see if the ROM has anything similar but undocumented...
So, take the 30 or so bytes and start comparisons at 0x0000 until you hit RAM.
Anything better than 50% accurate will ping you the addr and dump the values to a suitable fomat for analysis
That's be a great 3rd or 4th week lesson.
ALSO a good way to analyze built in TI routines cross platform
Also, pretty handy with PHP and general web dev, so if I can help in any way let me know.
AHelper wrote:
Greyscale? I feel that this should be put in. Getting a lot of info on this that is laid out in an easy-to-learn way isn't really there from when I did greyscale stuff. Maybe include a 4-shade example, talk extensively on the ideology of how the LCD is updated to show it, maybe talk about higher shade counts?
If you feel like writing such a section, by all means do so. I think it's sort of a niche topic, in that I don't think many people write new grayscale engines from scratch, but it would certainly be a good reference for the people who want to.
AHelper wrote:
Put in a section for heavy asm optimization. For me, I don't know how to use all ops to their full potential, adding in a section that goes over lots of ways to compact and optimize asm would be nice. I can't really help there, but would love to see this happen.
An optimization day would definitely be a good idea. Talk about SMC, LUTs/JTs, code refactoring, and so on.
Quote:
BrandonW bobblehead 3D printed? What about a WebGL version of a bobblehead?
This must happen.
*Bump*, any further progress other than thinking/poking this?
KermMartian wrote:
If you feel like writing such a section, by all means do so. I think it's sort of a niche topic, in that I don't think many people write new grayscale engines from scratch, but it would certainly be a good reference for the people who want to.
Wasn't looking at a guide to making your own from scratch, but to instead give an existing implementation and go over how it works and how it was written and optimized. Then again, mine was written for GlassOS, but can be adapted for TIOS (someone else will probably have to look at it :/).
What is the current status of this ? Is it being re-written and corrected ? I would like to help but must admit to still being a newbie in the field of ASM on the Z80
I have been putting in work with my idea of integrating this with jsTIfied starting with spasm compiled using emscripten (already working) which should let you in-place edit code examples, assemble, and run them using jsTIfied. (localStorage used to get jsTIfied the file assembled)
I will also work on restyling, layout, and skeleton sections. Hopefully this can help bring motivation for adding more content for the guide.
Thank you! I am glad this project is being driven forward.