mirror of
https://github.com/w4jbm/Apple-1-Integer-BASIC.git
synced 2024-11-28 00:49:58 +00:00
Update README.md
This commit is contained in:
parent
0e5fd0ab5b
commit
5329025be0
63
README.md
63
README.md
@ -138,6 +138,69 @@ Things seemed to almost work and then I powered the system off for lunch. After
|
|||||||
Although it didn't get me closer to really having Integer BASIC running on the PAL-1, it did make me feel better to understand what had gone wrong.
|
Although it didn't get me closer to really having Integer BASIC running on the PAL-1, it did make me feel better to understand what had gone wrong.
|
||||||
|
|
||||||
|
|
||||||
|
## Honey I Broke the Assembler
|
||||||
|
|
||||||
|
I have used 64TASS as my assembler for 6502 work for years and been very, very happy with it.
|
||||||
|
|
||||||
|
After some tweaks to the code, I had A1B to the point where I could type and even run a program--but the listing was always garbled. I spent an entire weekend going through the code of the LIST portion of A1B looking for what might be broke. Several times I restarted tinkering with the code from scratch to make sure it wasn't something I was doing.
|
||||||
|
|
||||||
|
I always troubleshoot from the assembler list file... Except this time.
|
||||||
|
|
||||||
|
Because I was adding a lot of comments to the code as I would try to decipher what lines and segments of code did, I was looking at the source file.
|
||||||
|
|
||||||
|
Finally, in frustration, I decided I would compare the code byte by byte with a hex dump of the ROM. My assumption was that I was messing something up--maybe forcing the wrong address mode or something of that sort.
|
||||||
|
|
||||||
|
A quick scan of the assembler output listing stopped me in my tracks. Here is what jumped out at me:
|
||||||
|
|
||||||
|
```
|
||||||
|
.842b dd 00 02 CMP buffer,X
|
||||||
|
.842e b0 fa BCS Le42a
|
||||||
|
.8430 b1 fe LDA (synpag),Y
|
||||||
|
.8432 29 3f AND #$3F
|
||||||
|
.8434 4a LSR
|
||||||
|
.8435 d0 b6 BNE Le3ed
|
||||||
|
.8437 bd 00 02 LDA buffer,X
|
||||||
|
.843a b0 06 BCS Le442
|
||||||
|
.81
|
||||||
|
.844d 29 80 AND #$80
|
||||||
|
.844f c9 20 CMP #$20
|
||||||
|
.8451 f0 7a BEQ Le4cd
|
||||||
|
.8453 b5 a8 LDA txtndxstk,X
|
||||||
|
.8455 85 c8 STA text_index
|
||||||
|
.8457 b5 d1 LDA tokndxstk,X
|
||||||
|
```
|
||||||
|
Lookin at the source, I couldn't see anything wrong:
|
||||||
|
```
|
||||||
|
CMP buffer,X
|
||||||
|
BCS Le42a
|
||||||
|
LDA (synpag),Y
|
||||||
|
AND #$3F
|
||||||
|
LSR
|
||||||
|
BNE Le3ed
|
||||||
|
LDA buffer,X
|
||||||
|
BCS Le442
|
||||||
|
ADC #$3F
|
||||||
|
CMP #$1A
|
||||||
|
BCC Le4b1
|
||||||
|
Le442: ADC #$4F
|
||||||
|
CMP #$0A
|
||||||
|
BCC Le4b1
|
||||||
|
Le448: LDX synstkdx
|
||||||
|
Le44a: INY
|
||||||
|
LDA (synpag),Y
|
||||||
|
AND #$80
|
||||||
|
CMP #$20
|
||||||
|
BEQ Le4cd
|
||||||
|
LDA txtndxstk,X
|
||||||
|
STA text_index
|
||||||
|
LDA tokndxstk,X
|
||||||
|
STA token_index
|
||||||
|
```
|
||||||
|
I have not had a chance to try to dig into what was causing this, but using CA65 (which is what Jeff Tranter was using) fixed the issue and everything started working.
|
||||||
|
|
||||||
|
I would still like to figure out what is happening here, but just haven't had any spare cycles to spend on it.
|
||||||
|
|
||||||
|
|
||||||
## Credits and Recognition
|
## Credits and Recognition
|
||||||
|
|
||||||
First and most obvious, thanks to Steve 'Woz' Wozniak for creating Apple 1 Integer BASIC in the first place.
|
First and most obvious, thanks to Steve 'Woz' Wozniak for creating Apple 1 Integer BASIC in the first place.
|
||||||
|
Loading…
Reference in New Issue
Block a user