Autor Wątek: [ZX81] Wyzwanie programistyczne nr 1  (Przeczytany 40492 razy)

KWF

  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
[ZX81] Wyzwanie programistyczne nr 1
« dnia: 2020.01.28, 10:11:34 »
Update:

Termin zgłaszania i nadsyłania prac na to compo, został przesunięty do: 23:59:59 11 grudnia 2020.

Dopuszczony format plików: .p.

Jeśli będą tylko 4 prace konkursowe (lub mniej), to wszystkie one zostaną umieszczone w ROMie interfejsu (o ile będzie to technicznie możliwe). W przypadku większej ilości prac niż 4, wszystkie ostaną zaprezentowane na spotkaniu on-line 15 grudnia i tam zostaną wybrane 3 najlepsze, do umieszczenia na stałe w interfejsie.

Wszyscy autorzy (nawet w przypadku prac grupowych) otrzymają po jednej sztuce interfejsu. Inni użytkownicy forum będą mieli okazję na zakup interfejsu w dziale Bazar, o ile jakieś zostaną po obdarowaniu autorów.

Proszę uzbroić się w cierpliwość, ponieważ prace będą musiały zostać przekonwertowane do poprawnej pracy z ROMu. Ten proces jest w zakresie organizatorów i zostanie wykonany po prezentacji prac on-line.


----------------------------------------------------------------------------------


W związku ze zbliżającym się speccy.pl party 2020.1 myślę, że warto zmobilizować naszych szanownych kolegów programistów. Wasze produkcje na ZX Spectrum mają bardzo wysoki poziom, ale czas wrócić do korzeni i napisać prodke na starszego brata tj. ZX81:)

Założenia dla programujacych:
  • termin zgłaszania prac: 23:59:59, 31 marca 2020r., 23:59:59 11 grudnia 2020
  • platforma sprzetowa: ZX81 + 16/32KB RAM,
  • wielkość prodki: do 8KB pliku binarnego i ani bita więcej, ale może być mniej np. 256B :),
  • prodka moze tylko korzystac z RAM z przestrzeni adresowej 0x6000 do 0x8000,
  • konkursowo prodka w formie pliku .p odpalana z ZXpanda(+) lub ZX1541, oraz pod emulatorem EightyOne
  • ostateczna forma prodki musi byc miec mozliwosc uruchamiania przez RAND USR 8192 (tak, tak, przestrzen niewykorzystywana w standardowym ZX81),
  • finalna alokacji prodki od 0x2000 do 0x4000, program nie może zapisywać danych w tym obszarze pamięci, ponieważ pamięć typu ROM, może być przypisana do tego zakresu adresów,
  • głosowanie i ogłoszenie zwycięzcy na speccy.pl party 2020.1

Dlaczego takie "dziwne" wymagania?

Prodki, które zajmą 3 pierwsze miejsca zostaną zaszyte w ROMie okolicznościowego interfejsu do ZX81 (16KB RAM + ROM).

Pięciu najlepszych uczestników tej zabawy programistycznej otrzyma w prezencie ten interfejs, jako nagrodę za włożony trud i poświęcony czas na prodkę.

W przypadku braku kreatywności/czasu/chęci programistów, interfejs i tak powstanie ALE zawartość ROMu zostanie ustalona po party.

Interfejs będzie wydany w limitowanej liczbie 10 sztuk. 5 sztuk będzie rozdane (na razie zasady nie zostały ustalone) wśród forumowiczów.

Konkurs ma charakter otwarty i można o nim "trąbić" w mediach społecznościowych.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

tooloud

  • *****
  • Wiadomości: 3185
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #1 dnia: 2020.01.28, 11:58:40 »
jakby się udało HELLO WORLD zrobić fontem ZXowym...
dużo sprzętu mało czasu.

KWF

  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #2 dnia: 2020.01.28, 12:15:46 »
Proszę bardzo.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

tooloud

  • *****
  • Wiadomości: 3185
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #3 dnia: 2020.01.28, 12:25:04 »
O, i superancko!
dużo sprzętu mało czasu.

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #4 dnia: 2020.02.01, 16:37:27 »
  • platforma sprzetowa: ZX81 + 16/32KB RAM,
  • prodka moze tylko korzystac z RAM z przestrzeni adresowej 0x6000 do 0x8000,

Albo źle patrzę albo widzę tutaj niespójność - to w końcu ile tej pamięci? 16? 32? czy może jednak 8k?
ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200

KWF

  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #5 dnia: 2020.02.03, 10:48:22 »
Dalthon, proszę przeczytaj całość wymagań. Wynikają one z organizacji pamięci w ZX81 oraz ostatecznej alokacji prodki.

Swoją drogą jeśli znajdziesz ZX81 z 8KB RAM na pokładzie (standardowym produktem, a nie samoróbką) lub takowy plecaczek, to masz u mnie sześciopak dowolnie wybranego piwa.

KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

tooloud

  • *****
  • Wiadomości: 3185
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #6 dnia: 2020.02.03, 13:51:24 »
tak dla przypomnienia - bo właśnie grzebałem "w"

0000 hex to 1FFF =   0 to  8k = BASIC ROM
2000 hex to 3FFF =  8k to 16k = "echo" of BASIC ROM
4000 hex to 7FFF = 16k to 32k = RAM (if only the internal 1K is fitted, this 1k of RAM is "echoed" 15 times)
8000 hex to BFFF = 32k to 48k = "echo" of 0000 hex to 3FFF 0 to 16k area (BASIC ROM)
C000 hex to FFFF = 48k to 64k = "echo" of 4000 hex to 7FFF 16k to 32k area, used by the system for the display
dużo sprzętu mało czasu.

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #7 dnia: 2020.02.03, 14:57:49 »
Dalthon, proszę przeczytaj całość wymagań.
No proszę! Starej daty jestem więc czytam przed zadaniem pytania ;)

Pytam się bo (cytując klasyka) jeśli chodzi hardware ZX81 to jestem Lajkonikiem;) [thx! tooloud za pomocne info!]

O ile wszystkie obostrzenia kumam, to nie wiem czemu do dyspozycji jest tylko 8kB RAM który można zapisywać (0x6000 do 0x8000)?
Jakby było od 0x4000 do 0x8000 to można by było się pokusić o coś większego: od 0x2000 do 0x4000 spakowane 8kB a powyżej rozpakowane ~16kB :D
ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200

KWF

  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #8 dnia: 2020.02.03, 15:09:56 »
A to pakuj ile wlezie, bylebyś potem całość zmieścił w 8K, które będą ROMem ;)

Poza tym, znając Twoje umiejętności i 256B robisz takie cuda wianki, że 8K to i tak za dużo dla Ciebie ;)
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #9 dnia: 2020.02.03, 15:34:24 »
No to zobaczymy :) Mając więcej miejsca na dane, może się o trochę grafiki (zx81'owej oczywiście;P) pokuszę! :D
ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #10 dnia: 2020.02.04, 09:54:23 »
Albo piszesz demo które siedzi w ROM i korzysta z RAM - choć to wymaga dużej dyscypliny aby nie tworzyć automodyfikowalnych procedur,
albo też przerzucasz wszystko do RAM i odpalasz program.

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #11 dnia: 2020.02.04, 12:58:25 »
No właśnie chce w ROM trzymać spakowane i rozpakowywać do RAM i stąd potrzeba więcej niż 8kB w RAM ;)
ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200

KWF

  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #12 dnia: 2020.02.12, 10:26:07 »
Podpowiedz, w jaki sposob mozna przetestowac binarke z ROMu w przestrzeni 8K-16K.

Do tego potrzeny bedzie emulator EightyOne (EO). Emulator konfigurujemy pod ZX81 ze standardowym 16KB RAM (w przestrzeni 16K-32K). Jesli ktos bedzie korzystal w WRX, to nalezy zaznaczyc te opcje. Zapisujemy konfiguracje, robimy reset emulowanego ZX81 i emulator jest gotowy. Aby wczytac przygotowany plik binarny, z menu "File", wybieramy "Load Memory Block", w okienku "Load Block..." wskazujemy plik do zaladowania i za adres podajemy 8192 (dziesietnie). Klikamy "Load File..." i nic sie nie dzieje, ale binarka zostala wczytana. Aby ja wywolac wydajemy komende RAND USR 8192 i jesli nasz programik dziala poprawnie, odpali sie. W zalaczniku plik z jednym z programow wydanych przez Timexa na kartch do samodzielnej zabawy.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

tooloud

  • *****
  • Wiadomości: 3185
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #13 dnia: 2020.02.14, 16:07:20 »
No właśnie chce w ROM trzymać spakowane i rozpakowywać do RAM i stąd potrzeba więcej niż 8kB w RAM ;)

ale, że nie zmieścisz się nagle w 256 bajtach?  :o :P
dużo sprzętu mało czasu.

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: [ZX81] Wyzwanie programistyczne nr 1
« Odpowiedź #14 dnia: 2020.02.14, 17:33:28 »
ale, że nie zmieścisz się nagle w 256 bajtach?  :o :P
zx81 ma duże pixele - nie mieszczą się w 256b :P
ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200