Autor Wątek: Moje STARTy / menu dyskowe.  (Przeczytany 3551 razy)

Phonex

  • *****
  • Wiadomości: 1054
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #15 dnia: 2018.09.28, 12:11:06 »
8. Gry 05

4 gry. 438 bajtów.
Udana próba napisania najkrótszego starta. Mieści się w dwóch sektorach Opusa.
Jeszcze więcej asemblera - przeniesione "otwierania okienka" czyli ustawianie koloru.
Tylko cztery gry, bo pewnie tyle weszło na dysk, ale zostało jeszcze trochę miejsca do 512, więc nawet po dopisaniu jeszcze kilku gier też się zmieści.
Jest spokojny, bez efektów, więc nadaje się też do dysku z użytkami.

Phonex

  • *****
  • Wiadomości: 1054
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #16 dnia: 2018.10.05, 13:53:07 »
9. rafamiga 1 

5 gier. 1061 bajtów
NIE MOJE! Rafamiga postanowił zająć się tematem, chociaż nie miał stacji dysków ;)
No i widać na pierwszy rzut oka, że jest napisany dla mnie.
Ładny efekt gwiazd, z trzema planami. Można by potraktować to jako napisany awansem (40-letnim!) program na "Wyzwanie dla programistów #5" ;D Gwiazdki płyną w lewo lub w prawo, zależnie od ostatnio użytego kursora.
Gry wpisane są w linii 1 po REM. Muszą zostać w linii 1, bo asembler lokalizuje ją na podstawie numeru. Bez problemu można dopisać więcej gier - na początku linii jest podana ilość (jednocyfrowa - ale można wpisywać litery).
W zasadzie cały start jest w asemblerze, w BASICu poza LOAD są tylko tytuły i przekazywanie wybranej gry. A czemu reset po wybraniu "[-]" jest w BASICu? Początkowo w ogóle go nie było, z tego co pamiętam, i Raf dopisał go potem od ręki. W zasadzie zamykanie (jako reset) jest potrzebne na Opusa, a na FDD3000 jest przecież reset w interfejsie - można by we wszystkich przerobić to na wyjście do Basica bez resetu stacji.
Nie ma obsługi joysticka. Do zatwierdzania wyboru służy tylko "0", ENTER nie działa. Centralny napis pewnie można by zmienić, ale nigdy nie miałem cierpliwości, żeby dojść jak jest zrobiony.
« Ostatnia zmiana: 2018.10.05, 14:13:17 wysłana przez Phonex »

Klaud

  • *****
  • Wiadomości: 3663
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • Mordimer Madderdin
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #17 dnia: 2018.10.05, 14:11:34 »
Fajna animacja tych 3 planów :)
KL
-----
Poszukuję TS1500, TK95 oraz C=116.

tdu

  • *****
  • Wiadomości: 825
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #18 dnia: 2018.10.05, 15:35:15 »
Fajne starty, mi jednak marzy się taki co sam wyświetli zawartość dyskietki i uwzględni stronicowanie,
przy dużej liczbie tytułów (wyświetli np. po 10 pozycji).
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #19 dnia: 2018.10.05, 16:11:52 »
Ponad 10 gier na stronie?   To chyba formatowanych na DD.
TREK is better than WARS.. ;)

tdu

  • *****
  • Wiadomości: 825
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #20 dnia: 2018.10.05, 16:18:11 »
FDD3000 formatuje dyskietki na 720kB, więc gier moze być ponad 10 spokojnie.
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

trojacek

  • *****
  • Wiadomości: 4403
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #21 dnia: 2018.10.05, 16:41:39 »
640KB (16 + 4 + 620).

Phonex

  • *****
  • Wiadomości: 1054
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #22 dnia: 2018.10.05, 16:59:21 »
Fajne starty, mi jednak marzy się taki co sam wyświetli zawartość dyskietki i uwzględni stronicowanie,
przy dużej liczbie tytułów (wyświetli np. po 10 pozycji).

Jest ten napisany przez Bzyka, co brzęczy AYkiem.
Mam jeden automatyczny, napisany na szybko, kiedyś był mi potrzebny. Tylko jest mało praktyczny: nie tylko nie ma stronicowania, ani zmiany napędu, ale nie czyta dyskietek DD, a na dodatek nie ma żadnych zabezpieczeń i wywala błąd przy ilości programów większej niż potrafi wyświetlić :(

W zasadzie przy znajomości TOSa, nawet bez znajomości procedur dyskowych, czy w ogóle asemblera można napisać automatyczny start w BASICu. Jest ten kanał/strumień którym można po znaku czytać katalog, o którym pisał chyba steev.

steev

  • *****
  • Wiadomości: 833
  • Miejsce pobytu:
    inode 42
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #23 dnia: 2018.10.05, 23:52:52 »
Kanał #0. Automatycznie i zawsze otwarty.
Można też i bez niego.
Start poniżej to czysty basic, korzystający z polecenia CAT*.
Tutaj specjalnie jest widoczny, bo zawsze mu ustawiałem flagę 'hidden'.
Wady - ilość plików na dyskietce nie mogła spowodować skrollowania ekranu.
Zalety - rozpoznawał pliki typu 'code' i pytał czy ma je załadować, pozwalał chodzić po katalogach.
Rozmiar - duuuuużo :)
Machines should work. People should think.

tdu

  • *****
  • Wiadomości: 825
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #24 dnia: 2018.10.06, 09:46:32 »
Mozesz udostępnić,  proszę
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

Phonex

  • *****
  • Wiadomości: 1054
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #25 dnia: 2018.10.06, 09:48:29 »
Wady - ilość plików na dyskietce nie mogła spowodować skrollowania ekranu.

Aaaa, czyta z ekranu? Jak start Bzyka czyta z którego napędu się uruchomił, czy ABBA Copy nazwy napędów.
Nie doceniałem tej funkcji... Raz w ogóle użyłem SCREEN$ do czytania z ekranu w starcie s4.

steev

  • *****
  • Wiadomości: 833
  • Miejsce pobytu:
    inode 42
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #26 dnia: 2018.10.06, 23:41:20 »
Cytat: Phonex
Aaaa, czyta z ekranu? Jak start Bzyka czyta z którego napędu się uruchomił, czy ABBA Copy nazwy napędów.
Nie doceniałem tej funkcji... Raz w ogóle użyłem SCREEN$ do czytania z ekranu w starcie s4.
Ano czyta z ekranu.
Na tyle skutecznie, że nigdy nie miałem cienia ochoty by coś zmienić.

Cytat: tdu
Mozesz udostępnić,  proszę
Yyy, w sensie to paskudztwo do odpalania gierek?
Prosz... :)
Machines should work. People should think.

Phonex

  • *****
  • Wiadomości: 1054
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #27 dnia: 2018.10.12, 10:52:17 »
10. Gry s7

5 gier. 1124/1220 bajtów.
Udana próba napisania największego okienka ;D
Już były litery podwójnej wysokości 2x1, a teraz wersja maksymalna 2x3. Okienko na cały ekran! Jedyny (czy jeden z dwóch) mój start dłuższy niż 1k.
Nie ma ramki z boków, bo nie da się fizycznie narysować jej poza okienkiem, a jak jest wewnątrz, to pasek wyboru, który jest w INVERSE, "inwertuje" też ramkę, co nieładnie wygląda. To znaczy tak myślałem wtedy. Teraz wpadłem na pomysł jak to zrobić - na końcach zamiast spacji jest znak UDG z pionową kreską. Efekt na drugim obrazku. Feler pozostał tylko po dokonaniu wyboru, jak jest FLASH. Ale wtedy jest widoczny tylko przez 50% czasu, a poza tym po wybraniu już przecież nikt nie patrzy ;)
Procedura do powiększania liter jest dość długa (535 bajtów), potrafi też wyświetlać litery 3 na 3 (tytuł), możliwe że i inne rozmiary. Nie pamiętam skąd ją wziąłem, ale teraz oglądając znalazłem w niej polskie znaki.
Wykorzystana jest jedna dolna linia, więc trzeba było coś wymyśleć, żeby narysować tam ramkę. Pozioma linia to nie problem - składa się ze znaków podkreślenia, a boczne (dla wersji 2018) są zdefiniowane w UDG.
« Ostatnia zmiana: 2018.10.12, 11:03:07 wysłana przez Phonex »

Phonex

  • *****
  • Wiadomości: 1054
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #28 dnia: 2018.10.26, 23:43:03 »
11. Gry s4  

5 gier. 509 bajtów.
Start typu "system crash". Na ekranie jest listing przesunięty w pierwszej linii, w ostatniej linii bzdury: dziwny numer linii, znaki zapytania, niedkokończony rozkaz na samym końcu z migającym znakiem zapytania, na dole komunikat o błędzie. Na dokładkę stos w ekranie.
A jednak wszystko działa ;D
Stos naprawdę jest w ekranie (oczywiście tylko do momentu wybrania), nawet jest specjalnie dobrane opóźnienie w pętli sprawdzającej klawisze, żeby nie migało za szybko. Zabawny komunikat o błędzie jest istniejącym komunikatem z Opusa, łącznie z "numerem" błędu i chyba nawet raz go widziałem naprawdę. Jeżeli chodzi o długość - ledwo się udało zmieścić w 512 bajtów (dwa sektory Opusa) - zoptymalizowany BASIC, zoptymalizowany asembler, a z linii 0 nawet REM wyleciał, więc wpisanie RUN powoduje błąd, musi być RUN 1.
Gry wpisane są nie w DATA, a w REM, wyświetlanie jest przez LIST, w związku z tym ciekawy jest sposób odczytu wybranej gry - z ekranu za pomocą SCREEN$.
To że wyświetlanie jest przez LIST, zamiast pętli z READ/PRINT wcale nie skróciło programu, bo z kolei kolory muszą być ustalone (kodami) dla każdej gry osobno.
Można by oczywiście wyróżnić bardziej okienko, na przykład robiąc w nim jednolite tło, albo zmieniając kolor listingu poza okienkiem na ciemniejszy, ale to właśnie ma tak wyglądać - za pierwszym razem ma być z trudem widoczne ;)
Znowu się nie da zwiększyć liczby gier, bo zmienił by się wygląd i na dodatek listing nie zmieścił by się na ekranie.

Phonex

  • *****
  • Wiadomości: 1054
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #29 dnia: 2018.11.02, 13:00:56 »
12. Gry s6  

4 gry. 725 bajtów
Okienko przewróciło się ;) Ale sterowanie normalne - góra-dół.
Patrzę na procedurę do przekręcania liter i jej nie rozpoznaję. Czyżby znów Supercode?
Trochę długo wyświetlają się nazwy gier - nie da się wyświetlić całej na raz, trzeba to robić po literce. Procedura jest lekko przyspieszona, program przeskakuje do następnej gry po wykryciu spacji w nazwie. Można by zastosować dodatkową tablicę w do której były by kopiowane nazwy, tak żeby wyświetlać cały wiersz naraz, ale start byłby dłuższy o sektor.  Najlepszym rozwiązaniem jest oczywiście zastosowanie asemblera, ale trzeba by pokonać odwieczny problem przekazywania danych z BASICa, co nastąpiło trochę później.
Można zwiększyć ilość gier, nawet bardziej niż w normalnym ustawieniu - wejdzie 12 gier, a przy wyświetlaniu co 1 wiersz nawet 26.
Właściwy adres generatora znaków jest przywracany na końcu, można zatem komuś zrobić psikusa - wpisać linię 400 STOP, czy nawet lepiej 400 BORDER 7: RANDOMIZE USR 4700 - efekt na drugim obrazku :D