forum speccy.pl

ZX Spectrum => SOFTWARE => Wątek zaczęty przez: Phonex w 2018.08.10, 19:10:06

Tytuł: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.08.10, 19:10:06
Już kilka razy obiecywałem, że wyślę moje starty (menu dyskowe). W końcu postanowiłem wysyłać je po jednym co jakiś czas, w miarę poprawiania. Jest ich kilkanaście, mając na początku kilka/kilkanaście dyskietek miałem chyba  ambicję by na każdej był inny ;) Niektóre mogą się spodobać, ale nie wiem czy komuś się przydadzą - na ogół nie są automatyczne. Czyli tytuły trzeba wpisać.
Powstały głównie na na stację OPUS Discovery, więc przewidują 10-znakowe nazwy, powstały dla standardowego napędu (178K), więc jest miejsce tylko na cztery lub pięć tytułów gier. Można to oczywiście zmienić: zmienić długość ładowanej nazwy i ilość tytułów - trzeba by zmienić rozmiary tablic, parametry PLOT, DRAW i pętle. Zmiana długości tablic nie jest konieczna, jest tylko zabiegiem estetycznym. Ja na początku po przejściu z Opusa na FDD3000 dopisywałem "TO 8" - LOAD a$(TO 8 ), ale niepotrzebnie - TOS ignoruje spacje za nazwą. Wpisując do startu prawdziwe nazwy z dyskietki nie spowodujemy błędu, o ile nazwy są bez rozszerzeń. Z rozszerzeniami mogą się nie zmieścić.
W części startów, żeby zmienić rozmiary okienka będzie potrzebna ingerencja w asembler. Jak będzie potrzeba, podam pod jakim adresem dokonać zmian.

Starty nie są automatyczne, bo tak jest szybciej, odczyt z dysku zabiera dodatkowy czas. Poza tym na początku założenie było takie, że raz nagrane na dysk gry zostną tam już na zawsze. Trzecim argumentem jest to, że można wpisać tylko część nazw i w wybranej kolejności.
Miejsca na dysku było mało, stąd kompresor obrazków, potem filecompressor, stąd też optymalizacja startów pod względem długości: liczby są zapisywane jako VAL "n", lub CODE "x", zero jako NOT PI, itd. W Opusie jednostka alokacji=sektor, a sektor ma 256 bajtów. Często udało się zmieścić start w 3 sektorach, a parę razy nawet w dwóch.
Ponieważ od czasów któregoś-tam-Apple jestem fanatykiem okienek, w każdym możliwym miejscu je stosuję :D
Napisałem nawet kiedyś "Windows Designer" - programik pod Beta Basic, który po podaniu rozmiaru i treści sam generował linie BASICa rysujące okienka.
Dlatego każdy mój start to okienko plus coś ;)
Teraz pewnie dopisałbym wybór klawiszami 1-4.

Starty będę prezentował w kolejności w miarę chronologicznej, widać w nich rosnący udział asemblera :D
Obsługa joystickiem Kempston (góra/dół/fire) lub klawiszami kursora (na gumiaku również same "5" i "6" bez shifta) i ENTER/"0". Obsługa joystickiem jest, bo Opus ma wbudowany interfejs Kempston ;)
Wysyłam je w trybie taśmowym, żeby wszyscy mogli obejrzeć bez komunikatu o błędzie. Przed nagraniem na dysk należy dopisać rozszerzenie dyskowe po LOAD (na ogół w przedostatniej linii). Dla FDD3000 ma być: "LOAD *", dla Opusa: "LOAD *1;".
Nagrywać na dysk SAVE *"START" LINE 1 dla FDD3000, lub SAVE *1;"RUN" LINE 1 dla Opusa.
W czasach gdy powstawały mało kto je widział, bo stację dysków miałem tylko ja, potem doszedł Bill Gilbert, następnie Kicia, itd. Oczywiście chwaliłem się stałym bywalcom giełdy ;) Mogło to mieć wpływ na wygląd starta, którego napisał Bzyk (i zdaje się jest dołączony do TOS A.4).
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.08.10, 19:12:17
1. Gry s1

Cztery gry. Długość 752 bajty.
W asemblerze jest tu tylko odczyt klawiszy/joysticka i efekt. Cała reszta, łącznie z przesuwaniem paska, jest w BASICu. Oglądając teraz program w asemblerze zauważyłem, że program sprawdza więcej klawiszy: również Q, A, i M. Możliwe, że był przed tym jakiś inny start (bez efektu), a potem został zastąpiony. Możliwe że nie i od razu chciałem żeby wygląd był bardziej atrakcyjny, godny nowej stacji dysków ;)
Jeżeli chodzi o efekt, to tylko pomysł jest mój: przesuwać w lewo, potem w prawo. Sama procedura przesuwania nie jest moja, pochodzi prawdopodobnie z programu "Supercode" - skroll poziomy o 1 pixel.
Wtedy nic na ten temat nie wiedziałem, teraz prawdopodobnie dorobiłbym synchronizację z ramką. Spróbowałem - wygląda ładniej (drugi plik).
Ponieważ prawie cały jest w BASICu, nie ma problemu z przerobieniem np. na większą ilość gier. Z asemblera wychodzi jak naciśnie się istotny klawisz, może zwrócić trzy wartości: 1-naciśniety ENTER/fire, 0-w górę, 2-w dół. Widać że miałem wtedy szacunek dla programów w Asemblerze, bo potem z tych liczb obliczam przesunięcie d=2*(USR adr-1), zamiast zmienić wartości wyjściowe na 2, 0, 4 i uprościć obliczenie na d=USR adr-2.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: ZX Freeq w 2018.08.11, 19:40:14
Miejsca na dysku było mało, stąd kompresor obrazków, potem filecompressor, stąd też optymalizacja startów pod względem długości:

Normalka. Jak przenosiłem gry z taśm na FDD3000 też tak robiłem. A jak wmontowałem napęd 3.5 cala, nawyk i tak pozostał :)
Dzięki za starty, fajnie jest zobaczyć jak to robili inni ;)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.08.17, 09:22:20
2. Gry s5

Cztery gry. Długość 759 bajtów.
W asemblerze jest tu... nic. Może to był pierwszy start, pomimo nazwy?
Inna jest obsługa: dowolnym klawiszem zmiana na następną grę, ENTER - wybór. Nie ma możliwości cofania, trzeba przelecieć całą listę. Uruchomienie też wyjątkowo jest od linii 100 (SAVE "start" LINE 100), żeby kluczowa dla szybkości działania linia (linia 4) była blisko początku programu.
Zmiana kolorów napisu zrobiona jest jedną instrukcją PRINT z wpisanymi kodami kontrolnymi pozycji zamiast PRINT AT, tylko w celu oszczędności miejsca. Szybkości działania to nie zmienia. Dla wiersza 13 i 14 nie da się tak zrobić, bo powoduje błąd. Za to spowalniają wykonanie te wszystkie VAL "nn", więc w kluczowych miejscach ich nie ma.
Efekt powiększonego PRINTa jest zrobiony dzięki sztuczce - przestawienie adresu wydruku dla instrukcji LPRINT na ekran ;) A że linie na ekranie nie są kolejno - napis wychodzi rozstrzelony w pionie. Wystarczy teraz wykonać to 8 razy, z kolejnymi liniami.
Najłatwiej tu powiększyć ilość gier, wystarczy w ostatniej linii dopisać nowe, nie ma potrzeby zmieniania żadnych innych parametrów.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.08.24, 10:56:02
3. Gry s2

Pięć gier. 699 bajtów.
W końcu pasek wyboru jest w asemblerze!
Działa szybko, jest krótszy, a po wyjściu do BASICa zwraca wybrany numer, bez konieczności dzielenia czy dodawania :) Cały łącznie z efektem jest napisany przeze mnie. I chyba już dowiedziałem się że część pamięci jest wolna, bo procedura od efektu jest przerzucana pod 50000. Albo pisałem pod ZEUSem.
Jak zwykle kod jest w REM, ale tu są dwie linie z kodem: w pierwszej jest odczyt klawiszy/joysticka i wyświetlanie paska, a w drugiej efekt. Dzięki temu łatwo zmienić efekt.
Oczywiście obecność kodu w REM, przez to że są niedrukowalne znaki, powoduje zawieszanie BASICa 128. Ponieważ nie miałem ZX 128K, widzę teraz, że dopiero w jednym z ostatnich startów - przypadkiem - wpadłem na rozwiązanie tego problemu. Można na 128 używać, ale edytować - tylko w BASIC 48.
Jeżeli nawet już wiedziałem o szybkiej i wolnej pamięci, to nie do końca: w linii 10 jest CLEAR 29000, więc obszar stosu znajduje się jednak w wolnej pamięci, a w programie jest kilka CALLi. Można łatwo zobaczyć wpływ tego na szybkość zmieniając na CLEAR 35000. Także na stodwudziestceósemce efekt chodzi szybciej.
Ponieważ nie dało się skrócić poniżej 512 bajtów (2 sektory na Opusie), nie było potrzeby optymalizacji długości. Wszystkie liczby są więc wpisane  normalnie, bez VAL.
Zdaje się, że byłem optymistą jeśli chodzi o powiększanie liczby gier. Tu też efekt obejmuje konkretną liczbę wierszy, dla innej liczby trzeba będzie dobierać opóźnienie, bo nie jest zsynchronizowany z ramką.
Przy okazji przyjrzałem się efektowi i doszedłem do wniosku że przypadkiem wyszedł mi multicolor :D
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.08.31, 12:18:52
4. Gry s3

Cztery gry. Długość 763 bajty.
Ten start jest rozwinięciem pomysłu z "Gry s1". Skoro już jest ładna procedura skrolująca co pixel, to może ją wykorzystać w pełni ;)
Okienko nie jest zamknięte z boków (tak samo jak w starcie s1), bo ramka wyjechałaby razem z tekstem. Jakbym sam pisał procedurę skrolującą, to bym napisał tak, żeby nie wysuwała ramki, ale wtedy jeszcze nie umiałem. Znowu jest procedura z "Supercode". A że to bliźniacza konstrukcja, to też reaguje na klawisze "Q", "A", "M". Inne jest pykanie paska, nie takie głuche jak w start s1, tylko typowo "klawiaturowe". I takie już będzie we wszystkich następnych.
Ciekawa jest konstrukcja w lini 9000, PLOT NOT PI, CODE"@~x/"(i). Indeksowanie zmiennej jest oczywiste, ale podanego na żywca łańcucha? Już zapomniałem że tak można. Musiałem się ucieszyć kiedy to pisałem, bo pewnie dzięki temu zmieściłem się poniżej 768 bajtów ;) A w linii 20 siedem spacji to miejsce po usuniętej przez kopiera Turbo Phantom instrukcji FORMAT "j";SGN PI - włączającej interfejs joysticka w Opusie.
Oczywiście uruchamianie tych wszystkich startów na komputerze (lub emulatorze) bez interfejsu Kempston spowoduje pewnie że pasek/kursor będzie szalał i gry "same się będą wybierały". Chcąc używać w takim przypadku, trzeba by zamienić IN A,(31) na np. LD A,31 (w tym starcie: POKE 23802,62).
Ciężko będzie zwiększyć ilość gier, bo chociaż tak samo jak w start s1, BASIC nie jest problemem, to procedura przesuwa tylko środkową tercję ekranu.

Zmniejszyłem dołączany obrazek, teraz powinien się ruszać bez konieczności powiększania (jak poprzednie).
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: ZbyniuR w 2018.08.31, 13:10:36
Pierwszy raz widzę tekst przewijany od lewej do prawej. :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Tygrys w 2018.08.31, 16:03:55
Fajne te STARTy ;)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2018.08.31, 17:32:29
Fiu, fiu, jakie bajery :)
Z innych tego typu atrakcji widziałem starta z dźwiękami na AY, które towarzyszyły każdemu ruchowi kursora.

A moje starty były bez żadnych tricków, tylko maksymalnie użyteczne. Taki PRL-owski, szary smutek ;)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.09.01, 21:37:28
Nie pisałem scrolli, za to pisałem starty ;)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Maryjan w 2018.09.01, 22:11:09
Pamiętam, ze był taki zestaw procedur w skompilowanych już do kodu wykonawczego.
Min. była tam procedura przesuwania ekranu w prawo.
Podawało się parametry przekazywane z BASIC-a i to działało.
Program zajmował niezbyt dużo i był relokowalny.
Można było go nawet wstawić w lini za REM.

Ja mając FDD 3000 pisałem minimalistyczne starty.
Ot, żeby mieściły się w jednej jednostce alokacji dyskietki.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.09.02, 14:55:52
To i moje się mieszczą w jednej jednostce alokacji FDD3000 :)
Zawsze najważniejsza była mała długość. Tylko z raz się nie udało (Gry s7).
Większość jest nawet poniżej 768 - jednostka alokacji na Opusie jest 4 razy mniejsza.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.09.07, 12:29:30
5. Gry 10

5 gier. 757 bajtów.
Bez efektów specjalnych, za to powiększony.
Sposób na wyświetlanie powiększonych napisów jest bardzo prosty: procedurka w asemblerze kopiuje generator znaków w dwa obszary - w jednym podwojone górne połówki znaków, w drugim podwojone dolne połówki. Teraz w BASICu trzeba zrobić dwa razy PRINT tego samego w kolejnych wierszach, raz z pierwszym generatorem, raz z drugim. Sposób prosty, choć trochę niewygodny ;)
W związku z powiększeniem, liczba zwracana przez asembler zmienia się co 3. Widać że nie miałem pojęcia jak w asemblerze podzielić przez 3 i zepchnąłem ten problem do BASICa ;)
Oszczędzając jeden bajt dzielę wynik nie przez INT PI, a przez PI - interpreter zaokrągla sobie sam. W zasadzie trzeba by przed dzieleniem najpierw odjąć jeden, bo pozycje to: 4, 7, 10, itd, ale zaokrąglanie radzi sobie i z tym.
Tu definitywnie nie da się zwiększyć ilości gier, bo nie ma już miejsca na ekranie, nawet jakby się jakąś sztuczką wykorzystało dwie dolne linie (sztuczką - bo nie da się tam rysować).
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.09.14, 13:57:06
6. Gry 03

8 gier(!) 683 bajty.
Tyle programów weszło, bo część z nich to muzyczki wyciągnięte z gier. Moje ZERO MUSIC miało mieć kiedyś częściowo inną listę, tylko ktoś mnie ubiegł.
To jest start s5 z innym efektem. Nie podobał mi się tamten, bo był za wolny, więc postanowiłem przepisać go w asemblerze. Wyszło nie całkiem to samo, ale byłem zadowolony. Fajny efekt z multicolorem tylko w 63 bajtach :D I to pomimo tego że - jak teraz widzę - w wolnej pamięci, włączone przerwania i w ogóle bez żadnej optymalizacji.
Mam jeszcze jeden start z podobnym efektem, ale tylko dwoma kolorami zamiast tęczy: Gry 06. Nie będę go wysyłał, wystarczy wpisać POKE 23812,79 i POKE 23798,0

Ten efekt jest źle wyświetlany przez ZX Spin v0.666 - zła szybkość. Użyłem ZX Spin 0.7
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.09.21, 10:00:10
7. Gry 01

5 gier. 1007 bajtów.
Tym razem pomniejszone literki w minimalistycznym jednokolorowym okienku.
Ale BASIC jakiś taki krótki,... i nie ma CLS,... Oczywiście już nie pamiętam jak to jest napisane. Wszystko się wyjaśnia, jak się zajrzy do kodu - okienko nie jest rysowane, to jest skompresowany obrazek :o Wygląda na mój Fast Compressor 8) Ale żeby wsadzić skompresowany obrazek do REMa... Miałem kiedyś dużo entuzjazmu. Dodatkowe korzyści to bardzo szybkie wyświetlenie tego starta i możliwość wpisania dłuższych tytułów niż są na dysku.
Narysowany jest chyba Artistem. Po skompresowaniu długość to tylko 682 bajty. Kompresor się spisał, do 1024 zostało w zapasie tylko 17 bajtów.
Do tego standardowy moduł odczytu klawiszy/joysticka i wyświetlania paska, tym razem w kolejnych wierszach, a nie  w co drugim. Więc teoretycznie powinno się zmieścić 21 gier. Ping Pong w linii DATA nie jest wpisany wielkimi literami, bo jak już wspominałem te programy powstały na Opusa, a tam są rozróżniane małe i wielkie litery.
Ciekawostka: program nie działa bez rozkazu RESTORE 999. Nawet samo RESTORE bez argumentu powoduje błąd. Widocznie w tej długiej linii z obrazkiem interpreter widzi rozkaz DATA.
A jak wpisać linię dłuższą niż ekran? Ręcznie nie będzie łatwo. Pewnie w "Supercode" jest odpowiedni programik, ja jednak mam własny: nazywa się REMER, ma 76 bajtów i ładuje się do bufora drukarki. Tworzy na początku programu linię 1 REM #####... o żądanej długości. Obsługa: PRINT USR 23300,długość.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 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.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 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.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: KWF w 2018.10.05, 14:11:34
Fajna animacja tych 3 planów :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 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).
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: ZbyniuR w 2018.10.05, 16:11:52
Ponad 10 gier na stronie?   To chyba formatowanych na DD.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 2018.10.05, 16:18:11
FDD3000 formatuje dyskietki na 720kB, więc gier moze być ponad 10 spokojnie.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2018.10.05, 16:41:39
640KB (16 + 4 + 620).
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 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.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: steev w 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 :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 2018.10.06, 09:46:32
Mozesz udostępnić,  proszę
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 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.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: steev w 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... :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 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.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 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.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 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
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.11.09, 10:10:05
13. Gry s8  

5 gier. 493 bajty.
Jak stodwudziestkaósemka! Czy też mówiąc elegancko - skoordynowany graficznie z menu ZX Spectrum 128 ;)
Standardowy moduł klawiszy/paska, tu w kolorze cyan i rozszerzony o przewijanie w kółko.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: andy w 2018.11.12, 19:26:23
Dobre. Kiedyś to jeszcze były wyścigi na rameczki do loadera :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.11.12, 21:37:45
Eeee tam, wyścigi. Były tylko moje ramki i... kopie moich ramek ::)
Pierwszą zrobiłem do Artista II. Kopie za to były bardziej rozpowszechnione.
A kto wymyślił w loaderach tytuł podwójną czcionką niestety nie pamiętam...
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.11.16, 09:59:22
14. rafamiga 2   

4 gry. 843 bajty
NIE MOJE! Rafamiga po raz drugi.
Rasowe efekty: multicolor plus kapitalny ruchomy efekt na borderze. Zawsze chciałem napisać taką "kurtynę" - równocześnie ekran z borderem - jak tylko zobaczyłem taki efekt w Rocky Horror Show ;) Ale jakoś nigdy się nie zebrałem. Mógłbym zajrzeć do tego starta, ale nie - jeszcze kiedyś spróbuję :P
Gry wpisane są w ostatniej linii po REM. I tu też cały start jest w asemblerze, w BASICu poza LOAD są tylko tytuły i przekazywanie wybranej gry. Efekt jest dopasowany do Spectrum 48, na 128 jest lekko przesunięty. I wreszcie jest start używający przerwań w trybie IM2!
Nie ma obsługi joysticka. Do zatwierdzania wyboru służy tylko "0", ENTER nie działa.
Można wpisać do 11 gier, przed listą jest ilość, można wpisywać znaki które są po cyfrach.
Znowu emulator ZX Spin 0.666 nie spisał się - zła szybkość, musiałem użyć ZX Spin 0.7, którego nie lubię, bo zawiesza się (np. po zapisaniu animowanego gifa).
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.11.23, 10:40:30
15. Gry s12  

5 gier. 762 bajty.
Mój najfajniejszy start!
Pierwszą atrakcją jest pasek z biegnącymi kolorami. I nie spodziewamy się nic więcej. Ale jest coś więcej, o czym można się przekonać jak się chce go przesunąć. Niespodzianka! Zamiast przesuwać pasek w okienku - program przesuwa całe okienko :D
To chyba moja pierwsza poważniejsza procedura graficzna w asemblerze! I również pierwsze użycie przerwań - na biegnące kolory paska. Przerwania są użyte tak, jak to się wtedy robiło: z tablicą w ROM, co ponoć grozi złym działaniem na Spectrum 128 i/lub z interfejsami. Ale na emulatorze działa OK. Wyświetlanie nazw i ramka uparcie wciąż są w BASICu. W przypadku ramki można wyciągnąć argument, że mniej miejsca zajmuje rysowanie z BASICa ;)
Niedrukowalne znaki w pierwszej linii są zneutralizowane wpisaniem kodu ENTER za napisem, i właśnie ten ENTER powoduje, że procedura wyszukiwania linii DATA gubi się i konieczne jest zastosowanie RESTORE nr_linii. Trochę to pomaga na ZX 128, ale niewiele - i tak edytować nie można. Na dodatek kosztuje to dodatkowe bajty. Ale wygląda porządniej, więc warto. A DATA można umieścić w lini 255 - co można zapisać jako PEEK PI - więc tylko 4 bajty.
Nie da się zwiększyć ilości gier, bo okienko śmiga po całym ekranie. No chyba że zagęszczając - wtedy wejdzie 10.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: KWF w 2018.11.23, 12:01:58
Bardzo ladne i z pomyslem.  :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.11.30, 11:46:45
16. GRY ZERO

4 gry. 679 bajty.
Start oparty na demie ZERO MUSIC, w zasadzie na samym loaderze. 
Ramka z biegnącymi kolorami plus fonty 3D z których byłem dumny - sprawiające wrażenie wypukłości 8) Są konstruowane "w biegu" ze standardowych, procedura wyświetlania ma tylko kilka bajtów więcej niż dla zwykłych pogrubionych 2x1! Użyte były tylko w taśmowym loaderze do ZERO MUSIC i w loaderze dyskowym (na Opusa), który odliczał na ekranie pozostałe do załadowania sektory :D Niestety ta wersja odjechała razem z Opusem...
Krok dalej na drodze przenoszenia do asemblera - nie tylko podwójny PRINT jest w końcu całkowicie w asemblerze, a także początkowe ustalanie kolorów. Tym razem start nie używa przerwań, a też działa płynnie.
A na liście gry "podręczne", które przetrwały na dyskietce 3", czyli gry w które ostatnio grywałem, lub słuchałem muzyki (Ramparts).
Można zwiększać ilość gier, ale trzeba to robić co 2, żeby ilość kwadracików obwodu była podzielna przez 8, czyli praktycznie +2 lub +4. Przy +4 trzeba będzie kombinować bo, choć tego nie widać, jednak jest rysowana ramka, a wyjdzie na dwie dolne linie.
Maksymalnie (co 1 wiersz) wejdzie 16 gier.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.12.15, 12:29:35
17. Gry 09 

5 gier. 759 bajtów.
A dlaczego efekty mają być ograniczone tylko do okienka? Tym razem kolorowy efekt na skalę globalną ;) I nowe fonty.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.12.22, 12:11:10
18. Gry 16 

5 gier. 713 bajtów.
Efekt na cały ekran, tym razem czarno-biały. I nie jest tylko na atrybutach!
Dużo ruchu, nazwałem go "wiatr", chociaż pod koniec bardziej przypomina zamieć ;) Na obrazku tylko 10 sekund, całość trwa ponad półtorej minuty.
Udało mi się też zrobić kursywę "w biegu" ze standardowych znaków. Wygląda nieźle, co prawda np. ogonek "y" nie łączy się z resztą, ale komu to przeszkadza?
Nie wiadomo czemu są te same tytuły co w poprzednim. Może nigdy nie był użyty? Z drugiej strony wygląd efektu zależy też od zawartości okienka, więc możliwe że z tym zestawem wygląda najciekawiej.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Sir David w 2018.12.22, 18:50:06
Robi się coraz ciekawiej, to jest już prawie jak cracktro :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: KWF w 2018.12.22, 19:25:36
A można prosić o zielone literki w tle z efektem jak z Matrixa? ;)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.12.23, 15:07:02
Dzięki. Czyli to dobra pora, żeby zakończyć temat? Bo tuzy Hollywood mówią, żeby kończyć będąc na fali ;)
A tak na serio - nie ma więcej. To jest ostatni start z efektem. Mam jeszcze kilka zwyczajnych...
A jeśli chodzi o "wiatr" - efekt jest baaardzo prosty. Jak już się wygadałem w rozmowie na speccy.party część bajerów powstaje przypadkiem, zaczynając jako coś innego. Z drugiej strony - jeżeli z fałszywego założenia wynika prawdziwa teza to implikacja jest prawdziwa, więc jeżeli z kiepskiego pomysłu wychodzi świetny program to jestem mistrzem! 8)

@Klaud literki z Matrixa już napisali http://www.pouet.net/prod.php?which=60853 (http://www.pouet.net/prod.php?which=60853)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 2018.12.23, 15:14:30
A może te zwyczajne będą ciekawsze, a chociaż bardziej funkcjonalne. Tak naprawdę to liczyłem na taki start co sam odczyta listę plików z dyskietki  i wyświetli na ekranie.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2018.12.23, 15:20:12
Niby tak by było najfajniej, ale ponieważ jedna gra to zazwyczaj* kilka plików, to tedy się niezły śmietnik robi na ekranie...
Oczywiście można zrobić filtrowanie, by wyświetlały się tylko programy w basicu. Z reguły po prostu CAT*"+" wystarcza do tego celu.

* - to nie do końca prawda, bo cała gra może być w jednym pliku. I nie musi to być zrzut całych 48KB pamięci, ba, może być część w basicu i część binarna, nadal w jednym pliku. Już nie pamiętam, kto to wymyślił - chyba Wojtek Jabłoński. Muszę przy okazji zajrzeć do takiego pliku i zobaczyć, jak to jest zrobione.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 2018.12.23, 15:45:02
Wystarczyłoby atrybutami ukryc pliki które nie muszą być wyświetlane i zrobić porządek na dyskietce.
Jeden klawisz do ukrywania plików i po kłopocie.

Brakuje takiego Norton Commandera, który by wyświetlil w dwóch kolumnach zawartość dyskietek w dwóch napędach. Z opcjami kopiowania, ukrywania, tworzenia katalogów itp.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.12.23, 15:46:18
A może te zwyczajne będą ciekawsze, a chociaż bardziej funkcjonalne. Tak naprawdę to liczyłem na taki start co sam odczyta listę plików z dyskietki  i wyświetli na ekranie.
Tak, są bardziej funkcjonalne. Muszę tylko je rozszyfrować i/lub odnaleźć źródła.
Automatyczny też jest.

Niby tak by było najfajniej, ale ponieważ jedna gra to zazwyczaj* kilka plików, to tedy się niezły śmietnik robi na ekranie...
Oczywiście można zrobić filtrowanie, by wyświetlały się tylko programy w basicu. Z reguły po prostu CAT*"+" wystarcza do tego celu.
Tak właśnie robi. Przyjąłem system, że loader nie ma rozszerzenia.

... cała gra może być w jednym pliku. I nie musi to być zrzut całych 48KB pamięci, ba, może być część w basicu i część binarna, nadal w jednym pliku. Już nie pamiętam, kto to wymyślił - chyba Wojtek Jabłoński. Muszę przy okazji zajrzeć do takiego pliku i zobaczyć, jak to jest zrobione.
Do diabła! No i po moim wspaniałym pomyśle >:( Mówiłem o tym na speccy_party z Dalthonem i Sir Davidem.
Masz gdzieś jakiś przykład?

Wróć! Chodzi o dyskietkę? Uff, mój pomysł dotyczy taśmy :D
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: ZbyniuR w 2018.12.23, 16:12:04
@trojacek - nie wiem jak w ZX ale w CPC takie łączenie binarki w pliku Basica robi się mniej więcej tak:
Ostatnia linia ma tylko jeden token REM, dzięki czemu reszta linii jest ignorowana i zawiera binarkę.
Ostatni nr linii za pomocą POKE robi się zero, dzięki czemu ta linia nie będzie wyświetlana przez LIST.
Długość linii to 2 bajty, ale edytor nie pozwala na dłuższe niż 255, znowu przez POKE wpisujesz tyle ile potrzeba, dzięki temu ta binarka zostanie zapisana przez SAVE w jednym pliku jako Basic, oraz wczytywana razem z Basiciem. :)

@tdu - tyle dobra wszelakiego powstaje na Spectrumy, i naprawdę nie ma czegoś takiego jak NC?
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 2018.12.23, 16:22:05
Pan Norton do Spectruma się nie przyłożył.

A do CPC jest ?
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2018.12.23, 16:29:38
@trojacek - nie wiem jak w ZX ale w CPC takie łączenie binarki w pliku Basica robi się mniej więcej tak:

Na Spectrum można zrobić podobnie, ale to nie ten przypadek. Załóżmy, że jest gra, która ma kilka bloków ładowanych  różne obszary pamięci. Chodzi o to, by się tam właśnie załadowały, a plik finalny nie był niepotrzebnie duży.
Tu trick polega na tym (o ile dobrze pamiętam), że finalny plik jest fałszywym plikiem basicowym, tzn. ładuje się jedna linia, a reszta jest niepotrzebnym "overheadem" z punktu widzenia basica. Ta jedna linijka zawiera kod, który otwiera ten sam plik w trybie odczytu danych i ładuje te dane (już z pominięciem "wstępu" w basicu) pod odpowiednie adresy pamięci.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: KWF w 2018.12.23, 16:31:41
http://www.zx-speccy.ru/index.php?page=1&str=13&b=3
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2018.12.23, 16:33:00
No ale te ruskie cuda są pod TR-DOS. Przerobi ktoś na FDD3000, albo divIDE?
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.12.23, 16:41:32
A na ZX Shareware nie było czegoś takiego? Coś pamiętam w 64 znakach...
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2018.12.23, 16:47:15
Było, było. Ale nikomu się nie podobało.
W 51 znakach, tak w ogóle.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.12.23, 17:00:14
Bo było powolne?
Trzeba zoptymalizować i będzie :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2018.12.23, 17:06:44
Wyświetlanie bazowało na znanej procedurze "42/51".
Ale ogólnie obsługa była mocno uproszczona.
Robię teraz coś podobnego dla divXXX, ale w rozdzielczości timexowej.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Dr Piotr w 2018.12.24, 01:01:20
@trojacek - nie wiem jak w ZX ale w CPC takie łączenie binarki w pliku Basica robi się mniej więcej tak:

Na Spectrum można zrobić podobnie, ale to nie ten przypadek. Załóżmy, że jest gra, która ma kilka bloków ładowanych  różne obszary pamięci. Chodzi o to, by się tam właśnie załadowały, a plik finalny nie był niepotrzebnie duży.
Tu trick polega na tym (o ile dobrze pamiętam), że finalny plik jest fałszywym plikiem basicowym, tzn. ładuje się jedna linia, a reszta jest niepotrzebnym "overheadem" z punktu widzenia basica. Ta jedna linijka zawiera kod, który otwiera ten sam plik w trybie odczytu danych i ładuje te dane (już z pominięciem "wstępu" w basicu) pod odpowiednie adresy pamięci.

W amstradzie w przypadku tasmy mozna tez tak zmodyfikowac naglowek kazdego 2kb bloku by system ladowal go w zupelnie inne miejsce niz powinien :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2018.12.30, 17:03:58
19. Turbo menu  

19 tytułów max., ma wtedy 1017 bajtów (czyli "na styk" 1K, uwzględniając nagłówek FDD3000).
Automatyczny rozmiar. W końcu cały start w asemblerze, łącznie z nazwami i ramką :D
Nazwę dysku, tytuły oraz ich ilość wpisuje się w ostatniej linii (musi być ostatnia, numer nieistotny). Najpierw jest ilość programów (2 cyfry), potem nazwa dysku na całą szerokość okienka (czyli w tym przypadku 12 znaków), potem nazwy programów na szerokość okienka -2, czyli w tym przypadku 10 znaków, jedna za drugą bez żadnych separatorów.

Na początku programu jest pole danych, gdzie można dostosować starta. Od 23778 po kolei są Y, X, --, szer, kol, Nkol, st, auto.
Najpierw współrzędne lewego górnego rogu: w pionie i w poziomie, potem nieistotne, potem szerokość okienka - używam 12, choć wystarczyłoby 10, ale nie lubię takich wąskich. Można wpisać 14 jeśli ktoś używa nazw z rozszerzeniem. Potem kolor (atrybuty) okienka, atrybuty nagłówka, numer wstępnie wybranego programu (licząc od 0), i auto czyli czy okienko jest automatycznie centrowane w pionie (0-nie, 1-tak, 128-na dole). Jeżeli wpiszemy 0 - początek jest w Y.
Pasek wyboru jest teraz zrobiony atrybutami, a nie PRINTem, jest więc szybszy, gdyby był za szybki można zmienić zawartość 23943. Także ramka jest szybsza, dzięki temu że nie jest rysowana DRAW.

Ponieważ powstał "do użytku wewnętrznego" nie ma chyba żadnego sprawdzania poprawności danych. Po wpisaniu ilości >19 lub <01 program pokazuje język. Złą szerokość dzielnie próbuje wyświetlić z różnym skutkiem.
Pustą nazwę w połowie wpisałem żeby uporządkować okienko, jak jest dużo tytułów to tak łatwiej zlokalizować właściwy.
Kolejna zaleta szerszego okienka - ostatnie dwie nazwy są w całości, choć na dysku są krótsze: LOAD *a$ (TO 8 ).
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2019.01.14, 11:46:30
20. Auto menu

19 tytułów max., 1016 bajtów (czyli 1K bez 1 bajta, uwzględniając nagłówek FDD3000).
Obsługiwane są tylko dyski 140K.
Tytuły są wyświetlane bez sortowania, w kolejności w jakiej są zapisane w katalogu - czyli w kolejności nagrywania jeśli nic nie było kasowane. Jeśli jednak były zmiany na dysku, pliki były kasowane i nagrywane nowe - to kolejność będzie w zasadzie przypadkowa i niezależna od położenia plików na dysku. Wyświetlane są nazwy bez rozszerzeń (z wyjątkiem "START"), oraz z rozszerzeniem BAS - pewnie chciałem żeby program był uniwersalny, bo nigdy nie używałem takiego rozszerzenia.
Skanowany jest napęd podany w tablicy parametrów (0=A, 1=B. itd) nie sprawdza z którego się załadował. Tak jak w poprzednim wchodzi 19 tytułów. Jak będzie więcej - wyświetli błąd "Out of screen". Co zrobić żeby móc korzystać mimo tego? Na przykład dopisać do części programów rozszerzenia różne od BAS. Taka sytuacja w przypadku gier będzie niemożliwa (obsługiwane są tylko dyski 140K), w przypadku użytków jest możliwa, choć w sumie Auto menu było pisane tylko z myślą o grach. Do użytków było Turbo menu.

Parametry od 23787: Y, X, --, drive, kol, Nkol, --, auto
Współrzędne lewego górnego rogu: w pionie i w poziomie, nieistotne, numer napędu (0-3),  kolor (atrybuty) okienka, atrybuty nagłówka, nieistotne, auto czyli czy okienko jest automatycznie centrowane w pionie (0-nie, 1-tak, 128-na dole). Jeżeli wpiszemy 0 - początek jest w Y.
Gdyby pasek był za szybki - można zmienić zawartość 24209.

Znowu jest sprawdzany Kempston (w Turbo menu nie jest - był głównie do użytków).
Dobrym pomysłem jest nagranie Auto menu przed nagraniem gier - będzie na początku, czyli szybciej się załaduje i unikniemy jazgotania głowicą tam i z powrotem. Jeżeli już coś jest nagrane, to po zidentyfikowaniu który plik jest na początku (na tym dysku: B_HEAD) najprościej zrobić tak:
LET *"b_head" TO "b_head.old": REM zmieniamy nazwę tego co jest na początku
MOVE *"b_head.old" TO "b_head": REM tworzymy kopię loadera
ERASE *"b_head.old": REM kasujemy to co na początku
i teraz nagrać START. Zapisze się na początku, bo zawsze plik zapisywany jest w pierwszym wolnym obszarze. Zmieści się (obojętnie ile ma "B_HEAD") bo ma długość 1K, a 1K to jednostka alokacji, czyli najkrótszy zajmowany na dysku obszar.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: steev w 2019.01.14, 14:16:14
Niby tak by było najfajniej, ale ponieważ jedna gra to zazwyczaj* kilka plików, to tedy się niezły śmietnik robi na ekranie...
Oczywiście można zrobić filtrowanie, by wyświetlały się tylko programy w basicu. Z reguły po prostu CAT*"+" wystarcza do tego celu.
Ja po prostu na dyskach z grami ukrywałem binarki... :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: steev w 2019.01.26, 00:54:25
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).
Prosz.
Odczytuje zawartość katalogu dyskietki i wyświetla jedynie programy w basicu.
Teoretycznie do 128 pozycji, ale nie testowałem (i stawiam że się spektakularnie wywali powyżej 24 pozycji)
Pisane na kolanie (zero optymalizacji i zero finezji, bo nie o to chodziło)
Gdyby komuś z FDD się nudziło, chętnie bym się dowiedział jak to działa (pod względem prędkości) na rzeczywistym sprzęcie - bo na emulatorze oczywiście śmiga.
(i przepraszam za ponownie wcięcie się w wątek :) )
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2019.01.26, 10:32:24
Spoko.
Ja nie miałem stacji DD, nic na takie nie pisałem. Trochę by mi zajęło przećwiczenie jak czytać, jak sprawdzać SD/DD, itd.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 2019.01.26, 14:43:41
Nagrałem ten obraz na dyskietkę, ale chyba coś pomyliłeś.
Jest tam start, napisany całkowicie w Basicu. długość 1702.
W każdym razie nie to co na obrazku powyżej.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: steev w 2019.01.26, 22:56:17
Mea culpa, mea culpa, mea maxima culpa (że zacytuję Pet Shop Boys... )
Teraz załącznik powinien być już poprawny...
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 2019.01.27, 19:50:25
Nagrałem ponownie na dyskietkę, tym razem już właściwą wersję.
Działa całkiem fajnie, wolno rysuje ten niebieski pasek, potem już jest ok.
Zaskakujące jest że przesuwa się lista a pasek stoi w miejscu.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2019.01.27, 21:48:40
Odciąłem cały hijacking wątku (ten o formatach dyskietek TOS) i przeniosłem tutaj (https://www.speccy.pl/forum/index.php?topic=4842).
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: steev w 2019.01.28, 00:59:27
Nagrałem ponownie na dyskietkę, tym razem już właściwą wersję.
Działa całkiem fajnie, wolno rysuje ten niebieski pasek, potem już jest ok.
Tego się właśnie obawiałem (program sprawdza wtedy czy plik jest programem w basicu czy czymś innym)

Zaskakujące jest że przesuwa się lista a pasek stoi w miejscu.
Tak jakoś wyszło ;)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Pyza^Illusion w 2019.10.15, 21:29:13
A miał ktoś takiego starta, który miał opcję przerzucenia całej pamięci (niestety tylko 48k) do pamięci FDD3000? Robił po prostu takiego snapshota. Jak podczas pisania coś się wywaliło, to można było z pamięci stacji przywrócić ostatnio zapisany stan. Trochę to trwało, ale bywało przydatne :)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2019.10.15, 21:44:22
To wcale nie musiało być w starcie. W którymś Bajtku był artykuł pod tytułem "Czary-mary, EXX" - to był programik, który instalował się rezydentnie i robił tę sztuczkę właśnie.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Phonex w 2019.10.15, 21:59:26
Też pomyślałem że raczej nie w starcie, bo przecież start ładuje się po resecie - czyli w pamięci nic nie ma.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: Pyza^Illusion w 2019.10.15, 22:14:57
Ja miałem takiego właśnie STARTa (od Willa), który wyświetlał na liście programów napis "HardDisk" (jak zwał, tak zwał) i po kliknięciu robił się snapshot w stacji. Po nieoczekiwanym resecie, START się ładował automatycznie i wybierając drugi dodany napis (nie pamiętam co tam było), można było przywrócić zawartość kompa. Dla kogoś, kto miał otwarty np. asembler ze źródłówką i powgrywane do pamięci różne binarki, grafiki itp. to ogromne ułatwienie. Zaletą było to, że nie trzeba było nic wgrywać, wklepywać itd. Owszem, cały START miał chyba niecałe 4kB (wraz z innymi bajerami), ale przy dyskietkach 640k i tak jednostka alokacji miała 4kB więc żadna strata.
Może już niedługo się do tego dokopię, to wrzucę.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2019.10.15, 22:46:36
Oto, co znalazłem.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: ZbyniuR w 2019.10.15, 23:40:49
W którym to Bajtku?
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2019.10.16, 00:23:03
Nr 2/1992, strona 21.
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2020.05.18, 23:01:11
Małe archeo ;)

Kanał #0. Automatycznie i zawsze otwarty.

A jak  tego używać? Jak zrobię LIST*#0, to wyświetla się tylko jedna linijka z jakimiś cudami...
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: steev w 2020.05.19, 00:07:30
Wyświetla się opis kanału - 'plik' 4k, rekord 32B, wskaźnik na pozycji jakiejśtam.

Musisz przewinąć kanał na początek a potem dopiero  czytać rekord.
Wygodniej korzystać z asemblera i procedur TOS, bo można wybrać rekord do czytania.
Spróbuj tak:
list *#0
restore *#0
list *#0
(zauważ zmianę wskaźnika rekordu na 1)
input *#0;r$
print r$
(r$ zawiera pierwszy rekord katalogu, czyli nazwę dyskietki)
Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: trojacek w 2020.05.19, 00:58:40
OK, dzięki :)
Znalazłem też przykład, który był w... Bajtku 11/1992:

Tytuł: Odp: Moje STARTy / menu dyskowe.
Wiadomość wysłana przez: tdu w 2023.06.26, 16:21:38
Program jest rozwinięciem pomysłu, który pojawił się w tym wątku.
Wydaje się że jest na tyle dopracowany żę można go używać bez problemowo.

START dla FDD3000 który tworze od prawie dwóch miesięcy,
powinien on się znaleźć na każdej dyskietce działającej z TOS

Program czyta katalog dyskietki, sortuje go i wyświetla
w porcjach po 15 plików (klawisze 1,q,a,z)

Wczytanie programów (tylko basic), klawisz ENTER.

Ponadto w menu1 ogólne
I info o dostepnych dyskach
S nagranie programu START
F format na 140kB
G format na 620kB
K katalog systemowy
L wczytanie z tasmy
J kopia całej zawartości dyskietki

menu2 plikowe
K kopia pliku
U usuwanie pliku
Z zmiana nazwy pliku
I info o pliku

Program mieści się w 4kB czyli jednostce alokacji dla dysków 620kB

Program nie obsługuje katalogów i atrybutów, przynajmniej w tej wersji,
nie wiem czy warto to dorabiać bo mało kto i tak z tego korzysta,
a wydłuży to czas odczytu dyskietki, co i teraz jest na granicy akceptacji.
Poza tym program zajmie już kolejne 4kB.

Czas odczytu dyskietki można skrócić przez edycje linii 2 programu
zmieniając LET z=64, na wartość mniejszą np.32, zleży to od ilości
plików na dyskietce, w typowych zastosowaniach 140kB powinno wystarczyć
z=20, ale dla ekstremistów może być pełne 128, tyle maksymalnie plikow
może by na dyskietce.

Nie gwarantuje że program jest bez wad, więc liczę na Wasze uwagi,
powstanie wtedy kolejna poprawiona wersja.

Podziękowania dla Matofesi za wykonanie kodu sortującego tablicę z nazwami plików.