Was genau liegt den in den Speicherstellen 160-162?
Programmierer und kennt Google nicht?
z.B. Guckstduhier: http://sta.c64.org/cbm64mem.html
Oder hier ausführlicher: http://unusedino.de/ec64/techn…roject64/mapping_c64.html
Du bist in Begriff, Forum64 zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachte, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
letzter Beitrag von Mac Bacon am
Was genau liegt den in den Speicherstellen 160-162?
Programmierer und kennt Google nicht?
z.B. Guckstduhier: http://sta.c64.org/cbm64mem.html
Oder hier ausführlicher: http://unusedino.de/ec64/techn…roject64/mapping_c64.html
Alles anzeigen
Nach meiner Rechnung benötigt das 22 Bytes mehr im Speicher, wenn man pro Befehl eine Zeile nimmt.
Der Doppelpunkt ist daher speichermäßig effizienter.
Eine Zeile benötigt 5 Byte, ein Doppelpunkt nur 1 Byte.
Schönen Gruß.
Das bezweifle ich ja auch nicht. Nur muss man abwägen ob man hier etwas veröffentlichen will welches
vs.
muss man abwägen
Eben.
Und solange es keine Regel gibt, die das Verfassen unverständlicher Postings wenigstens 'depreciated'... (andererseits wäre es natürlich langweilig wenn jeder sehen könnte daß seine 'Tricks' alte bis uralte Hüte aus der Vor-VC20-Zeit sind und er viele nichtmal selbst erklären kann)
BTT: Hier im Anhang ein PDF aus den Tips&Tricks vom 64'er 11/92 countdown in Maschinensprache von Basic aus nutzbar von Nikolaus Heusler.
Wenn der Programmcode länger wird, kann die Lesbarkeit auch leiden, wenn das Programm zu weit auseinander gezogen wird.
Eine zeilenweise Kommentierung fehlt bei dem letzten Listing übrigens auch.
Schönen Gruß.
Programmierer und kennt Google nicht? :gruebelz.B. Guckstduhier: http://sta.c64.org/cbm64mem.html
Oder hier ausführlicher: http://unusedino.de/ec64/techn…roject64/mapping_c64.html
Haha... "Programmierer"! "BASIC-Amateur" trifft's wohl eher... Klar kenne ich Google, aber ich bin derzeit nicht zu hause und kann hier nicht ewig den Rechner blockieren, daher danke für die hilfreichen Links! Vor allem der zweite, ich zitiere mal:
Zitat160-162 $A0-$A2 TIMESoftware Jiffy ClockThese three locations are updated 60 times a second, and serve as asoftware clock which counts the number of jiffies (sixtieths of asecond) that have elapsed since the computer was turned on.The value of location 162 ($A2) is increased every jiffy (0.1667second), 161 ($A1) is updated every 256 jiffies (4.2267 seconds), and160 ($A0) changes every 65536 jiffies (or every 18.2044 minutes).After 24 hours, these locations are set back to 0.The jiffy clock is used by the BASIC reserved variables TI and TI$.These are not ordinary variables that are stored in the RAM variablearea, but are functions that call the Kernal routines RDTIM (63197,$F6DD), and SETTIM (63204, $F6E4). Assigning the value of TI or TI$to another variable reads these locations, while assigning a givenvalue to TI$ alters these locations.To illustrate the relationship between these locations and TI$, trythe following program. The program sets the jiffy clock to 23 hours,50 minutes. After the program has been running for one minute, allthese locations will be reset to 0.100 TI$="235900"110 PRINT TI$,PEEK(160),PEEK(161),PEEK(162)120 GOTO 110Since updating is done by the IRQ interrupt that reads the keyboard,anything which affects the operation of that interrupt routine willalso interfere with this clock. A typical example is tape I/Ooperations, which steal the IRQ vector for their own use, and restoreit afterwards. Obviously, user routines which redirect the IRQ and donot send it back to the normal routine will upset software clockoperation as well.
Damit sollte sich doch was anfangen lassen, ich gucke nachher mal... Wie ist das denn mit dem IRQ Interrupt zu verstehen? Das bezieht sich nur auf Assembler-Subroutinen, oder? Oder bremsen Tastatureingaben und Joystickbewegungen etwa die interne Uhr ab?
Wie ist das denn mit dem IRQ Interrupt zu verstehen? Das bezieht sich nur auf Assembler-Subroutinen, oder? Oder bremsen Tastatureingaben und Joystickbewegungen etwa die interne Uhr ab?
Umgekehrt - der IRQ fragt die Tastatur ab und zählt TI hoch. Genau deshalb zählt TI ja in sechzigstel Sekunden: eben weil das System den CIA-Timer so einstellt, dass 60mal pro Sekunde ein IRQ ausgelöst wird.
Wenn nun aber mal der IRQ eine Zeitlang unterdrückt wird, z.B. während Lade- oder anderer Bus-Operationen, dann zählt eben auch TI in dieser Zeit nicht hoch - die TI$-Uhr geht dann etwas nach.
"Etwas" ist gut! Wenn drei Minuten von der Datassette geladen wird, dann müssten das doch auch drei Minuten sein, die einem nachher fehlen, oder?
Aber im normalen Betrieb, also durch Tastatureingaben und Joystickabfragen wird TI$ nicht verzögert, oder?
"Etwas" ist gut! Wenn drei Minuten von der Datassette geladen wird, dann müssten das doch auch drei Minuten sein, die einem nachher fehlen, oder?
Nur wenn der Interrupt während der kompletten Ladezeit gesperrt ist. Von der Datassette weiß ich es nicht, aber beim seriellen Bus wird der IRQ zwischendurch immer wieder aktiviert - es fehlt also nur ein Teil der Zeit.
Aber im normalen Betrieb, also durch Tastatureingaben und Joystickabfragen wird TI$ nicht verzögert, oder?
Nein.