The best thing to do is probably fork https://bitbucket.org/tari/83pa28d/src, make whatever edits you want, and then make pull requests.
Day 1 definitely needs work, but even in its current state (useless) it's probably at least as useful as the unmodified version (which doesn't work on most modern Windows systems nor is it reasonably portable).

Comments are quite welcome; it's not exactly a project that any of us tend to work on without provocation, but in the worst case your comments will get stashed in the issue tracker until somebody feels sufficiently ambitious to work on it.
Greetings

My thoughts were that I could work out the steps in detail to get someone up and running using a modern computer, post them so that someone who was working on this update could incorporate them into the current version. I figure I would do most of the work as far as figuring this out.

There are quite a number of issues as you said and I saw that someone has already improved it over the original version. I just don't want to spend my time working on it if no one was going to use it.

My only major problem that I have not yet resolved was copying my TI-83Plus ROM. I've used two different software programs and neither works yet, but I'm optimistic!
If you take the time to update it, it's probably for the best if "modern computer" implicitly implies "running either Windows or a *nix"
Are you accepting pull requests for this project?

I would like to revise "Learn ASM in 28 days" and change its style to something more like a textbook format, with better English and grammar. As I am only a beginner in ASM, I will not make any changes to the technical parts of the manual, but confine myself to editing the grammar and making the text clearer and more precise.

I have read most of the manual and like the density of the information he presents. However, his style is not quite clear and sometimes obscures the point he is trying to make.
Yes, contributions remain welcome.
Is there some way to modify the makefile included with the repository to make pandoc pipe its converted HTML files to a directory?

This is the makefile from the repo:

Code:
## User-overridable options
PANDOC ?= pandoc
HIGHLIGHT ?= yes
HSC ?= ghc
ALEX ?= alex

MD_DIALECT := markdown+tex_math_dollars+definition_lists+compact_definition_lists
PANDOC_OPTS := -f $(MD_DIALECT) -t html5 --template=stuff/template.html --toc -c stuff/style.css --indented-code-classes=z80

ifeq ($(HIGHLIGHT),yes)
   Z80_LEXER := ./highlight_z80
   # pandoc 1.12 or better is required for --filter
   PANDOC_OPTS := $(PANDOC_OPTS) --filter=$(Z80_LEXER)
else
   Z80_LEXER :=
endif

MARKDOWN := $(shell find . -name '*.md')
HTML := $(addsuffix .html,$(basename $(MARKDOWN)))

.PHONY: all, clean, clean-highlighter

all: $(HTML)

clean: clean-highlighter
   rm -f $(HTML)

clean-highlighter:
   rm -f $(Z80_LEXER) stuff/$(Z80_LEXER).{hi,hs,o}

highlight_z80: stuff/z80.x
   $(ALEX) -o stuff/highlight_z80.hs stuff/z80.x
   $(HSC) -o highlight_z80 stuff/highlight_z80.hs
   
%.html : %.md $(Z80_LEXER) stuff/template.html
   $(PANDOC) $(PANDOC_OPTS) -o $@ $<


Link to the GitLab repository:
https://gitlab.com/taricorp/83pa28d

EDIT: I have done some work on Day 1 and created a GitHub repository for the fork.

If anyone would like to help, please contact me. Collaborators welcome! Very Happy


EDIT 2: After doing some research on batch file programming, I found that I did not need to modify the makefile in order to move the HTML files. To move the files to a html/ directory, I added the following line below the call to pandoc in make.bat:

Code:
:build_file
    set FILE=%~1
    echo %FILE%.md =^> %FILE%.html
    pandoc %PANDOC_OPTS% -o "%FILE%.html" "%FILE%.md"
    move "%FILE%.html" %cd%\html
    goto :eof
Why not actually fork from my official mirror? Any why call for collaborators (it sounds like you're intending not to contribute back, which doesn't make sense to me)?
Oh, I didn't know that you had a mirror. I will fork from that ASAP.

What I meant by collaborators was anyone who wanted to help me edit the tutorial was welcome to do so. I am determined to finish the project.

EDIT: I have forked the repository and created a pull request. This is the first time I have made a pull request, so please let me know if I need to change anything if it will conflict with the main repository.
Hello there.
Sorry in advance if the project has been discontinued.

Week 1 - Day 4 - P / V - Parity/Overflow - quoting : "You could also consider an overflow to be when a register’s sign bit changes through an operation."
That's actually not true in all situations.
For example, if A=128, doing SUB A afterwards will not set the flag, despite the sign bit of A changed.

Week 4 - Day 23 - Hardware Interrupts - Mode 1 - quoting : "At a frequency of about 140Hz or less, the CPU executes a RST 28H instruction."
That's actually a RST 38H instruction.

Cheers.
I happened to be fixing a reported error and spent some time making changes that i started a while ago as well. Day 22 described keyboard control in terms of "group values" and "key codes" which seems like a strange way to talk about it since everything is actually in terms of bits being set or clear. I've revised that to present values in terms of the bits that correspond to groups and keys.

I also discovered that basically nobody documents key repeat behavior of _GetCSC while working on tihle, so I also described how it repeats some keys if held and how detecting held keys reliably requires direct input.

the_mad_joob wrote:
Week 1 - Day 4 - P / V - Parity/Overflow - quoting : "You could also consider an overflow to be when a register’s sign bit changes through an operation."
That's actually not true in all situations.
For example, if A=128, doing SUB A afterwards will not set the flag, despite the sign bit of A changed.
I think it's okay to use this simplified description here; the instruction reference says P/V operates in overflow mode for SUB instructions.

Quote:
Week 4 - Day 23 - Hardware Interrupts - Mode 1 - quoting : "At a frequency of about 140Hz or less, the CPU executes a RST 28H instruction."
That's actually a RST 38H instruction.
Fixed.
Thanks for keeping this updated, Tari! I continue to think it's one of the better z80 resources out there, even for getting familiar with ez80 ASM topics.

It took me a long programming z80 ASM to realize that direct input was indeed bits set or clear, so that should help people grok direct input more quickly.
Thanks for using my suggestion for the guide. Although I'm just beginning, I try to grasp all explanations and examples the guide has to offer and try to replicate the code. I couldn't get my head around this part.
The lay-out of your version is much cleaner and removed errors of the original guide. Since I found yours, I keep using this version.
Keep up the good work! Very Happy
Tari wrote:
I think it's okay to use this simplified description here; the instruction reference says P/V operates in overflow mode for SUB instructions.

Actually, the fact that the flag operates in overflow mode for that instruction is what makes the statement wrong.
But yes, most people will never have the chance to fall into the trap, but i did, and it was one of the most horrible debugging sessions i experienced.
Anyway, thanks for the guide update dude.
Is this documentation being updated? I came across the "Learn TI-83 Plus Assembly in 28 Days" again while browsing Stack Overflow, but I've known about this guide for years, just been too lazy to learn anything past BASIC.
There's no particular update process being done at this moment, if that's what you're asking. But there have been updates and much of the old information is still accurate.
I found my way here trying to get through Day 1 of the original guide, and thought this would be easier to try.

The guide on the welcome page, or page 1 of this updated guide suggests using Brass, but then doesn't tell us how to set it up for use.



Have I missed something in it, or is it written somewhere how to set upo Brass for use as a substitute in this guide?
It wasn't really documented, but since you've asked I updated Lesson 1 to provide a basic introduction that assumes you're on Windows but is much more useful than the assorted notes that were there before.

Do you care to have a look at that and see if it's more useful to you now?
Thanks for sharing that. Doesn't work on my work computer, Windows 10. Notepad ++, Brass, then either emu (Ti-83+) or real TI-84 + SE.

I put all in one folder: Brass.exe, ti84plus.inc and hello.asm (contains the following)
:::

.nolist
#include "ti83plus.inc"
#define ProgStart $9D95
.list
.org ProgStart - 2
.db t2ByteTok, tAsmCmp

b_call(_ClrLCDFull)
ld a, 0
ld (CurRow), a
ld (CurCol), a
ld hl, msg
b_call(_PutS) ; Display the text
b_call(_NewLine)
ret

msg:
.db "Hello world!", 0
.end

:::
Then I used brass the following way: .\Brass.exe hello.asm hello.8xp

This resulted in a 36kb file being made which does not run on either the emulator or the real TI-84 + SE.
You should get a 8xp file that's no more than a few hundred bytes, so I don't know what you're getting out though it's not entirely surprising that the documentation I wrote without testing is wrong.

Feeding this into Brass (Brass.exe test.asm test.8xp) does what I expect, in any case:
Code:
.binarymode TI8X
.org $9d93
.db $bb, $6d
    ret
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
» Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
» View previous topic :: View next topic  
Page 7 of 8
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement