C64Power Forum

Software => Programowanie => Wątek zaczęty przez: coolboy_ w 13 Stycznia 2005, 15:08

Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: coolboy_ w 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...
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: CBM_ w 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
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Kreton_ w 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
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Raf w 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.
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: coolboy_ w 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?
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Raf w 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
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: coolboy_ w 20 Stycznia 2005, 14:57
A mozna po  polsku?
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Raf w 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.
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: coolboy_ w 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?
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: coolboy_ w 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.
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Raf w 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
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: coolboy_ w 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.
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Logan_ w 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 . ..
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Nomad w 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
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Kisiel w 28 Września 2013, 16:29
tutaj masz odpowiedz na swoje pytania:

http://www.the-dreams.de/aay.html
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: wegi w 28 Września 2013, 16:54
Była taki program w C&A - kursywa dla c64 - króciutka pchełka w basicu ładująca kod maszynowy - ze 20 linii do przepisania
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: Nomad w 28 Września 2013, 23:46
Dzięki za odpowiedzi, poszukam w C&A, mam jeszcze oryginalne numery \"\" Pzdr
Tytuł: Znaki w C64, jak je zmienic?
Wiadomość wysłana przez: wegi w 25 Grudnia 2013, 19:16
C&A 03/92 str. 12 "Kursywa dla C-64"