OldComp.cz https://oldcomp.cz/ |
|
Nove prikazy ve 48 rom https://oldcomp.cz/viewtopic.php?f=124&t=10225 |
Stránka 1 z 1 |
Autor: | VELESOFT [ 23.07.2021, 20:58 ] |
Předmět příspěvku: | Nove prikazy ve 48 rom |
Rad bych do 48 rom pridal nejake nove prikazy basicu a to klidne bez parametru, tedy neco jako CLS, STOP... Muzete me nekdo nasmerovat kde konkretne udelat nejake zmeny ? Idealne nejaky priklad kratkeho prikazu, ktery zavola CALL xx a pak se vrati do beziciho basic programu. Je to dost dulezite. Dekuji za jakoukoli pomoc. |
Autor: | Busy [ 24.07.2021, 20:09 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
To je velmi jednoduche. Akonahle romka najde nieco, co sa jej nepaci, tak skoci na error handler, ktoreho adresa je ulozena na zasobniku (ukazuje na nu sysvar ERRSP) Standartne je tam #1303 vypis chyboveho hlasenia, ale toto si mozes na zaciatku programu predefinovat na vlastny handler. Pokial chces nejaky novy prikaz, tak novy vlastny error handler by mal tento prikaz osetrit. Ak sa jedna o novy prikaz, tak ho vykona a skoci na pokracovanie interpretacie basicu, a ak je to cokolvek ine, tak skoci na defaultny handler #1303. Inicializacia: Na adresu kam ukazuje ERRSP uloz adresu vlastneho handlera Vlastny handler by mal potom robit: - Podla kodu na ERRNR otestovat ci je to chyba Nonsense in basic. Ak nie, skok na #1303. - Podla CHADD (ukazuje kde v basicu nastala chyba) skontroluje, ci je to nas novy prikaz. Ak nie, skok na #1303. - Teraz je jasne ze je to nas novy prikaz. Nasleduje nacitanie jeho parametrov (ak ziadne nema, tak nic netreba robit). - Podla BIT 7,(IY+1) skontrolue ci sa kontroluje syntax (bit=0) alebo uz je to ostry beh programu (bit=1). - Ak sa jedna o ostry beh, vykona sa samotna konkretna cinnost daneho prikazu - Ukoncenie prikazu: Na zasobnik sa PUSHne adresa handlera a skoci sa na pokracovanie basicu #1B76. Pri chybe romka urobi (principialne) toto: ld (ERRNR),kod_chyby - 1 ; #FF=OK ld sp,(ERRSP) ret Posledny RET zo zasobnika odstrani adresu nasho handlera skoci nan. Preto je treba na konci handlera spravit ld hl,handler push hl jp #1B76 Takto su robene mnohe rozsirenia basicu o nove prikazy, napriklad legendarny PRODOS basic. |
Autor: | danhard [ 25.07.2021, 09:31 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
Měl bych několik dotazů. Basic ZX48 zadává klíčová slova jednou klávesou a ukládají se v programu jako jeden byte v oblasti nevyužité znaky ? Kolik je tam ještě nevyužitých pozic ? Jak by se nové příkazy zadávaly v editaci ? Je nějaké volné místo v ROMce na záplaty ? |
Autor: | Busy [ 25.07.2021, 09:45 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
danhard píše: Měl bych několik dotazů. Kukni sem:Basic ZX48 zadává klíčová slova jednou klávesou a ukládají se v programu jako jeden byte v oblasti nevyužité znaky ? https://busy.speccy.cz/tvorba/kodex.htm V stlpci ASCII je uvedene, aky znak alebo prikaz sa nachadza pod danym kodom. Kody 144 az 164 su UDG. danhard píše: Kolik je tam ještě nevyužitých pozic ? Nie vela. Nevyuzite pozicie su oznacene ako (nic).danhard píše: Jak by se nové příkazy zadávaly v editaci ? Zvykne sa to robit tak, ze nove prikazy su nejaky taky znak, alebo nim zacinaju, ktory je mozne napisat aj pri kurzore K. Najcastejsie to zvykne byvat bodka (nase typicke bodkove prikazy pre bsdos, esxdos, residos...) ale uz som videl pouzitie aj hviezdicky. V mojej bsromke som ako nove prikazy vyuzil cely rad znakov ktore sa pisu cez symbol shift.danhard píše: Je nějaké volné místo v ROMce na záplaty ? Ano, v originalnej ZX romke skoro cely kilobajt pred znakovym fontom na konci.
|
Autor: | SCjoe [ 25.07.2021, 14:52 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
danhard píše: Je nějaké volné místo v ROMce na záplaty ? Tak pravil klasik: Kód: Od (vratane) - do (nevratane) v hexa.
Original Spektrum rom (gumak, plusko, delta): 0013-0018 0025-0028 002B-0030 005F-0066 04AA-04C2 386E-3D00 Spektrum 128k rom (rom 0) 0013-0018 0025-0028 002B-0030 005F-0066 04AA-04C2 3BE1-3C01 3C97-3D00 Spektrum 128k rom (rom 1) 000B-0010 0014-0018 001C-0020 0024-0028 2F15-2F35 3FA6-3FFF BS rom 140 3C97-3D00 (rezervovanie pre rozsirenie BSDOS) Ked som raz potreboval nainstalovat nejaku rutinku do romky, tak som na tu chvilku obetoval cast rutinky prikazu DRAW co kresli obluky. Busy. |
Autor: | VELESOFT [ 27.07.2021, 00:02 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
Dnes uz ale nema moc smysl omezovat se jen na 16kB romky a veskere upravy pak vtesnavat do nevyuziteho mista. Treba MB02,MB03 ci Divmmc maji dost velkou ramku, ktera zx rom funkcne muze nahradit. Tady by se dalo uz doslova kouzlit. |
Autor: | danhard [ 27.07.2021, 08:26 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
Mě šlo spíš o úpravy stávající ROMky, třeba pro obsluhu zaintegrované SD karty a rozšířené RAM v nějakém klonu. |
Autor: | VELESOFT [ 27.07.2021, 14:33 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
danhard píše: Mě šlo spíš o úpravy stávající ROMky, třeba pro obsluhu zaintegrované SD karty a rozšířené RAM v nějakém klonu. To vse uz klony maji. Ale vetsinou se pouziva 32kB zx rom ala zx128 kde misto 128 basicu je nova rozsirena rom, nebo 64kB rom, kde je 128rom+48rom+nova romka+trdos rom. |
Autor: | azorasoft [ 27.07.2021, 15:59 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
VELESOFT píše: To vse uz klony maji. Ale vetsinou se pouziva 32kB zx rom ala zx128 kde misto 128 basicu je nova rozsirena rom, nebo 64kB rom, kde je 128rom+48rom+nova romka+trdos rom. Je tam nějaké omezení nebo je to pružné? Dá se třeba přepínat mezi 16 stránkama a mít tak 256kB ROM a nacpat do toho nějaký hypersuperultra Basic? Vím matně, že jsou tam nějaké mapovací body na které když se skočí tam se přepne do jiné ROMky, ale nevím jak ten mechanismus přesně funguje. |
Autor: | azorasoft [ 27.07.2021, 16:02 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
Busy píše: To je velmi jednoduche. Akonahle romka najde nieco, co sa jej nepaci, tak skoci na error handler, ktoreho adresa je ulozena na zasobniku (ukazuje na nu sysvar ERRSP) Standartne je tam #1303 vypis chyboveho hlasenia, ale toto si mozes na zaciatku programu predefinovat na vlastny handler. Co kdybych to nechtěl dělat takhle "škaredě" přes errorhandler, ale chtěl bych ty nové příkazy zaintegrovat přímo do interpreteru Basicu? |
Autor: | dex [ 27.07.2021, 17:31 ] |
Předmět příspěvku: | Re: Nove prikazy ve 48 rom |
Tak to uděláš stejně. Basic prohledává seznam příkazů, dokud nedojde na konec. Prohledá ty, k nimž má kód tokenu, když žádný nenajde, skočí "dál". "Dál" znamená, že se buď pokračuje v prohledávání seznamu, který jsem rozšířil, nebo dojde na konec a vyvolá chybovou hlášku. Takže na tom nic ošklivého není, je to správné a systémové řešení. jediné, co můžeš, je rozšířit tabulku tokenů - ale není už kam (i příkazy PLAY a SPECTRUM ve 128k verzi dělají problémy). |
Stránka 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |