You are not logged in.

marco64

Karteileiche mit kleinem Lebensfunken

  • "marco64" is male

Posts: 394

Date of registration: Aug 21st 2005

Location: Berlin

  • Send private message

member since 90 month member since 90 month member since 90 month member since 90 month member since 90 month

21

Wednesday, May 21st 2008, 12:49pm

Wenn du in den Basic oder Kernal-ROM Bereich Poke'st dann schreibst du in das darunter liegende RAM. PEEK liest dort wenn das ROM aktiv ist (gesteuert durch $01) nur das ROM und nicht das RAM aus. Deshalb kannst du auch Basicprogramme schreiben die scheinbar total unsinnig sind:

Source code

1
FOR X=57344 TO 65535: POKE X,PEEK(X): NEXT


Diese Zeile kopiert den Kernal vom ROM ins RAM. Wenn du also deinen neuen Zeichensatz ändern willst geht das ohne Probleme. Zum Auslesen brauchst du aber einen kleinen Workaround. Du brauchst eine Assembler Routine die das ROM abschaltet, das RAM an entsprechender Stelle ausließt, das ROM wieder einschaltet und den Wert zurück gibt. Dabei musst du dich noch um den IRQ und NMI kümmern weil es sonst zu abstürzen kommen kann. Ist aber halb so wild wie es sich anhört. ^^

ich hoffe die Verwirrung ist jetzt perfekt ;)
marco

PS: an $C000-$CFFF existiert nur RAM, also no problema für PEEK

TheRyk

KKK?! That's not good.

  • "TheRyk" is male
  • »TheRyk« is a verified user

Posts: 7,985

Date of registration: Mar 14th 2008

Location: Ostereierinsel

  • Send private message

member since 54 month member since 54 month member since 54 month

22

Wednesday, May 21st 2008, 1:09pm

Ehhh ja... :schreck!:
Klingt tatsächlich erstmal evil. Aber damit befasse ich mich dann wohl, sobald ich auf Probleme stoße. Freue ich mich jetzt schon drauf :)

Noch mal 'ne andere Frage: Mit "Deinem" angehängten Set "CHAR-$E000" (ein nach E000 verlegter Mafia-Char?) läuft das wie gesagt alles wunderbar. Nur mit meinen Charsets nicht. Selbst wenn ich Deines lade, editiere und speichere, geht es hinterher nicht mehr. Ich vermute mal messerscharf, dass StarChar das Set spätestens beim Speichern immer wieder im Standard-Bereich ablegt, selbst wenn er es beim Laden erkennt.

Hat da vielleicht noch jemand einen Tipp? Wer StarChar kennst, was müsste ich dort machen? Bzw. welchen anderen Editor kann man mir empfehlen, mit dem ich das hinkriege, was marco geschafft hat, nämlich das Set ab E000 zu speichern?
Wenn Sie irgendwelche Satzzeichen in meinen Postings vermissen, bedienen Sie sich, bitte:
@!#?@! (Zitat Q*bert, Arcade Version, 1982)

marco64

Karteileiche mit kleinem Lebensfunken

  • "marco64" is male

Posts: 394

Date of registration: Aug 21st 2005

Location: Berlin

  • Send private message

member since 90 month member since 90 month member since 90 month member since 90 month member since 90 month

23

Wednesday, May 21st 2008, 1:45pm

StarChar legt soweit ich gesehen habe die Zeichensätze Standartmässig bei $3800 ab. Es gibt 2 Methoden zum verlegen:

Auf dem C64:
1. Laden und an neue Adresse kopieren (umständlich)

Auf dem PC:
2.1 Die ersten 2Bytes einer ".prg"-Datei geben die Adresse an an die es geladen werden soll. Einfach mit einem HexEditor ändern z.B. von "00 38" in "00 E0" dann wird es unter den Kernal geladen. (Format: "Lowbyte Highbyte")
2.2. beim D64 format mit DirMaster V2 laden, Datei auswählen, Linksclick Rechtsklick und auf 'Jump to Sector'. Das 3. und 4. Byte entsprechen der LOAD Adresse. Wieder das selbe LOW HI format. Speichern nicht vergessen!

Habe den Zeichensatz im Beispiel bei $E000 und nicht bei $E800 abgelegt. Wenn du das ändern willst musst du POKE 53272,... anpassen. StarChar ist wirklich nicht schecht, muss ich mir merken. :zustimm:


EDIT: Ich bin auch ein miserabler Beifahrer im Auto wenn es darum geht den Weg zu beschreiben. Kreuzungen und eine RechtsLinks-Schwäche vertragen sich nicht. :whistling:

TheRyk

KKK?! That's not good.

  • "TheRyk" is male
  • »TheRyk« is a verified user

Posts: 7,985

Date of registration: Mar 14th 2008

Location: Ostereierinsel

  • Send private message

member since 54 month member since 54 month member since 54 month

24

Wednesday, May 21st 2008, 2:02pm

StarChar legt soweit ich gesehen habe die Zeichensätze Standartmässig bei $3800 ab. Es gibt 2 Methoden zum verlegen:

Auf dem C64:
1. Laden und an neue Adresse kopieren (umständlich)

Auf dem PC:
2.1 Die ersten 2Bytes einer ".prg"-Datei geben die Adresse an an die es geladen werden soll. Einfach mit einem HexEditor ändern z.B. von "00 38" in "00 E0" dann wird es unter den Kernal geladen. (Format: "Lowbyte Highbyte")
2.2. beim D64 format mit DirMaster V2 laden, Datei auswählen, Linksclick und auf 'Jump to Sector'. Das 3. und 4. Byte entsprechen der LOAD Adresse. Wieder das selbe LOW HI format. Speichern nicht vergessen!

Habe den Zeichensatz im Beispiel bei $E000 und nicht bei $E800 abgelegt.
Wenn du das ändern willst musst du POKE 53272,... anpassen. StarChar ist wirklich nicht schecht, muss ich mir merken. :zustimm:

Vielen Dank für die schnelle und hilfreiche Antwort!


(Das mit E000 statt E800 hatte ich noch gesehen & geändert, Du warst einfach zu schnell)

Habe es mit DirMaster hingekriegt, wie Du es beschrieben hast. Hat super geklappt!
(Ohne Erbsen zählen zu wollen: bei mir war es Rechtsklick-->JumpToSector! ;) )

Ja der CharStar gefällt mir auch immer besser. Freue mich auch schon darauf, was Hannenz als Nächstes so fertig kriegt.

Ich hoffe, ich komm nun erstmal wieder ein Weilchen allein zu Recht. Wenn ich wieder an die Hand genommen werden muss, weiß ich ja, wo ich mich zu melden habe.
Wenn Sie irgendwelche Satzzeichen in meinen Postings vermissen, bedienen Sie sich, bitte:
@!#?@! (Zitat Q*bert, Arcade Version, 1982)