Das Betriebssystem des Commodore 64

Aus C64-Wiki
Zur Navigation springenZur Suche springen


Das Betriebssystem des Commodore 64
Cover/Buchdeckel
Sprache deutsch
Autor(en) Wolfgang Wester
Verlag Data Becker
Jahr 1985
ISBN ISBN 3-89011-136-X
Neupreis
Datenträger
Seitenzahl 177
letzte Auflage
Genre Programmieren
Information




Buchrückseite[Bearbeiten | Quelltext bearbeiten]

DAS STEHT DRIN:
79 nützliche Maschinenroutinen des Betriebssystems, die der COMMODORE-64 Programmierer häufig benötigt, werden nach folgenden Gesichtspunkten ausführlich erläutert:
Startadresse der Routine, Allgemeines, Einsprungbedingungen und Zustand des Akkus, der Register und der Flags. Zum besseren Verständnis sind zusätzlich viele Beispielprogramme und Programmablaufpläne vor handen.

Dieses “Routinenbuch“ eignet sich außerdem hervorragend als Ergänzung zu einem kommentiertem ROM-Listing (z.B. 64 INTERN), um den Einstieg ins Betriebssystem zu erleichtern. Es wird schnell zum unverzichtbaren Hilfsmittel für jeden Maschinenspracheprogrammierer!

UND GESCHRIEBEN HAT DIESES BUCH:
Wolfgang Wester ist Diplom-Ingenieur und hatte dieses Buch ursprünglich nur als Nachschlagewerk und Arbeitsbuch für seine eigene Programmiertätigkeit verfaßt.

Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]

Inhaltsverzeichnis

1. Einleitung ............................................... l
1.1 Kurze Übersicht zur Maschinenprogrammierung des 6510 .... 3
1.2 Kurze Übersicht zu Programmablaufplänen ................. 15
1.3 Der ASCII-Code .......................................... 19
1.4 Die Fliesskomma-Arithmetik des VC-64 .................... 25

2. Beschreibung der Routinen
1. Routine: Zeichen holen ................................... 28
2. Routine: Speicherinhalte verschieben ..................... 3l
3. Routine: Fehlermeldung ausgeben .......................... 34
4. Routine: Eingabe-Warteschleife ........................... 38
5. Routine: Eingabe einer Zeile per Tastatur ................ 40
6. Routine: Speicheradresse einer Programmzeile
            berechnen ....................................... 43
7. Routine: Basic-Befehl NEW ................................ 48
8. Routine: Basic-Befehl CLR ................................ 50
9. Routine: CHRGET-Zeiger auf Anfang des Basic-
            Speichers stellen ............................... 52
10. Routine: Basic-Befehl LIST .............................. 53
11. Routine: Basic-Befehl ausführen ......................... 56
12. Routine: Zeilennummer holen und in Adressformat
             umwandeln ...................................... 6l
13. Routine: String ausgeben ................................ 63
14. Routine: Ausgabe eines Leerzeichens ..................... 68
15. Routine: Ausgabe Cursor rechts .......................... 69
16. Routine: Ausgabe eines Fragezeichens .................... 70
17. Routine: Ausgabe eines ASCII-Zeichens ................... 7l
18. Routine: Beliebigen Ausdruck holen ...................... 72
19. Routine: Prüft auf Klammer zu ")" ....................... 73
20. Routine: Prüft auf Klammer auf "(" ...................... 74
21. Routine: Prüft auf Komma ................................ 75
22. Routine: Prüft auf Buchstabe ............................ 76
23. Routine: 16-Bit-Integer-Zahl in A/Y in Fliesskomma-
             zahl umwandeln ................................. 77
24. Routine: Holt Byte nach X-Register ...................... 79
25. Routine: Holt 16-Bit-Wert und einen 8-Bit-Wert .......... 82
26. Routine: 1.Subtraktion .................................. 91
27. Routine: 2.Subtraktion .................................. 92
28. Routine: 1.Addition ..................................... 93
29. Routine: 2.Addition ..................................... 94
30. Routine: 1.Multiplikation ............................... 95
31. Routine: 2.Multiplikation ............................... 96
32. Routine: Fliesskommazahl nach ARG bringen ............... 97
33. Routine: 1.Division ..................................... 99
34. Routine: 2.Division ..................................... 100
35. Routine: Fliesskommazahl nach FAC bringen ............... 101
36. Routine: FAC nach Akku #4 übertragen .................... 103
37. Routine: FAC nach Akku #3 übertragen .................... 104
38. Routine: FAC nach Variable übertragen ................... 105
39. Routine: ARG nach FAC übertragen ........................ 107
40. Routine: FAC nach ARG übertragen ........................ 108
41. Routine: Vorzeichen von FAC holen ....................... 109
42. Routine: Vergleich KONSTANTE(A/Y) mit FAC ............... 110
43. Routine: Umwandlung Fliesskomma nach Integer ............ 111
44. Routine: Umwandlung ASCII nach Fliesskommaformat ........ 112
45. Routine: Positive Integerzahl in A/X ausgeben ........... 113
46. Routine: Umwandlung FAC nach ASCII-Format ............... 114
47. Routine: SQR-Funktion ................................... l15
48. Routine: 1.Potenzierungsroutine ......................... 116
49. Routine: 2.Potenzierungsroutine ......................... 117

Programmbeispiele zu den Arithmetikroutinen ................. 118

50. Routine: Ein Zeichen ausgeben ........................... 125
51. Routine: Ein Zeichen holen .............................. 127
52. Routine: Zeichen aus Tastaturpuffer holen ............... 129
53. Routine: 1.SAVE-Routine ................................. 130
54. Routine: VERIFY-Routine ................................. 132
55. Routine: LOAD-Befehl .................................... 133
56. Routine: OPEN-Befehl .................................... 135
57. Routine: CLOSE-Befehl ................................... 138
58. Routine: Parameter für LOAD und SAVE holen .............. 139
59. Routine: Parameter für OPEN und CLOSE holen ............. 14l
60. Routine: COS-Funktion ................................... 143
61. Routine: SIN-Funktion ................................... 144
62. Routine: TAN-Funktion ................................... 145
63. Routine: ATN-Funktion ................................... 146
64. Routine: Cursor setzen/holen ............................ 147
65. Routine: Bildschirm Reset ............................... 149
66. Routine: Bildschirm löschen/Cursor Home ................. 150
67. Routine: Videocontroller initialisieren ................. 151
68. Routine: Zeichen und Farbe auf Bildschirm setzen ........ 152

Programmbeispiel zu den "Cursor-Routinen" ................... 153

69. Routine: Basic-Ram-Ende setzen/holen .................... 161
70. Routine: Untergrenze Basic-Ram holen/setzen ............. 162
71. Routine: Fileparameter setzen ........................... 163
72. Routine: Filenamenparameter setzen ...................... 165
73. Routine: 2.OPEN-Routine ................................. 167
74. Routine: 2.CLOSE-Befehl ................................. 169
75. Routine: Eingabegerät setzen ............................ 170
76. Routine: Ausgabegerät setzen ............................ 171
77. Routine: Ein/Ausgabekanäle zurücksetzen ................. 172
78. Routine: 2.LOAD-Befehl .................................. 173
79. Routine: 2.SAVE-Routine ................................. 175
   
Literaturhinweis ............................................ 177

Leseprobe[Bearbeiten | Quelltext bearbeiten]

(1. Auflage - Seite 112f: Kapitel "2. Beschreibung der Routinen"; Unterkapitel "44. Routine: Umwandlung ASCII nach Fliesskommaformat" und "45. Routine: Positive Integerzahl in A/X ausgeben")

44. Routine: Umwandlung ASCII nach Fliesskommaformat

Startadresse: $BCF3 (Hex.)
48371 (Dez.)

Allgemeines Mit dieser Routine können ASCII-Zeichen in das Fliesskommaformat des VC64 umgewandelt werden. Damit ist vor allem die exponentielle Zahlendarstellung gemeint.

Beispiele für die exponentielle Darstellung:

456.789E-3 --> .456789
23456E3 --> 23456000

Vorteil
Diese Zahlendarstellung ist wesentlich komfortabler als die Integerdarstellung.

Einsprungbedingungen
Der Akku muss den ersten umzuwandelnden ASCII-Wert enthalten. Außerdem muss der CHRGET-Zeiger ($7A/$7B) auf das nächste ASCII-Zeichen zeigen.

$7A --> Low-Byte
$7B --> High-Byte

45. Routine: Positive Integerzahl in A/X ausgeben

Startadresse: $BDCD (Hex.)
48589 (Dez.)

Allgemeines
Durch diese Routine wird eine positive Integerzahl auf dem Bildschirm ausgegeben. Mit dem Inhalt von $9A bestimmt man das Ausgabegerät (siehe 2.13 ; Tabelle für die verschiedenen Ausgabemedien). Wenn Sie als Ausgabemedium z.B. den Drucker ins Auge gefasst haben, reicht es natürlich nicht, den Inhalt von Speicherzelle $9A zu verändern. Sie benötigen dann zusätzliche Unterprogramme zum Öffnen und vorbereiten der I/O-Kanäle.

Einsprungbedingungen
Der Akku muss das Low-Byte der Integerzahl enthalten.
Das X-Register das High-Byte.

Fehler[Bearbeiten | Quelltext bearbeiten]

Meinung[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]