c64mem: OCRing/formatting Texteinschub WIP

This commit is contained in:
Michael Steil 2020-05-13 00:09:51 +02:00
parent 70a50cf07f
commit a180572b2d
3 changed files with 58 additions and 9 deletions

View file

@ -317,6 +317,7 @@ $0073-$008A CHRGET RAM code.
* Z = ":" or end-of-line (a null)
[ACCA] = new char.
[TXTPTR]=[TXTPTR]+1
The following exists in ROM if ROM exists and is loaded

View file

@ -5,6 +5,7 @@ import pprint
import markdown
filenames = [
'c64mem_src.txt',
'c64mem_mapc64.txt',
'c64mem_64er.txt',
'c64mem_64intern.txt',
@ -12,9 +13,9 @@ filenames = [
'c64mem_prg.txt',
'c64mem_64map.txt',
'c64mem_jb.txt',
'c64mem_src.txt',
]
names = [
'Microsoft/Commodore Source',
'Mapping the Commodore 64',
'64\'er [German]',
'Data Becker [German]',
@ -22,9 +23,9 @@ names = [
'Programmer\'s Reference Guide',
'64map',
'Jim Butterfield',
'Microsoft/Commodore Source',
]
links = [
'https://github.com/mist64/cbmsrc',
'http://unusedino.de/ec64/technical/project64/mapping_c64.html',
'https://archive.org/details/64er_sonderheft_1986_07/page/n6/mode/2up',
'https://www.pagetable.com/?p=1015',
@ -32,9 +33,9 @@ links = [
'http://www.zimmers.net/cbmpics/cbm/c64/c64prg.txt',
'http://unusedino.de/ec64/technical/project64/memory_maps.html',
'https://www.atarimagazines.com/compute/issue29/394_1_COMMODORE_64_MEMORY_MAP.php',
'https://github.com/mist64/cbmsrc',
]
descriptions = [
'Comments from the original M6502 BASIC source by Microsoft and the original C64 KERNAL source by Commodore',
'Reference from <i>Mapping the Commodore 64</i> by Sheldon Leemon, ISBN 0-942386-23-X.',
'German-language reference from <i>Memory Map mit Wandervorschl&auml;gen</i> by Dr. H. Hauck, in 64\'er Sonderheft 1986/07.',
'German-language reference from <i>Das neue Commodore-64-intern-Buch</i> by Data Becker, ISBN 3890113079. Some minor corrections have been made.',
@ -42,7 +43,6 @@ descriptions = [
'Reference from <i>Commodore 64 Programmer\'s Reference Guide</i>.',
'Reference as found in "Commodore_64_Memory_Maps.txt" by anonymous.',
'Reference by Jim Butterfield in COMPUTE! #29 (October 1982).',
'Comments from the original M6502 BASIC source by Microsoft and the original C64 KERNAL source by Commodore',
]
@ -104,7 +104,7 @@ offset = 3; # data columns start at index 3
print('<meta http-equiv="Content-type" content="text/html; charset=utf-8" />')
print('<html>')
print('<head>')
print('<title>Ultimate Commodore 64 BASIC & KERNAL ROM Disassembly</title>')
print('<title>Ultimate Commodore 64 Memory Map</title>')
print('')
print('<script language="javascript">')
print(' window.onload = init;')

View file

@ -510,7 +510,19 @@ erreichen wir eine entsprechende Änderung der Bytes 17 und 18, also des zweiten
In Bild 9 sind die Stellen eines Gleitkomma-Feldes grafisch dargestellt.
TODO Bild 9
1 2 3 4 5 6 7 / a b c d e
|---------|---------|------|------|--------|------|------|-\ |------|------|---------|---|---|---|---|-->
| Erstes | Zweites | Low | High | | High | Low | / | High | Low | |
| | Byte | Anzahl | Byte | \ | Byte |Exponent Mantisse |
| Zeichen des |-------------| der |-------------| / |-------------| +125 |
| Feld-Namens | Länge des | Dimen- | Anzahl der | \ | Anzahl der | des 1. Elements| des 2. Elements
| | Feldes | sionen | Elemente | / | Elemente | |
| | | | der letzten | \ | der ersten | |
| | | | Dimension | / | Dimension | |
|---------|---------|------|------|--------|-------------|-\-|-------------|---------|---|---|---|---|-->
|<----------------------- KOPF ----------------------->| /
Bild 9. Gleitkomma-Feld
## Ganzzahliges Feld
@ -536,7 +548,18 @@ verändert das 15. Byte in ein f.
In Bild 10 ist der Inhalt eines Ganzzahl-Feldes grafisch dargestellt.
TODO
1 2 3 4 \ a b c d
|---|---|---|---|--/--|------|------|------|------|-->
| \ | Low | High | Low | High |
| / | Byte | Byte |
| KOPF \ |-------------|-------------|
| (wie in Bild 2) / | | |
| \ | des | des | des
| / | 1. Elements | 2. Elements | 2. Elements
| \ | | |
|---|---|---|---|--/--|------|------|------|------|->
\
Bild 10. Ganzzahliges Feld
## Felder mit Zeichenketten
@ -571,7 +594,7 @@ Jetzt weisen wir dem letzten Element auch noch eine Zeichenkette zu:
Die letzten drei Stellen des Feldes ändern sich ebenfalls, wobei die erste mit dem b eine Zeichenkettenlänge von 2 angibt, dementsprechend muß die Anfangsadresse um 2 niedriger sein als die vorher definierte Kette: Das Low-Byte 250 - 2 = 248, in der Codetabelle finden wir dafür das, was auch im Feld steht. Das High-Byte bleibt unverändert.
Bild 11 zeigt die grafische Darstellung des Zeichenketten- Feldes.
Bild 11 zeigt die grafische Darstellung des Zeichenketten-Feldes.
Als letztes zeige ich Ihnen noch die im vierten Block gespeicherten Zeichenketten. Wir drucken einfach den CHR$-Wert der in den betreffenden Speicherzellen stehenden Codezahlen aus mit:
@ -585,5 +608,30 @@ Als letztes zeige ich Ihnen noch die im vierten Block gespeicherten Zeichenkette
... und wir erhalten die beiden Zeichenketten in umgekehrter Reihenfolge, also vom Speicherende her eingespeichert. Interessant ist, daß sich vor die Felder - wenn Sie sie noch auf dem Bildschirm hatten - die neu definierte Gleitkomma-Variable l@ geschoben hat. Auch das ist eine Demonstration des Speicherverfahrens der Variablen, genauso wie ich es Ihnen in der letzten Folge erklärt habe.
TODO
1 2 3 4 \ a b c d e f
|---|---|---|---|--/--|----------|-------|-------|-----|-----|-----|-->
| \ | Länge | Low | High | |
| / | der | Byte | |
| KOPF \ | Zeichen- |---------------| |
| (wie in Bild 2) / | kette der Adresse, | |
| \ | ab der der | |
| / | String ge- | |
| \ | | speichert ist | |
|---|---|---|---|--/--|--------------------------|-----------------|-->
\ |<--- 1. Element --->|<- 2. Element ->|
Bild 11. Zeichenketten-Feld