implemented RUNC routine

This commit is contained in:
FeralChild64 committed 2019-10-06 17:55:54 +02:00
1 parent 68b61f4c8c
commit 4f238baa2d
2 files changed
+25 -3

No files matched your search

+1 -1
View File
@@ -78,7 +78,7 @@ Not all of them - only these we want to have implemented.
| `$A004` | revision str | DONE | |
| `$A533` | LINKPRG | DONE | |
| `$A659` | set txt ptr | NOT DONE | |
| `$A68E` | RUNC | NOT DONE | |
| `$A68E` | RUNC | DONE | |
| `$A7AE` | NEWSTT | NOT DONE | |
| `$AB1E` | STROUT | DONE | |
| `$BDCD` | LINPRT | DONE | temporary implementation |
+24 -2
View File
@@ -1,5 +1,27 @@
// XXX provide documentation and implementation
// Well-known BASIC routine, described in:
//
// - [CM64] Compute's Mapping the Commodore 64 - page 97
// - https://www.c64-wiki.com/wiki/BASIC-ROM
// - https://csdb.dk/forums/?roomid=11&topicid=137233
//
// XXX use this routine to initialize TXTPTR
RUNC:
STUB_IMPLEMENTATION()
// According to WIKI, we should load $7A/$7B with $2B-1/$2C-1), this does not makes sense.
// But CSDB claims, that it should 'set current character pointer to start of basic - 1' - this
// looks sane, also checked that the original BASIC routine does this (short test program)
// Let's initialize TXTPTR using TXTTAB
lda TXTTAB+0
sec
sbc #$01
sta TXTPTR+0
lda TXTTAB+1
sbc #$00
sta TXTPTR+1
rts