OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 23:41

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 169 ]  Přejít na stránku Předchozí  1 ... 8, 9, 10, 11, 12  Další
Autor Zpráva
PříspěvekNapsal: 30.01.2023, 09:37 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
PotPalo píše:
To AND si si všimol? To spôsobí, že keď bude znak medzera, teda prázdno, tak sa nezapočíta, takže pre VAL ostanú iba číslice. Takže napríklad pre dĺžku 33 nebude "___33" ale "33" (to _ je akože medzera).
Vsimol, ale funkcia VAL vie medzery pred a za cislom odignorovat, takze je jedno ci jej podstrcis "___33____" alebo "33".

Inak ten vyraz (SCREEN$(10,a) AND SCREEN$(10,a) <> " ") sa mi moc nepaci, lebo sa musi dvakrat pre to iste volat SCREEN$ co nie je az taka trivialna funkcia. Ja by som to cele spravil tak, ze sa v cykle nacita cela oblast s dlzkou tak ako je, a potom len skontrolujem ci su v retazci okrem medzier aj cislice a ine znaky. Ak su tam len cislice, urobim VAL, v ostatnych pripadoch vyhlasim ze nacitanie dlzky bolo neuspesne.
pwramp píše:
Díky moc, pomohlo. Nastavil jsem jmena souborů tak, aby se jich na obrazovku pri CAT veslo prave 10
Ako vies v CAT-e vypisat prave 10 suborov ? Vies vopred ake mena suborov su na diskete ?


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 11:17 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 559
Has thanked: 278 times
Been thanked: 139 times
Citace:
Vies vopred ake mena suborov su na diskete ?


Ano, vím, protože jsem si je sám vytvořil, pojmenoval jsem je f00-f99. A pak už je to jednoduché, ptal jsem se na CAT "f0?.b" kde "0" se nahrazovala z vnější FOR smyčky. Dokonce každý soubor má 4. místnou délku, takže jsem si nemusel lámat hlavu s různou délkou řetězce a natvrdo měl nastavenou smyčku na 4 znaky.
Ale je to specifický případ, univerzální to samozřejmě není. Chtěl jsem zachovat láci BASICu a to se povedlo.

Celé je to pro zamýšlené "Demo" do výlohy jednoho obchodu. Didaktik nebo Spectrum, D80mini, MDOS2.1, dvě diskety. Poradíte mi, jak zajistit "autorun", tzn, aby po zapnutí počítače po nějaké malé době proběhl příkaz "RUN" který natáhne z diskety požadovaný program? Ideálně, ať je klidně vidět na obrazovce. Upravenou ROM si vypálím, ale na podobnou akci znalosti nemám. Musí to být blbuvzdorné, aby stačilo zapojit jen napájení a i bez displeje to najelo.
Díky!


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 15:17 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
pwramp píše:
Upravenou ROM si vypálím, ale na podobnou akci znalosti nemám.
Ja ano, ak chces, pripravim ti taku patchnutu romku.


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 15:41 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 559
Has thanked: 278 times
Been thanked: 139 times
Citace:
Ja ano, ak chces, pripravim ti taku patchnutu romku.

Jasně, to budu moc rád, pokud se to povede - díky moc už předem.


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 15:48 
Offline
Pan Generální

Registrován: 01.12.2017, 21:01
Příspěvky: 2062
Bydliště: BA-Petržalka :(
Has thanked: 18 times
Been thanked: 323 times
Ono to nieje zložité. Stačí do rutiny pre obsluhu klávesnice v ROM Spectra doplniť aby sa po resete "samo" stlačilo R a Enter. Samozrejme s príslušnými pauzami, a iba raz.

Alebo druhá možnosť, doplniť to do ROM D80, čo je asi lepšie, lebo tá je Flash.

A ešte je tu tretia, najelegantnejšia možnosť, a tou je vyrobiť maličký prechodný interface, ktorý po zistení signálu /reset vyšle na zbernicu príslušné signály pre stlačenie kláves. Vtedy netreba meniť žiadnu ROM, všetko ostatné bude pôvodné a emulácia kláves bude čisto hardvérová. Stačí pár logických obvodov a kondenzátorov pre časovanie.

_________________
Oznamy o novom príspevku mi na mail chodia iba sporadicky, takže keď sa nehlásim v diskusii, tak je to tým. V 80% nepríde mail vôbec.


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 16:20 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
Nebo místo emulace stisků nahradit skok do editoru po inicializaci skokem rovnou do rutiny vykonávání příkazu RUN.
Bylo by zvlášť výhodné, kdyby se po resetu spustil rovnou RUN, ale po vypadnutí chybou nebo BREAKem se uživatel dostal normálně do editoru.


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 16:27 
Offline
Radil

Registrován: 27.09.2013, 22:59
Příspěvky: 425
Has thanked: 102 times
Been thanked: 44 times
Napadlo mně, že pokud to má běžet bezobslužně, tak by asi bylo dobré zajistit tomu nějaký watchdog. Tzn. pokud se to kousne, nebo jinak zhavaruje, udělat tam automatický Reset, aby to běželo odznova.


Naposledy upravil pcmaker dne 30.01.2023, 19:32, celkově upraveno 3

Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 16:44 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 559
Has thanked: 278 times
Been thanked: 139 times
To hardwarové udělátko na sběrnici mě napadlo jako první - maličký ATTiny85, bez dalších obvodů. Na D80mini jsou vyvedené veškeré sběrnicové signály, šel by na desku řadiče připájet, ani by nebylo vidět, že tam nepatří. Ale rád se podívám i na řešení s patchnutou ROM, aspoň se něco naučím.

dex píše:
Nebo místo emulace stisků nahradit skok do editoru po inicializaci skokem rovnou do rutiny vykonávání příkazu RUN.
Bylo by zvlášť výhodné, kdyby se po resetu spustil rovnou RUN, ale po vypadnutí chybou nebo BREAKem se uživatel dostal normálně do editoru.


Ano, pokud by nebyla připojená jednotka, jen to provede prázdný příkaz RUN a skončí. Pokud nebude disketa nebo run na ní, taky to skončí chybovou hláškou a lze normálně pokračovat. Takto jsem jsem si to přesně představoval.


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 17:20 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
PotPalo píše:
A ešte je tu tretia, najelegantnejšia možnosť, a tou je vyrobiť maličký prechodný interface, ktorý po zistení signálu /reset vyšle na zbernicu príslušné signály pre stlačenie kláves. Vtedy netreba meniť žiadnu ROM, všetko ostatné bude pôvodné a emulácia kláves bude čisto hardvérová. Stačí pár logických obvodov a kondenzátorov pre časovanie.
To ma privadza na stvrtu moznost - dva monostabily zavesene na reset, ktore po danom case zapnu elektromagnety nad klavesami R a ENTER ;)
A bude to krasne "este hardwerovejsie" riesenie, uplne bez zasahu do zbernice :D


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 18:01 
Offline
Pan Generální

Registrován: 01.12.2017, 21:01
Příspěvky: 2062
Bydliště: BA-Petržalka :(
Has thanked: 18 times
Been thanked: 323 times
Myslím že by sa to celé vrátane watchdog dalo vyriešiť malou cvičenou opičkou, ktorá by tam spala v košíku. Počítač by hral AY hudbu, a keby prestala hrať (zámrz alebo reset), opička by sa zobudila, stlačila by reset a zadala RUN. To by hádam zvládla, a ešte by to pritiahlo kopu ľudí k výkladu. :lol:

_________________
Oznamy o novom príspevku mi na mail chodia iba sporadicky, takže keď sa nehlásim v diskusii, tak je to tým. V 80% nepríde mail vôbec.


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 19:23 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
pwramp píše:
Citace:
Ja ano, ak chces, pripravim ti taku patchnutu romku.
Jasně, to budu moc rád, pokud se to povede - díky moc už předem.
http://tmp.128.sk/ZXrom-RUN-enter.rar
Po spusteni to caka cca 4 sekundy, ak uzivatel medzitym nic nezacne robit, tak to same napise RUN a o dalsiu cca sekundu stlaci ENTER.


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 19:29 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
Já vymyslel toto - snad to nebude blbost.
Zkusit před adresu 12A2 dát místo
XOR A
LD DE,#1538
CALL #0C0A
SET 5,(IY+2)
JR #12A9
toto:
LD BC,0 (číslo řádku nula)
CALL #1E67+3 (nastavit GOTO bez vyzvedávání parametru, už je v BC)
SET 5,(IY+2)
JR #1EA1+3 (skok do podprogramu RUN bez vyzvedávání prametru a nastavování GOTO)
... nepamatuju si ale, kde D40 odchytává provádění příkazu RUN.


Nahoru
 Profil  
 
PříspěvekNapsal: 30.01.2023, 21:03 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 559
Has thanked: 278 times
Been thanked: 139 times
Busy píše:
Po spusteni to caka cca 4 sekundy, ak uzivatel medzitym nic nezacne robit, tak to same napise RUN a o dalsiu cca sekundu stlaci ENTER.

Funguje to skvěle, díky moc! Nenapsal bys mi k tomu komentář, co to kde dělá? Určitě si to můžu projít, ale lépe to slyšet od kováře :god2:


Nahoru
 Profil  
 
PříspěvekNapsal: 31.01.2023, 10:58 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
pwramp píše:
Nenapsal bys mi k tomu komentář, co to kde dělá? Určitě si to můžu projít, ale lépe to slyšet od kováře :god2:
Verzia s opravenym bugom a prilozenym zdrojakom: https://busy.speccy.cz/tmp/ZXrom-run-enter-src.rar
Kód:
 1    0000              ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 2    0000              ;; 30.01.2023 ;; Automaticke stlacenie RUN & ENTER po reset/new ;; Busy soft ;;
 3    0000              ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 4    0000
 5    0000                      OUTPUT  "48.rom",r      ;; Otvorenie suboru s romkou pre zapis patchu
 6    0000
 7    0000                      FPOS    #02BF
 8    0000                      ORG     #02BF           ;; Tu zacina obsluha klavesnice z prerusenia
 9    02BF C3 6E 38             jp      patch           ;; Sem dame odskok na nas patch
10    02C2
11    02C2                      FPOS    #386E
12    02C2                      ORG     #386E           ;; Zaciatok volneho miesta v ZX ROM
13    386E
14    386E CD 8E 02     patch   call    #028E           ;; Povodny test klavesnice volany na #02BF
15    3871 C0                   ret     nz              ;; Ak to nie je platna kombinacia, hned navrat
16    3872 21 B0 5C             ld      hl,#5CB0        ;; Adresa pocitadla casu (prvy bajt zo sysvar NMIADD)
17    3875 7B                   ld      a,e
18    3876 3C                   inc     a               ;; Test, ci je stlacena nejaka klavesa
19    3877 20 12                jr      nz,koniec       ;; Ak ano, ukoncime cinnost patchu
20    3879 34                   inc     (hl)            ;; Inkrementacia pocitadla casu
21    387A 28 0F                jr      z,koniec        ;; Ak pretieklo (255 pedesiatin) tak tiez koniec
22    387C 01 0D F7             ld      bc,#F70D        ;; Kody klaves: B = token RUN, C = znak ENTER
23    387F 7E                   ld      a,(hl)
24    3880 FE C0                cp      #C0             ;; Ked ubehne 192 pedesiatin,
25    3882 28 0B                jr      z,stlac         ;; nasimuluj stlacenie RUN
26    3884 41                   ld      b,c             ;; Do B vlozime kod ENTERu
27    3885 3C                   inc     a               ;; Ked ubehne 255 pedesiatin,
28    3886 28 07                jr      z,stlac         ;; nasimuluj stlacenie ENTER
29    3888 C3 C3 02     navrat  jp      #02C3           ;; Inak pokracovanie povodneho testu klavesnice
30    388B
31    388B 36 FF        koniec  ld      (hl),#FF        ;; Ukoncenie cinnosti patchu
32    388D 18 F9                jr      navrat          ;; nastavenim pocitadla casu na 255
33    388F
34    388F 78           stlac   ld      a,b             ;; Simulacia stlacenia klavesy
35    3890 32 08 5C             ld      (#5C08),a       ;; Ulozenie kodu klavesy do sysvar LASTK
36    3893 FD CB 01 EE          set     5,(IY+#01)      ;; Nastavenie ze LASTK obsahuje platny kod
37    3897 C9                   ret                     ;; a hned navrat bez volania povodnej obsluhy klavesnice
38    3898
39    3898                      OUTEND                  ;; Uzatvorenie patchnuteho suboru s romkou


Nahoru
 Profil  
 
PříspěvekNapsal: 31.01.2023, 12:53 
Offline
Pan Generální

Registrován: 01.12.2017, 21:01
Příspěvky: 2062
Bydliště: BA-Petržalka :(
Has thanked: 18 times
Been thanked: 323 times
Tiež som uvažoval kde dať počítadlo času... ale zapisovať do NMIADD?! Mám skúsenosti že niektoré programy alebo hry testujú túto premennú, a keď tam nieje 0, tak im to vadí. Iné programy si tam rovno tú nulu zapíšu, v nich by sa potom tiež samo stlačilo R a Enter. Čo programy ktoré si sem nakopírujú svoj kód? Tie sa tým poškodia. Síce ich asi nebude veľa, ale môžu byť aj také.

Keď už to fakt musí byť v ROM Spectra... Ja som uvažoval že by to kontrolovalo systémový čas (FRAMES na 5C78h - 3 byty) a dĺžku programu v BASIC (teda adresa konca programu a premenných - STKEND na 5C65h) či je nulová, nič by to v pamäti nemenilo. Takže akýkoľvek BASIC program by časovač vypol. A keby sa aj ručne BASIC zmazal, tak ďalšie R-Enter by bolo aj tak až za 93 hodín.
Potom by program vyzeral asi takto: prečíta sa STKEND a porovná s hodnotou po resete. Keď je rozdielna, tak koniec, inak sa pokračuje: Prečíta sa FRAMES (všetky 3 byty), ak je 192 simuluj R, ak je 255 simuluj ENTER. To je celé. Netreba nič zapisovať.

_________________
Oznamy o novom príspevku mi na mail chodia iba sporadicky, takže keď sa nehlásim v diskusii, tak je to tým. V 80% nepríde mail vôbec.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 169 ]  Přejít na stránku Předchozí  1 ... 8, 9, 10, 11, 12  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 6 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz