Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Znaki w C64, jak je zmienic?  (Przeczytany 1529 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

coolboy_

  • Gość
Znaki w C64, jak je zmienic?
« dnia: 13 Stycznia 2005, 15:08 »
Hej! czy moglby mi ktos napisac instrukcje jak zmienic wyglad znakow na commodorku?
Mysle ze chetnych zeby to przeczytac byloby wiecej.
I zeby to w basicu bylo, a nie jakies kody maszynowe, czy assemblery...
No, bardzo bym prosil i byl bym wdzieczny.
 
Pozdro dla wszystkich ktozy tu zajrza...



CBM_

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #1 dnia: 13 Stycznia 2005, 15:26 »
Coz, czy sie da- nie wiem. Mozliwe, ze tak, ale na moje trzeba ROM wymienic
Jesli masz zamiar programowac w Basicu - odpowiem tak wszyscy - nie ma to wiekszego sensu.  
Lepiej nauczyc sie assemblera.
 
Pozdrawiam >:>:>:>:>:>:>:>: CBM

Kreton_

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #2 dnia: 13 Stycznia 2005, 18:22 »
Nie ma sensu... ech... Jak ktos chce i sie uwezmie to nie ma rady. Zreszta zobacz co mozna wycisnac z c64: http://www.pouet.net/prod.php?which=1532

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Znaki w C64, jak je zmienic?
« Odpowiedź #3 dnia: 13 Stycznia 2005, 21:14 »
zeby zmodyfikowac zestaw znakow musisz go przepisac z romu do ramu - ta procedura w basicu trwa dosc dlugo mimo iz trzeba przerzucic tylko 2kb danych , pozatym zakladajac ze masz aktywny bank 0 VICa powaznie ograniczysz sobie dlugosc programu w basicu.
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

coolboy_

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #4 dnia: 18 Stycznia 2005, 15:15 »
>:zeby zmodyfikowac zestaw znakow musisz go przepisac z romu do ramu - ta procedura w basicu trwa dosc dlugo mimo iz trzeba przerzucic tylko 2kb danych , pozatym zakladajac ze masz aktywny bank 0 VICa powaznie ograniczysz sobie dlugosc programu w basicu.
 
to nie wazne ze sie skroci miejsce, wazne zeby zmienic znaki. a zeby przepisac to jak sie to robi?
zwyklym poke i peek?
to pod jakim adresie siedza te znaki?

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Znaki w C64, jak je zmienic?
« Odpowiedź #5 dnia: 18 Stycznia 2005, 16:58 »
trzeba najpierw przestawic konfiguracje pamieci tak aby w $d000-$e000 wystawic generator znakow (domyslnie jest tam I/O), potem peek / poke , i spowrotem ustawic oryginalny konfig pamieci
 
jezeli skopiujesz znaki pod $2000-2800 to mozesz uzyc wskazowki Logana
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

coolboy_

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #6 dnia: 20 Stycznia 2005, 14:57 »
A mozna po  polsku?

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Znaki w C64, jak je zmienic?
« Odpowiedź #7 dnia: 22 Stycznia 2005, 13:42 »
wiec nie chcesz wiedziec jak to sie robi , a chcesz miec efekt koncowy na dloni... nie zrozum mnie zle ale nie zamierzam zapodac gotowego efektu . chcesz to zrobic , to poczytaj troche literatury , dobrze Ci to zrobi polecam Frelka - ":Commodore 64": - akurat to wlasnie zagadnienie jest opisane lopatologicznie i krok po kroku.
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

coolboy_

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #8 dnia: 25 Stycznia 2005, 15:31 »
ja czytalem literature. probowalem.  
i czy trzeba go dac do $2000 bo ja bym chcial AFE6.
Napisalem taki prg, ale cos mi nie wyszlo.
 
10 POKE56333,127:POKE1,51
20 FORT=53248TO57343
30 POKE45030+(T-53248),PEEK(T)
40NEXT
60POKE1,55:POKE56333,129
 
Teoretycznie powinien przepisac te dane do 45030
 
to od jakim w koncu adresem jest ten caly generator znakow?

coolboy_

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #9 dnia: 25 Stycznia 2005, 15:53 »
No dobra, juz wiem ze pod 8192 dziala. ale ja bym chcial gdzies indziej. tak pod koniec obszaru na basica.

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Znaki w C64, jak je zmienic?
« Odpowiedź #10 dnia: 25 Stycznia 2005, 19:04 »
teraz musisz zmienic bank VICa , ale wtedy tez pamiec ekranu bedzie gdzie indziej  
 
tutaj masz podpowiedz
 
1.2.VIC-BANK:      
 
The size of the adressarea of the VIC is only $4000 bytes (16kB). If you want to save a font, bitmap or sprites behind $4000 you\'ve to move the VIC-bank. This is possible in the first 2 bits of the first register of NMI-CIA-2: $dd00.
 
        
Bank (baseadress)   $dd00 (bit 0-1) value   
bank 0 ($0000-$3fff)   %11 = $03   
bank 1 ($4000-$7fff)   %10 = $02   
bank 2 ($8000-$bfff)   %01 = $01   
bank 3 ($c000-$ffff)   %00 = $00   
        
At $1000 (bank 0) and $9000 (bank 2) the VIC see\'s always the ROM-font, that\'s why at $1000 and $9000 you can\'t usefully save sprites, videoram, bitmaps or your own fonts. So programmers mostly save music to this memoryarea.
The last byte of all banks ($3fff,$7fff,$bfff,$ffff) is the so called ghostbyte. This byte is hidden under border. You see it if you scroll the screen in 25/40-row/col-mode vertical/horizontal, while FLD or opened border. So it\'s better to write $00 to it and you see no byte, or you can do some specialeffects by using it in the right timing.
In extendet-background-color-mode the ghostbyte is at VIC-bank+$39ff.
 
-----------
 
to tez Ci sie przyda:
 
$d018   
bit 0 :   unused?, but always high(1) or low(0)?:   
bit 1-3:   Charset-Baseadress-Pointer:
you can move it within the VIC-bank in $0800 steps:
Baseadress   $d018 Bit 0-3 value   
$0000-$07ff   %0001   
$0800-$0fff   %0011   
$1000-$17ff   %0101 ->: not in the VIC-bank 0 and 2:   
$1800-$1fff   %0111 ->: not in the VIC-bank 0 and 2:   
$2000-$27ff   %1001   
$2800-$2fff   %1011   
$3000-$37ff   %1101   
$3800-$3fff   %1111   
bit 3 also is responsible for moving the bitmap
(while bitmapmode ->: $d011 bit 5) in the memory:   
$0000-$1fff   %0xx1   
$2000-$3fff   %1xx1   
bit 4-7:   Videoram-pointer:
you can move it in the VIC-bank in $0400 steps:
 
$0000-$03e7   #00 = %0000   
$0400-$07e7   #01 = %0001 ->: here videoram normally is saved   
$0800-$0be7   #02 = %0010   
$0c00-$0fe7   #03 = %0011   
$3800-$3be7   #14 = %1110   
$3c00-$3fe7   #15 = %1111
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

coolboy_

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #11 dnia: 27 Stycznia 2005, 15:18 »
hmmm... jezeli dobze mysle to z tego wynika ze sa 4 banki??? to oto chodzilo wlasciwie. No bo jak sie dawalo do 8192 to pamiec faktycznie dostawala po ryju i to bardziej niz przypuszczalem.  
No, to dzieki, to mi powinno wystarczyc.

Logan_

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #12 dnia: 14 Stycznia 2005, 14:16 »
Namaluj sobie swoje fonty w jakims Font Edytorze, pozniej wgraj je np. pod $2000, a w basicu wpisz: Poke 53272,25 . ..

Nomad

  • Gość
Znaki w C64, jak je zmienic?
« Odpowiedź #13 dnia: 28 Września 2013, 12:54 »
Dołączę się do dyskusji bo też sobie programuję w basicu (z czystej nostalgii) a w assemblerze raczkuję. Oczywiście zawiesiłem się w momencie kiedy program dotarł do adresu $2000 i zaczął nadpisywać fonty. Próbowałem skorzystać z rad Rafa, niestety nic z tego jeszcze nie kumam. Zrobiłem sobie fonty w edytorze, na moje nieszczęście, chyba wszystkie zapisują je pod adresem $2000 - $2800, wywoływane są komendą poke 53272,24. Pytanie: dlaczego przeniesieniu całej zawartości (w action replay monitor i transfer danych) pod adres $8000 nie daje żadnych rezultatów. Po wklepaniu poke tylko ekran się zamazuje. Przecież poke 53272,24 odwołuje się do adresu $d08f. Wiem, że najlepiej uczyć się na błędach i próbować samemu. Przejrzałem już całą zawartość netu w rozwiązaniu tego problemu i nic. Jeżeli ktoś ma gotowe rozwiązanie, będą bardzo wdzięczny za udostępnienie tej wiedzy. Czy muszę całość pamięci $2000 - $2800 przenieść do innego banku za pomocą pokeów i peeków czy wystarczy w monitorze ją przenieść, zgrać obszar na dysk i wbić jakieś jedno sensowne poke? Pzdr i dziękuję za odpowiedzi

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Znaki w C64, jak je zmienic?
« Odpowiedź #14 dnia: 28 Września 2013, 16:29 »
tutaj masz odpowiedz na swoje pytania:

http://www.the-dreams.de/aay.html
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....