Autor Wątek: SAM i BASIC - kodowanie prostackich dem  (Przeczytany 12439 razy)

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
SAM i BASIC - kodowanie prostackich dem
« dnia: 2012.02.07, 09:46:09 »
Joł.

Więc tak.
Mam już PC program do wrzucania rzeczy na DSK dyskietkę SAMa.
http://www.samcoupe-pro-dos.co.uk/edwin/software/diskmanager/diskmanager.htm


Miałbym parę pytań.

- po włączeniu, w standardowym trybie, jaką rozdzielczośc ma SAM? Paleta pozostawiona jest oryginalna, jak widzę, ale ciekaw jestem ile tam tkwi pixeli oraz ile kolumn/linii.

- w tym trybie są atrybuty, czy nie ma?

- jest jakiś PC program do przekonwertowania odpowiednio przygotowanego obrazka (z PC na SAMa, żeby potem na obraz dyskietki wrzucić)?

- jaki jest odpowiednik LOAD "nazwa" SCREEN$ ? (Z taśmy to pewnie tak samo ciągnie, ale mam na myśli dyskietkę).

- jaki jest odpowiednik LOAD "nazwa" CODE ? (j.w).

- czy SAM ma na tyle stabilny interpreter BASIC, że byłaby możliwość wpisania paru linii DATA, żeby muzyka leciała stabilnie w przerwaniach (tak, jak to się normalnie robi na Spectrum 48K+AY, a na Atari XL się nie da, bo zwalnia)? Nie twierdzę, że umiałbym coś takiego na SAMa napisać - właściwie to pytanie jest pułapką, bo jeśli się da, to pewnie chciałbym pomęczyć kogoś o taki kawałek kodu, hahaha.

- czy basicowy program na SAMie będzie w ogóle sam startować? A jeśli tak, to jak to czynić?

- jest w ogóle jakaś duża baza pecetowych utilsów dla SAMa (jak to ma miejsce dla Spectrum?).

Na razie więcej mi nic do głowy nie przychodzi, ale pewnie coś później tu dopiszę.

Pozdrrr.
Y

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #1 dnia: 2012.02.07, 10:02:14 »
Cytuj
Joł.

Więc tak.

Miałbym parę pytań.

- po włączeniu, w standardowym trybie, jaką rozdzielczośc ma SAM? Paleta pozostawiona jest oryginalna, jak widzę, ale ciekaw jestem ile tam tkwi pixeli oraz ile kolumn/linii.

Standardowy ekran Mode 4 to 256x192 piksele, 4 bity na piksel czyli 16 kolorów na piksel z palety 128 kolorów.

Cytuj
- w tym trybie są atrybuty, czy nie ma?

Nie ma. Kolor kodowany jest bezpośrednio na bitmapie (j.w. - 4 bity na piksel) a do tego jest CLUT kodujący paletę.

Cytuj
- jest jakiś PC program do przekonwertowania odpowiednio przygotowanego obrazka (z PC na SAMa, żeby potem na obraz dyskietki wrzucić)?

Pewnie jest. Ja nie używam Windowsa (bo znowu jak rozumiem robisz uproszczenie PC=Windows ;)) więc napisałem sobie własny skrypt konwertujący grafikę do formatu Sama.

Cytuj
- jaki jest odpowiednik LOAD "nazwa" SCREEN$ ? (Z taśmy to pewnie tak samo ciągnie, ale mam na myśli dyskietkę).

A jaki ma być? ;) Po załadowaniu DOSa wszystkie standardowe polecenia zaczynają odwoływać się do pierwszej stacji dyskietek. Jeśli chcesz załądować z drugiej do dajesz LOAD "D2:nazwa" SCREEN$. O ile pamiętam przekierowanie na taśmę to "T:nazwa"

Cytuj
- jaki jest odpowiednik LOAD "nazwa" CODE ? (j.w).

j.w. ;)

Cytuj
- czy SAM ma na tyle stabilny interpreter BASIC, że byłaby możliwość wpisania paru linii DATA, żeby muzyka leciała stabilnie w przerwaniach (tak, jak to się normalnie robi na Spectrum 48K+AY, a na Atari XL się nie da, bo zwalnia)? Nie twierdzę, że umiałbym coś takiego na SAMa napisać - właściwie to pytanie jest pułapką, bo jeśli się da, to pewnie chciałbym pomęczyć kogoś o taki kawałek kodu, hahaha.

A po co kombinować? Z ETrackerem w komplecie był player (a właściwie kawałek kodu podpinający się do właściwego playera) ładowany w heap (gdzieś chyba od 16384) podpinający się pod przerwania i grający muzyczkę w tle.

edit : Jak się okazuje był chyba na oryginalnej drugiej dyskietce ETrackera... Nazywał się INT-PLAY... Jak znajdę to dam namiar ;)

Cytuj
- czy basicowy program na SAMie będzie w ogóle sam startować? A jeśli tak, to jak to czynić?

Dokładnie tak samo jak na Spectrumie - SAVE "nazwa" LINE 10. A jak chcesz mieć taki, który się odpali bo BOOT, to SAVE "auto" LINE 10.

Cytuj
- jest w ogóle jakaś duża baza pecetowych utilsów dla SAMa (jak to ma miejsce dla Spectrum?).

A tu ci nie odpowiem - nie mam, nie potrzebowałem ;) Ale jak przeglądałem ostatnio sieć to jakieś drobiazgi się da wydłubać. Choć w czasach jak ja pisałem na Samie to raczej wszystko robiło się na fizycznej maszynie i toolsy działały/były pisane właśnie tam.

m.
« Ostatnia zmiana: 2012.02.07, 10:10:33 wysłana przez matofesi »

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #2 dnia: 2012.02.07, 10:29:06 »
Nie znalazłem dokładnie tego, co pisałem, ale mam funkcjonalny odpowiednik ;)

http://sam.speccy.cz/coding/et_player_with_mdriver.txt

To jest tekst na temat tego, że player na przerwaniach do odpalania pod BASICem był zwalony bo nie sprawdzał, czy coś wcześniej nie było zawieszone na przerwaniach tylko sam się podpinał co powodowało, że wyłączał sterownik do myszy działający na tym samym mechanizmie. W tekście jest też zmodyfikowany kod playera przerwaniowego, który nie ma tego problemu. Kod wydaje się być prosty i nie powinieneś mieć problemu z jego użyciem - jedyna kwestia jest taka, że musisz kompilując muzyczkę a potem merge'ując player podać - o ile pamiętam - jako adres 16384 (edit: źle pamiętałem - poprawny adres to 32768 ;)) - player ładuje potem kod gdzieś dalej a sama muzyka jest odpalana po przełączeniu strony pamięci.

« Ostatnia zmiana: 2012.02.07, 10:52:35 wysłana przez matofesi »

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #3 dnia: 2012.02.07, 10:51:41 »
A dla ułatwienia zrobiłem takie coś jak w załączniku - po zabootowaniu "wkładasz" do napędu dyskietkę z załącznika (F1), dajesz LOAD 1 a potem RUN - programik pakuje kod do pamięci, ładuje moduł na zadaną stronę pamięci (tutaj - 10) i odpala procedurę grającą na przerwaniach i robi STOP. Muzyczka gra a ty możesz sobie robić inne rzeczy w BASICu. CONTINUE odpala kolejnego CALLa i wyłącza muzyczkę. Do własnego użytku podmieniasz plik z muzyką i playerem (MERGE'owanym od adresu 32768 a nie jak wcześniej pisałem 16384), ustawiasz stronę i odpalasz :)

No i oczywiście ten programik ignoruje fakt istnienia sterownika myszy ;)

« Ostatnia zmiana: 2012.02.07, 10:53:32 wysłana przez matofesi »

Sir David

  • Moderator
  • *****
  • Wiadomości: 391
  • Miejsce pobytu:
    Białystok
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #4 dnia: 2012.02.07, 10:55:57 »
To ja jeszcze uzupełnię odpowiedzi Mata i dodam coś od siebie:

- po włączeniu, w standardowym trybie, jaką rozdzielczośc ma SAM? Paleta pozostawiona jest oryginalna, jak widzę, ale ciekaw jestem ile tam tkwi pixeli oraz ile kolumn/linii.

Dodam, że Sam ma 4 tryby graficzne, zmieniane z Basica poleceniem MODE. Po włączeniu jesteśmy w MODE 4, tryb zgodny z ZX Spectrum to MODE 1.

Cytuj
- jest jakiś PC program do przekonwertowania odpowiednio przygotowanego obrazka (z PC na SAMa, żeby potem na obraz dyskietki wrzucić)?

Tego nie wiem. Ja zapisywałem sobie obrazek na PC jako nieskompresowany .bmp, wrzucałem go na dyskietkę Sama i tam pisałem prosty programik w Basicu, który przerzucał go na ekran. Przy normalnej prędkości Sama działało to bardzo powoli, ale pod SimCoupe, po naciśnięciu F7 (czyli full speed), szło już całkiem szybko.

Cytuj
- jaki jest odpowiednik LOAD "nazwa" SCREEN$ ? (Z taśmy to pewnie tak samo ciągnie, ale mam na myśli dyskietkę).
- jaki jest odpowiednik LOAD "nazwa" CODE ? (j.w).

Oprócz tego, co powiedział Mat (czyli identycznie jak na Spectrum), można ładować pliki przez LOAD nr, gdzie nr jest pozycją pliku w katalogu i można ją zobaczyć przez DIR1 (1 dla pierwszej stacji). Oczywiście nie nadaje się to do umieszczenia w loaderze, ale do szybkiego ręcznego załadowania pliku do pamięci jest wygodniejsze niż wpisywanie nazwy. Np. jak chcesz przejrzeć obrazki na dysku, to piszesz DIR1, a potem np. LOAD6 itd. Jest o wiele szybciej.

Cytuj
- czy basicowy program na SAMie będzie w ogóle sam startować? A jeśli tak, to jak to czynić?

Dodam, że po BOOT ładowany jest pierwszy plik, którego nazwa zaczyna się na "auto". A jeżeli nie chciałbyś, żeby ten plik się automatycznie załadował, to wpisz BOOT1.


YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #5 dnia: 2012.02.07, 13:45:16 »
MAT:

> Standardowy ekran Mode 4 to 256x192 piksele, 4 bity na piksel czyli 16 kolorów na piksel z palety 128 kolorów.
Kolor kodowany jest bezpośrednio na bitmapie (j.w. - 4 bity na piksel) a do tego jest CLUT kodujący paletę.
-----------------------------
Ło jasny gwint. Właśnie sprawdziłem.
W rzeczy samej są to zwykłe 16-kolorowe pliki BMP. W dodatku "konwertujesz" je do DSK procedurą dla głupków takich, jak ja - czyli "drag & drop" pecetowym programem http://www.samcoupe-pro-dos.co.uk/edwin/software/scrviewer/scrviewer127.zip
Jaja jak balony.


> znowu jak rozumiem robisz uproszczenie PC=Windows ;)
-------------------
Oczywiście. :) :) :) :) :)



> Dokładnie tak samo jak na Spectrumie - SAVE "nazwa" LINE 10. A jak chcesz mieć taki, który się odpali bo BOOT, to SAVE "auto" LINE 10.
----------------
Ooo, fękju elot.



> A dla ułatwienia zrobiłem takie coś jak w załączniku - po zabootowaniu "wkładasz" do napędu dyskietkę z załącznika (F1), dajesz LOAD 1 a potem RUN - programik pakuje kod do pamięci, ładuje moduł na zadaną stronę pamięci (tutaj - 10) i odpala procedurę grającą na przerwaniach i robi STOP. Muzyczka gra a ty możesz sobie robić inne rzeczy w BASICu. CONTINUE odpala kolejnego CALLa i wyłącza muzyczkę. Do własnego użytku podmieniasz plik z muzyką i playerem (MERGE'owanym od adresu 32768 a nie jak wcześniej pisałem 16384), ustawiasz stronę i odpalasz ;)
No i oczywiście ten programik ignoruje fakt istnienia sterownika myszy ;)
------------------------
Pradopodobnie byłoby to właśnie to, o co mi chodziło.
Wieeeeeeelkie dzięki. Będę się temu przyglądać!




SirDavid:

> Dodam, że Sam ma 4 tryby graficzne, zmieniane z Basica poleceniem MODE. Po włączeniu jesteśmy w MODE 4, tryb zgodny z ZX Spectrum to MODE 1.
---------------
Ooo, to teżistotna informacja. Dzięki!



> Dodam, że po BOOT ładowany jest pierwszy plik, którego nazwa zaczyna się na "auto". A jeżeli nie chciałbyś, żeby ten plik się automatycznie załadował, to wpisz BOOT1.
---------------
Aaa. Właśnie się nad tym zastanawiałem, jak wprowadzić system bez odpalania pliku startowego. :)





Dzięki jeszcze raz - będę kombinować i pewnie też pisać, gdy wystąpią trudności (chociaż głównie to pewnie dopiero jak skończymy robić gumiaczane demo na Forever).
Pozdrrrrrrrrr.

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #6 dnia: 2012.02.07, 15:28:14 »
Ooo, no to SAM może bez mrugania wyświetlić spectrumowy tryb RGB (8-color).

Nice. ;)

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #7 dnia: 2012.02.09, 15:41:25 »
A dla ułatwienia zrobiłem takie coś jak w załączniku - po zabootowaniu "wkładasz" do napędu dyskietkę z załącznika (F1), dajesz LOAD 1 a potem RUN - programik pakuje kod do pamięci, ładuje moduł na zadaną stronę pamięci (tutaj - 10) i odpala procedurę grającą na przerwaniach i robi STOP. Muzyczka gra a ty możesz sobie robić inne rzeczy w BASICu. CONTINUE odpala kolejnego CALLa i wyłącza muzyczkę. Do własnego użytku podmieniasz plik z muzyką i playerem (MERGE'owanym od adresu 32768 a nie jak wcześniej pisałem 16384), ustawiasz stronę i odpalasz :)


Aaa, jeszcze jedno. Czy na początek trzeba dać GOTO 200, żeby sobie DATA'y poczytał?? (Tak mam na gumioku).

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #8 dnia: 2012.02.09, 15:47:03 »
Nie. Od linii 20 do 50 jest pętla ładująca do pamięci to, co siedzi w DATAch. Po zwykłym RUN kod jest pakowany w bezpieczne miejsce, ładowana jest muzyczka i uruchamiany player (CALL 16384). Kolejny CALL (16387) służy do wyłączania playera.

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #9 dnia: 2012.02.13, 09:33:01 »
Aaa, no widzisz. :)
Wiele jeszcze nie wiem o tym, jak widzę. ;)
Napisanie czegokolwiek może okazać się trudniejsze, niż myślałem. ;) Ale spróbuję i tak. Po Forever.


PS: Spróbuję wpisać jakiś kod z 'małego gumioka' i sprawdzę, czy zadziała. Hehehe.
« Ostatnia zmiana: 2012.02.13, 09:45:59 wysłana przez YERZMYEY/HOOY-PROGRAM »

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #10 dnia: 2012.02.13, 10:14:08 »
Ale kod w czym? W BASICu? Powinien mniej więcej działać ;) Na działanie Asma tak wprost raczej nie licz ;)

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #11 dnia: 2012.02.13, 10:27:49 »
Tak tak, basicowy. Mam jakieś scrolle itp, jeszcze z początku lat 90s, kiedy Mr Hangman robił dla nas "na zapas", żebyśmy potem używali.
Mam taki duży, "lampkowy", ale ten pewnie nie pójdzie, za to jest jakiś inny, standardowy 8*8 i zakładam, że ten może pójdzie.
No nic, będę się bawić. :) Tylko musimy skończyć demo "grupowe" (jak sex ;) ) na Forever. Na Gumioka.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #12 dnia: 2012.02.13, 10:33:53 »
Jeśli jedzie używając POKE po atrybutach to możesz zapomnieć - trzeba by przełączyć ekran w MODE 1 i zmodyfikować adres początku pamięci atrybutów. Jeśli robi jakieś PRINTy itp. to wtedy powinien pójść. Tylko jakoś sobie nie wyobrażam kodu w czystym BASICu, który miałby robić scrolla (nawet na atrybutach) chodzącego z sensowną prędkością ;)

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #13 dnia: 2012.02.13, 10:37:18 »
Trudno mi osądzić.
Mam na myśli ten:

http://republika.pl/hooyprogram/98demo2.zip
Chciałem go wydziubać.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: SAM i BASIC - kodowanie prostackich dem
« Odpowiedź #14 dnia: 2012.02.13, 10:48:47 »
Eeee... kod w REMie, jakieś bloki kodu i RANDOMIZE USR - to może wyglądać na BASIC, ale jest wspomagane asmem.