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

Phonex

  • *****
  • Wiadomości: 1259
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #45 dnia: 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
« Ostatnia zmiana: 2018.12.23, 15:54:00 wysłana przez Phonex »

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #46 dnia: 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?
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #47 dnia: 2018.12.23, 16:22:05 »
Pan Norton do Spectruma się nie przyłożył.

A do CPC jest ?
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: 6828
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #48 dnia: 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.

KWF

  • *****
  • Wiadomości: 6815
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

trojacek

  • *****
  • Wiadomości: 6828
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #50 dnia: 2018.12.23, 16:33:00 »
No ale te ruskie cuda są pod TR-DOS. Przerobi ktoś na FDD3000, albo divIDE?

Phonex

  • *****
  • Wiadomości: 1259
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #51 dnia: 2018.12.23, 16:41:32 »
A na ZX Shareware nie było czegoś takiego? Coś pamiętam w 64 znakach...

trojacek

  • *****
  • Wiadomości: 6828
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #52 dnia: 2018.12.23, 16:47:15 »
Było, było. Ale nikomu się nie podobało.
W 51 znakach, tak w ogóle.

Phonex

  • *****
  • Wiadomości: 1259
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #53 dnia: 2018.12.23, 17:00:14 »
Bo było powolne?
Trzeba zoptymalizować i będzie :)

trojacek

  • *****
  • Wiadomości: 6828
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #54 dnia: 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.

Dr Piotr

  • ***
  • Wiadomości: 196
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #55 dnia: 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 :)

Phonex

  • *****
  • Wiadomości: 1259
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #56 dnia: 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 ).

Phonex

  • *****
  • Wiadomości: 1259
  • Miejsce pobytu:
    Warszawa
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #57 dnia: 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.

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #58 dnia: 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... :)
Machines should work. People should think.

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Moje STARTy / menu dyskowe.
« Odpowiedź #59 dnia: 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 :) )
Machines should work. People should think.