forum speccy.pl

ZX Spectrum => SOFTWARE => Wątek zaczęty przez: ZbyniuR w 2013.09.10, 07:24:01

Tytuł: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: ZbyniuR w 2013.09.10, 07:24:01
Jakie są różnice między Basiciem w starszych Spectrumach a tym w nowszych. Wiem że w tym drugim edytor jest pełnoekranowy i komendy się wklepuje po literce, ale co jeszcze?  O ile się wydłużyła lista rozkazów?  Czy w +3 jest ona jeszcze dłuższa niż w 128k? Czy różnią się prędkością działania? Którą wersję wolicie i częściej z niej korzystacie? Czy bardzo się trzeba namęczyć by w starym uzyskać to samo co w nowszym? :)
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Gryzor w 2013.09.10, 10:02:09
Roznice sa niewielkie, w zasadzie dotycza obslugi ramdysku w 128k i AY (komenda play), plus dysk w +3.
128K ma przeciez dalej ROM z 48K.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: RafalM w 2013.09.10, 10:11:12
Tak jak zostało powiedziane - ramdysk i obsługa AY, zresztą nie pozwalająca na zbyt wiele, trochę jak obsługa głośniczka komendą BEEP.

Jest chyba też jakieś automatyczne zmienianie numerów linii, jakiś kalkulator.

+3 ma komendy do obsługi stacji dyskietek.

W edytorze 128 kB nie można chyba pokolorować sobie treści programu tak jak w 28 kB

Ale tak ogólnie to jakieś 95% jest tak samo.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Phonex w 2013.09.10, 10:31:25
Edytor w 128 moim zdaniem jest fatalny w prorównaniu z 48! Mimo że pełnoekranowy.
Głuche dźwięki klawiszy, beznadziejny zbędny bip po wciśnięciu ENTER, ale najgorszy jest auto-listing, czyli wyświetlanie listingu po zmianach. 48 najpierw czyścił ekran, a potem wyświetlał, a 128 wyświetla nie czyszcząc, co robi bałagan, bo robi to powoli, więc znaki zmieniają się przed oczami, a ewentualne puste linie czyści wyświetlając spacje i robi to taaaaak poooowooooooli, że aż wstyd. I przy dłuższych programach potrafi połknąć wpisywane znaki, bo piszesz, a on nie skończył jeszcze wyświetlać.
Nie cierpię tego edytora. Zresztą nie tylko ja.
A przez to że nie można sobie pokolorować treści programu (znakami kontrolnymi) - przy próbie wyświetlenia loadera, który ma kod programu wpisany w REM (częste w grach) potafi się zawiesić lub nawet zresetować.

Czy bardzo się trzeba namęczyć by w starym uzyskać to samo co w nowszym? :)
Ja muszę się namęczyć, żeby w nowym uzyskać to samo >:(
W 48 piszę dziesięć razy szybciej. Po pierwsze lepiej działa, po drugie komendy są jednym klawiszem (a po trzecie przyzwyczaiłem się ;))
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: RafalM w 2013.09.10, 14:38:02
Ano, różnica jest też taka że na 48kB ktoś coś robił i nadal robi w Basicu a na 128kB praktycznie nikt ;)

Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: ZbyniuR w 2013.09.10, 15:55:22
Jejku, zupełnie się nie spodziewałem takich odpowiedzi. I pierwsze słyszę o kolorowaniu lisingów, chciałbym to zobaczyć na jakimś screenie. Czytałem o tym gubieniu literek w testach pierwszego +2, a czy w tyn nowszych tego nie poprawili?
Tylko ramdysk i AY? - Hmm i to zajmuje aż 32KB dodatkowego miejsca? No bo 16KB to standardowy ROM w 48k, i jest w nim 80 parę komend, również 16KB zajmuje +3DOS (podobnie jak AMSDOS w CPC). A kolejne 32KB to tylko AY i ramdysk? No przecież program kalkulatora tyle nie zajmuje.

Do CPC jest w 32KB ROM SYMBOS system okienkowy wzorowany na Win95 z multitaskingiem okienkami ikonkami menusami i sterownikiem do twardych dysków. http://cpcwiki.eu/imgs/0/06/Symboscpc.gif
A bez takich cudów komendy do Ramdysku się doczytuje, bo nie ma ich w ROM i zajmują zależnie od wersji od pół do 2KB. Kompilatory do CPC w kilkunastu KB dają po kilkadziesiąt nowych komend, do tych ok 160 standardowych. Dlatego trudno mi uwierzyć że nie ma w tym nowszym Basicu ZX128 nic więcej. Czy ktoś wie co się w nich tak naprawdę mieści??
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: RafalM w 2013.09.10, 16:24:23
Cytuj
Hmm i to zajmuje aż 32KB dodatkowego miejsca?

A skąd wziąłeś te 32KB czyli w sumie 48kB?

Z tego co rozumiem Basic 128kB zajmuje 16 kB, tak samo jak Basic 48kB. Mieści się w jednej stronicy i można te wersje między sobą przełączać.


http://www.worldofspectrum.org/faq/reference/128kreference.htm
The memory map of these computers is:

0xffff +--------+--------+--------+--------+--------+--------+--------+--------+
       | Bank 0 | Bank 1 | Bank 2 | Bank 3 | Bank 4 | Bank 5 | Bank 6 | Bank 7 |
       |        |        |(also at|        |        |(also at|        |        |
       |        |        | 0x8000)|        |        | 0x4000)|        |        |
       |        |        |        |        |        | screen |        | screen |
0xc000 +--------+--------+--------+--------+--------+--------+--------+--------+
       | Bank 2 |        Any one of these pages may be switched in.
       |        |
       |        |
       |        |
0x8000 +--------+
       | Bank 5 |
       |        |
       |        |
       | screen |
0x4000 +--------+--------+
       | ROM 0  | ROM 1  | Either ROM may be switched in.
       |        |        |
       |        |        |
       |        |        |
0x0000 +--------+--------+
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Phonex w 2013.09.10, 16:47:56
I pierwsze słyszę o kolorowaniu lisingów, chciałbym to zobaczyć na jakimś screenie.

Listing loadera z gry.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: trojacek w 2013.09.10, 17:20:25
Cytuj
Hmm i to zajmuje aż 32KB dodatkowego miejsca?

A skąd wziąłeś te 32KB czyli w sumie 48kB?

Z tego co rozumiem Basic 128kB zajmuje 16 kB, tak samo jak Basic 48kB. Mieści się w jednej stronicy i można te wersje między sobą przełączać.


http://www.worldofspectrum.org/faq/reference/128kreference.htm

Na tej samej stornie, ale niżej, masz:

Cytuj
Memory

The basic principle of paging on the +2A and +3 is the same as for the 128K/+2. However, the +2A and +3 have four ROMs rather than two, and certain extra memory configurations.

Port 0x7ffd behaves in the almost exactly the same way as on the 128K/+2, with two exceptions:

    Bit 4 is now the low bit of the ROM selection.
    The partial decoding used is now slightly different: the hardware will respond only to those port addresses with bit 1 reset, bit 14 set and bit 15 reset (as opposed to just bits 1 and 15 reset on the 128K/+2).

The extra paging features of the +2A/+3 are controlled by port 0x1ffd (again, partial decoding applies here: the hardware will respond to all port addresses with bit 1 reset, bit 12 set and bits 13, 14 and 15 reset). This port is also write-only, and its last value should be saved at 0x5b67 (23399).

Port 0x1ffd responds as follows:

  Bit 0: Paging mode. 0=normal, 1=special
  Bit 1: In normal mode, ignored.
  Bit 2: In normal mode, high bit of ROM selection. The four ROMs are:
          ROM 0: 128k editor, menu system and self-test program
          ROM 1: 128k syntax checker
          ROM 2: +3DOS
          ROM 3: 48 BASIC
  Bit 3: Disk motor; 1=on, 0=off
  Bit 4: Printer port strobe.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: RafalM w 2013.09.10, 19:36:21
Cytuj
Na tej samej stornie, ale niżej, masz:

Ale tu mówimy o jeszcze innym modelu:    +2A/+3. Rozumiem że oryginalne porównanie dotyczyło gumiaka i pierwszego 128kB.

Niemniej rozumiem z tego, choć są aż 4 ROMY to naraz jest włączony zawsze tylko jeden.

Nie wiem niestety jak to działa. Czy jak coś piszę w Basicu 128 kB to przy pracy z edytorem ustawiony jest jeden ROM a jak uruchamiam program to się przełącza na inny???
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: ZbyniuR w 2013.09.10, 21:29:02
trojacek - sam sobie odpowiedziałeś w tym angielskim cytacie. :)

          ROM 0: 128k editor, menu system and self-test program
          ROM 1: 128k syntax checker
          ROM 2: +3DOS
          ROM 3: 48 BASIC

Z tego co wiem to wersja 128k i wczesne +2 miały po 32KB ROM, a te późniejsze +2 i +3 po 64KB. Rozumiem że stare 16KB to Basic i jakiś Kernel z procedurami do obsługi tych bebeszków które ZX ma. A +3DOS rozumiem że jest odpowiednikiem AMSDOS-a z CPC. Ale pozostałe dwa ROMy zastanawiają mnie, co tak właściwie w nich jest? Skoro słyszę opinie że ich obecność bardziej przeszkadza niż pomaga, a z dodatkowych komend za użyteczną wymienia się tylko PLAY.

http://www.fruitcake.plus.com/Sinclair/Spectrum128/ExtendedBASIC/Spectrum128ExtendedBASIC3.htm
Znalazłem coś takiego, podobno wystarczy wpisać komendę COMMANDS by wyświetlił spis nowych, co ciekawe nie ma wśród nich PLAY. Więc może to nie jest pełna lista. A że mowa tu o 128k to może w +3 są jeszcze inne. Ech łatwiej znaleźć w necie spis komend do Timexa 2068 niż do nowszych Spectrumów. ;)
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: RafalM w 2013.09.10, 21:39:24
Cytuj
http://www.fruitcake.plus.com/Sinclair/Spectrum128/ExtendedBASIC/Spectrum128ExtendedBASIC3.htm
Znalazłem coś takiego, podobno wystarczy wpisać komendę COMMANDS by wyświetlił spis nowych, co ciekawe nie ma wśród nich PLAY. Więc może to nie jest pełna lista. A że mowa tu o 128k to może w +3 są jeszcze inne. Ech łatwiej znaleźć w necie spis komend do Timexa 2068 niż do nowszych Spectrumów.

Nie wiem dokładnie co to jest ale wygląda mi to na  "custom ROM" czyli coś co nie było w oryginalnych modelach Spectruma tylko zostało później stworzone przez jakiegoś hobbistę.

Co do instrukcji:
http://www.worldofspectrum.org/ZXSpectrum128Manual/
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: trojacek w 2013.09.10, 21:40:45
trojacek - sam sobie odpowiedziałeś w tym angielskim cytacie. :)

Ja nie pytałem. Ja tym cytatem rzucałem nowe światło na temat ;)
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: trojacek w 2013.09.10, 21:48:06

Nie wiem dokładnie co to jest ale wygląda mi to na  "custom ROM" czyli coś co nie było w oryginalnych modelach Spectruma tylko zostało później stworzone przez jakiegoś hobbistę.


To po prostu rozszerzenie Basica wgrywane do RAM.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Gryzor w 2013.09.10, 22:10:00
ROM48 to praktycznie kopia z 48k. Przeciez 128k daje sie przelaczyc w tryb 48k, tzw. USR 0.
A ROM128 to edytor ekranowy, menu + rozszerzenia Basica 48. W trybie 128k ROMy sa odpowiednio przelaczane podczas pracy. W +3 dochodzi 32k obslugi dysku. I ot cala filozofia. ZX i tak mial swietny BASIC, choc raczej wolny. W ZXie jest malo rzeczy przypadkowych, to naprawde arcydzielo sztuki kompromisu  :D
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: ZbyniuR w 2013.09.10, 23:03:20
To DOS zajmuje aż 32KB? Pierwsze słyszę. Myślałem że nawet wersja z +3e mieści się w zmodyfikowanym 16KB a ma w sobie nawet obsługę gęstych dyskietek w tym TOSowych oraz twardzieli. Podobnie Parados w CPC z obsługą gęstych stacji mieści się w 16KB AMSDOSa bo ten nie zajmował w pełni tych 16KB.

http://www.fruitcake.plus.com/Sinclair/Spectrum128/ROMDisassembly/Spectrum128ROMDisassembly3.htm
Tu znalazłem ciekawą informację że hiszpańska wersja 128k ma dodatkowe komendy EDIT, RENUMBER, DELETE i WIDTH.

Gdzieś kiedyś czytałem o komendach dyskowych w +3 takich jak FORMAT czy COPY np do ramdysku. Pamiętam że zazdrościłem tego Spectrumowcom bo w CPC trzeba sobie takie komendy dograć. Wiem że te komendy istnieją też w Basicu 48k ale robią w nim co innego. A może ich działanie w 128k zostało zmodyfikowane mimo że używa się tego samego tokenu. Zakręciłem się. :-|
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: trojacek w 2013.09.10, 23:06:26
+3DOS zajmuje 16 KB :)
A FORMAT i COPY są używane przez wiele DOS-ów, m.in. timexowy TOS. I są to dokładnie te same tokeny, bo przecież funkcjonują w Basicu 48. Tylko się do nich gwiazdkę dopisuje.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Phonex w 2013.09.10, 23:46:34
FORMAT, ERASE, MOVE, CAT w Spectrum 48K były zaprojektowane do firmowej pamięci Sinclaira - microdrive. Oczywiście nie działają na gołym komputerze, dopiero po podłączeniu Interface 1.
A skoro już są takie komendy, to wszyscy ich używają: OPUS Discovery, TIMEX FDD3000, MUEL, DISCiPLE, +D, +3, itd.
Dopisuje się w zależności od inwencji projektanta systemu dyskowego gwiazdkę (Timex), numer napędu (+D), jedno i drugie (OPUS), literę napędu (+3) lub jeszcze inną kombinację.

A COPY to wydruk ekranu na drukarce ZX Printer ;D
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Ilyad w 2013.09.11, 09:23:18
Tak jak zostało powiedziane - ramdysk i obsługa AY, zresztą nie pozwalająca na zbyt wiele, trochę jak obsługa głośniczka komendą BEEP.
kiedyś do YS, chyba w 1991 roku była dołączona kaseta z programem w basic 128, używającym komend PLAY. Grało na trzech kanałach i muszę przyznać że ładnie to brzmiało. Jak się nie mylę to napisał tę muzę niejaki Richard Braithwaite. Gdzieś powinienem mieć na dysku....
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Ilyad w 2013.09.11, 09:33:00
znalazłem na WOS :D:
http://www.worldofspectrum.org/infoseekid.cgi?id=0007877
przyjemnego słuchania.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: trojacek w 2013.09.11, 09:35:45
Bo, wbrew pozorom, komenda PLAY potrafi całkiem sporo - nie tylko definiuje wysokość i długość dźwięku, ale również pozwala wybierać obwiednie i używać szumu.

http://www.worldofspectrum.org/ZXSpectrum128+3Manual/chapter8pt19.html

Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Gryzor w 2013.09.11, 13:13:25
+3DOS zajmuje 16K, ale to sa same operacje dyskowe. Zeby dodac obsluge w BASICu doszlo kolejne 16KB.
Warto tu wspomniec o ROMach +3E - z obsluga interfejsu IDE. Instalujac te ROMY razem z np. divIDE (bez firmware).
Mamy ZX Spectrum +3 z HDD (w szczegolnosci z karta CF).
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Abrimaal w 2013.09.19, 05:18:16
ROM dla 128k zajmuje aż tyle dlatego, że oprócz zmienionego edytora, menu przy starcie, co najmniej 2 nowych instrukcji, jest prawie w całości skopiowany ROM z 48. Instrukcje które znam to SPECTRUM - przełączenie w tryb edytora 48k bez utraty danych, PLAY - nie mam pojęcia jak jej używać do wydobycia dźwięku z AY, a także możliwość użycia USR bez poprzedzającej go instrukcji. Ten ROM wygląda na robiony na szybkiego, nie poprawiono w nim błędów z 48, nawet tak karygodnego jak niemożliwość użycia przerwań NMI

Interesują mnie najbardziej dodatkowe zmienne systemowe umieszczone pod 23296, czy ma ktoś ich wykaz z opisem?

Jakie są podstawowe parametry instrukcji PLAY? Gdy zobaczyłem poniższy listing, to nie wiem czy warto o to pytać.
Pochodzi on z demo Bach i gra muzykę klasyczną na najbardziej prymitywnych brzmieniach.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: Phonex w 2013.09.19, 08:31:52
Zmienne systemowe +3: http://www.worldofspectrum.org/ZXSpectrum128+3Manual/chapter8pt25.html (http://www.worldofspectrum.org/ZXSpectrum128+3Manual/chapter8pt25.html)
A na tej stronie jest 128 (zwykły) ROM Disassembly. Na początku są różne szczegóły, oraz zmienne systemowe:
http://www.fruitcake.plus.com/Sinclair/Spectrum128/ROMDisassembly/Spectrum128ROMDisassembly.htm (http://www.fruitcake.plus.com/Sinclair/Spectrum128/ROMDisassembly/Spectrum128ROMDisassembly.htm)
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: ZbyniuR w 2014.08.25, 23:01:12
Dokładny opis komendy PLAY w ZX128K.
http://www.worldofspectrum.org/ZXSpectrum128+3Manual/chapter8pt19.html
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: ZbyniuR w 2018.12.06, 18:12:14
Kiedyś już o to pytałem ale dyskusja poszła w innym kierunku.

Chodzi mi o hiszpańskiego 128K i jego ekstra komendy EDIT, RENUMBER, DELETE i WIDTH.
Czy ktoś się orientuje pod jakimi kodami i pod jakimi kombinacjami klawiszy są te komendy?

Bo znajduję wspominki że one istnieją, a nawet jak działają, ale nie to gdzie są.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: trojacek w 2018.12.13, 00:09:07
Hmm, nie wiem, czy dobrze rozumiem Twoje pytanie - o jakie kody komend Ci chodzi? Takie, jak dla komend Basic 48?
EDIT, RENUMBER, DELETE i WIDTH nie są poleceniami Basica, tylko edytora, więc nie są tzw. tokenami (nie mają swoich kodów ASCII  przedziale 128-255). Wpisuje się je po literce, więc nie masz ich co szukać na klawiaturze.
W toastracku UK przeorganizowano edytor trybu 128, więc tych poleceń tam już nie ma, pojawiło się za to podręczne menu, wywoływane klawiszem [EDIT].
Jeśli bardzo Ci na tym zależy, to w najbliższych dniach mogę zweryfikować to, co napisałem powyżej. O ile mój hiszpański toastrack nadal działa.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: ZbyniuR w 2018.12.13, 00:56:09
Polecenia SPECTRUM i PLAY też są dostępne tylko w trybie 128 wklepywane po literce, a jednak mają swoje tokeny, jako 2 ostatnie UDG. Musiałbym sobie hiszpańskiego ROMa poszukać i sprawdzić pod emulcem.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: trojacek w 2018.12.13, 01:06:07
PLAY na pewno ma swój kod, bo stanowi element języka, a nie edytora. Co do SPECTRUM to nie mam pewności, ale możliwe, że masz rację.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: kuba777 w 2018.12.21, 17:25:10
Jest jeszcze jedna przykra różnica - gdzieś czytałem, że programy uruchamiane w BASIC 128 działają zauważalnie (kilkanaście procent) wolniej niż w starym BASIC 48. Nie pamiętam jaka jest przyczyna.
Tytuł: Odp: Różnice w BASIC 48k a 128k
Wiadomość wysłana przez: ZbyniuR w 2018.12.21, 21:56:30
https://www.speccy.pl/forum/index.php?topic=2715.msg37814#msg37814
Z tego testu wynika że jest o ok 9% albo i 10% wolniejszy. Podobno część cykli procka zużywa na przełączanie sobie dwóch ROMów, a część procedur ma w jednym a część w drugim.