OldComp.cz

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


Právě je 20.04.2024, 03:37

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 55 ]  Přejít na stránku Předchozí  1, 2, 3, 4  Další
Autor Zpráva
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 20.07.2020, 23:04 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3819
Has thanked: 280 times
Been thanked: 457 times
Já tedy nevím, školy nemám, ale aby v jedné verzi Paskalu na jeden počítač byly funkce obě, ve druhé žádná a ve třetí opět jedna to mi přijde jako docela zaručený recept na to aby nic mimo naprostých základů pořádně nefungovalo... Vždyť je to na hlavu, takový přístup. :shrug: Proč se soudruzi nesnažili raději o kompatibilitu, vždyť takto musíte znát 3 způsoby jak jednu věc psát? :shock:

Líbí se mi ale MTPLUS jak s možností vytvořit standalone .COM, tak s knihovnou AM9511 :-). Dočetl jsem se, že se dají knihovny dopsat (ne že bych to uměl) a tak by se mu teoreticky mohly grafické knihovny doplnit aby se na PMD čáry máry grafiku naučil, ne? Kor když na úsečku je monitorový prográmek co stačí zavolat. Naučit ho co umí basic byl by z toho rychlejší nástroj s grafikou i pro lidi co neznají assembler jako když bičem mrská. Kdoví o kolik rychlejší by byly hry mìsto v basicu napsané v pascalu. A o kolik méně času by to potřebovalo na napsání oproti assembleru. Jenmožná s dostupnou RAM to bude slabší. Každopádně dnes jsem se o něco posunul kupředu s CP/M i Pascalem, už to holt zase chce znát poněkud víc věcí než aktuálně znám ale začíná se to už blížit známému světu "velkých" počítačů.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 21.07.2020, 07:41 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2588
Bydliště: Praha
Has thanked: 511 times
Been thanked: 620 times
Měl jsem náladu si hrát, tak tu je PRC záznam z emulátoru, jak vypadá práce s MT+ Třeba to někomu pomůže...
Příloha:
placal.zip [300.16 KiB]
328 krát

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 21.07.2020, 10:01 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3819
Has thanked: 280 times
Been thanked: 457 times
No bezva, téma krásně žije. Odpoledne se na to učitě kouknu.

Kdyby se někdo hodně nudil, bylo by těžké napsat takovou proof-of-concept demo jednotku pro Pascal MT+ aby uměla pracovat s PMD podprogramem Monitoru INPOL? Tedy zobrazit grafickou úsečku (a tím pádem i bod). Ta je základem veškeré SUOG grafiky co PMD nabízí...

Kód:
Podprogram INPOL (pro PMD 85-3)
Funkcia: Kreslí úsečku z pozície kurzora do určeného bodu - interpoluje.
Kurzor sa presunie do nového bodu.
Adresa: ECD0H
Vstup: C170H - x-ová súradnica kurzora
C172H - y-ová súradnica kurzora
C173H - x-ová súradnica cieľového bodu
C174H - y-ová súradnica cieľového bodu
Výstup: zobrazovacia jednotka
Registre: mení všetky


A není náhodou na Mikros k dispozici i nějaký file manažer ve stylu nc/mc? Já vím že je to 8bit ale i tehdy byli lidi lenošní a práci si chtěli zjednodušovat a zpříjemnit :-).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 21.07.2020, 21:17 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2588
Bydliště: Praha
Has thanked: 511 times
Been thanked: 620 times
O ničem ve stylu NC nevím, ale nějaké file managery určitě jsou. https://techtinkering.com/articles/interactive-file-managers-on-cpm/
Taky se mi vybavuje, že existovalo něco jménem "power".
Otázka jestli bude stačit 48 znaků na řádek, spousta toho asi bude počítat s osmdesáti...

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 21.07.2020, 22:08 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 786
Bydliště: Šlapanice
Has thanked: 130 times
Been thanked: 98 times
Pro SAPI-1 s AND-1A je POWER upraven dokonce na 40 znaku. Jinak na SHARP MZ800 mají souborvý manažer v duchu NC, ale mám ten pocit, že bez dost zásadního přepisu to nebujme spustit na PMD aneb je to psáno pro stroj se Z80 a s velkou pravděpodobností se tam používají i specifické věci z MZ800 :sharp: .

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 21.07.2020, 23:50 
Offline
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 978
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 487 times
Existuje program "SuperDirectory" - aplikace napsaná v Turbo Pascalu, která se trochu jako NC tváří. Akorát mám pocit, že když jsem to zprovozňoval, tak to bylo ve španělštině...

Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 22.07.2020, 02:06 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3819
Has thanked: 280 times
Been thanked: 457 times
vanthomas píše:
O ničem ve stylu NC nevím, ale nějaké file managery určitě jsou. https://techtinkering.com/articles/interactive-file-managers-on-cpm/
Taky se mi vybavuje, že existovalo něco jménem "power".
Otázka jestli bude stačit 48 znaků na řádek, spousta toho asi bude počítat s osmdesáti...


Na tu stránku jsem taky narazil, z těch "manažerů" mě zaujal obří 28 kb Sweep a sotva poloviční Nsweep, byť ten je zase zabugovaný a jen 5kb disk7. V dobách slávy nc už CP/M asi nikoho moc nezajímalo, zejména řada 2.2... Přitom je to škoda, manažer hrozně ulehčuje lidem jako já co neznáme všechny tajné přepínače a utilitky a kde co je umístěno z hlavy práci se soubory.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 22.07.2020, 08:05 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3819
Has thanked: 280 times
Been thanked: 457 times
Malá technická - dám sem obraz prázdné diskety pro Mikros, sice není těžké ji vytvořit ale snadnější je ji jen stáhnout už hotovou když je náhodou potřeba :-).

A ještě jednu prázdnou disketku obsahující FSED, PIP a s připraveným prázdným souborem PROGRAM.PAS, to je úplně radost učit se pracovat s CP/M, i DOS je proti tomu ultrahypermoderní prostředí :lol: Editaci souboru pro zápis vašeho programu stačí jen spustit pomocí příkazu FSED PROGRAM.PAS na dané disketě :-). Disketa kvůli úspoře místa a pro větší přehlednost není bootovací, takže ideální je mít Mikros v A: a tuto třeba jako B:. A MT+ Pascal třeba do C:. A určitě doporučuji nejdříve si alespoň trochu nastudovat toto:http://www.gaby.de/cpm/manuals/archive/cpm22htm/ch1.htm#Section_1.4

Poslední disketa po lehkém boji obsahuje kromě editoru a souboru pro Pascal také manažer NSWEEP ve verzi 208 (NSWP208.COM), který umožňuje pracovat se soubory o poznání efektivněji než jen čistá konzole CP/M. Nevadí mu ani atypických 48 sloupců, texty pěkně zalamuje a běží v Mikrosu bez problémů co jsem tak měl šanci vyzkoušet. Autor jej dle popisu v dokumentaci uvolnil jako public domain se zákazem prodeje, tak to prosím už neprodávejte aniž byste měli písemný souhlas autora Dave Randa :-). Ovládání je na dnešní dobu poněkud nezvyklé, manažer rotuje soubory z aktuálního adresáře/disku dokolečka a akce se zadávají pomocí písmen (X je kupříkladu návrat do CP/M). Nápovědu se seznamem příkazů si vyvoláte pomocí "?".


Přílohy:
Disketa obsahujici file manager NSWEEP208.zip [79.22 KiB]
331 krát
Disketa pripravena na zapis v Pascalu.zip [74.14 KiB]
323 krát
Prazdna disketa 360kB Mikros.zip [74.61 KiB]
329 krát
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 22.07.2020, 22:21 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 581
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 91 times
Asi není potřeba psát celou jednotku, ale stačí ti na to jedna procedura:

Kód:
PROCEDURE LINE(X0,Y0,X,Y:WORD);
BEGIN
INLINE(  "PUSHH / "PUSHD /
                   "PUSHB / "PUSHA/
                 $2A / X0 / $22 / $C170 /
                  $2A / Y0 / $22 / $C172 /
                 $2A / X / $22 / $C173 /
                $2A / Y / $22 / $C174 /
               "CALL / $ECD0 /
               "POPA / "POPB /
               "POPD/ "POPH ) ;
END;


netuším na PMD jaký může být rozsah X,Y ale nezdají se mi ty adresy souřadnic... To si budeš muset odladit, taky tam není žádný test jestli je ta ROM přistránkovaná případně na jakém PMD to jede... je to jen příklad jak to udělat.


Czech Human píše:
No bezva, téma krásně žije. Odpoledne se na to učitě kouknu.

Kdyby se někdo hodně nudil, bylo by těžké napsat takovou proof-of-concept demo jednotku pro Pascal MT+ aby uměla pracovat s PMD podprogramem Monitoru INPOL? Tedy zobrazit grafickou úsečku (a tím pádem i bod). Ta je základem veškeré SUOG grafiky co PMD nabízí...

Kód:
Podprogram INPOL (pro PMD 85-3)
Funkcia: Kreslí úsečku z pozície kurzora do určeného bodu - interpoluje.
Kurzor sa presunie do nového bodu.
Adresa: ECD0H
Vstup: C170H - x-ová súradnica kurzora
C172H - y-ová súradnica kurzora
C173H - x-ová súradnica cieľového bodu
C174H - y-ová súradnica cieľového bodu
Výstup: zobrazovacia jednotka
Registre: mení všetky


A není náhodou na Mikros k dispozici i nějaký file manažer ve stylu nc/mc? Já vím že je to 8bit ale i tehdy byli lidi lenošní a práci si chtěli zjednodušovat a zpříjemnit :-).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 22.07.2020, 22:53 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3819
Has thanked: 280 times
Been thanked: 457 times
Díky moc. Ty adresy platí pouze pro PMD 85-3, to nejlíp podporuje a spolupracuje s CP/M, jsou uvedené v příručce k verzi 3 jako podprogramy Monitoru. Na automodifikační kód mám ještě času dost... Zítra to zkusím pokud se už dostanu k zadávání proměnných :lol: . Začal jsem přepisovat a zkoušet programy z příručky k MTPlus tak to budu průběžně sem dávat, moc se toho na PMD nezachovalo a pro začátečníkyjako já to je velká pomoc. Pascal je hodně odlišný od Basicu.

Když by se daly kreslit úsečky, tak by se určitě dal vytvořit ekvivalent SCALE a ty spustitelné .COM soubory s 340 kB disketou to je samozřejmě jiná káva než Basic. Navíc dostat na ně soubory z PC apod. na živé PMD je mnohem snadnější než u virtuální pásky, ta se hodí leda pro emulátor.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 22.07.2020, 23:41 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2588
Bydliště: Praha
Has thanked: 511 times
Been thanked: 620 times
l00k píše:
Asi není potřeba psát celou jednotku, ale stačí ti na to jedna procedura:

Kód:
PROCEDURE LINE(X0,Y0,X,Y:WORD);
BEGIN
INLINE(  "PUSHH / "PUSHD /
                   "PUSHB / "PUSHA/
                 $2A / X0 / $22 / $C170 /
                  $2A / Y0 / $22 / $C172 /
                 $2A / X / $22 / $C173 /
                $2A / Y / $22 / $C174 /
               "CALL / $ECD0 /
               "POPA / "POPB /
               "POPD/ "POPH ) ;
END;


netuším na PMD jaký může být rozsah X,Y ale nezdají se mi ty adresy souřadnic... To si budeš muset odladit, taky tam není žádný test jestli je ta ROM přistránkovaná případně na jakém PMD to jede... je to jen příklad jak to udělat.


tady: https://winworldpc.com/product/pascal-mt/5x-cpm jsou manuály pro MT+. V Programmers guide je "Appendix F - Mini-assembler Mnemonics"
Určitě to nezná "PUSHA" a "POPA" Na tom pokus o překlad skončí. (Nemá to být "PUSH PSW" a POP PSW ? resp. v mnemonice MT+ POPPS - F1H a PUSHP - F5H)
Zítra se na to zkusím kouknout, třeba to odladím. Každopádně díky za nástřel :like:

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Naposledy upravil vanthomas dne 23.07.2020, 00:06, celkově upraveno 2

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 22.07.2020, 23:56 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3819
Has thanked: 280 times
Been thanked: 457 times
Nakonec se nám třeba mtplus naučí i grafiku a zobrazení stringů jako Basic což by umožnilo i kdyby ne přímo urychlení tedy minimálně výrazné usnadnění používání programů na reálném hardwaru :like:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 23.07.2020, 01:09 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2588
Bydliště: Praha
Has thanked: 511 times
Been thanked: 620 times
Nedalo mi to a hecnul jsem se hned :) Jak jsem psal o příspěvek výš, PUSH A a POP A je v mnemonice MT+ PUSHP A POPPS...
Funkční kus kódu může tedy vypadat třeba takhle (s wordy mi to nějak nešlo, tak jsem tam plácnul integery)
Kód:
PROGRAM CARANI;
VAR X1,Y1,X2,Y2:INTEGER;

PROCEDURE LINE(X0,Y0,X,Y:INTEGER);
BEGIN
INLINE(  "PUSHH / "PUSHD /
                  "PUSHB / "PUSHP/
                  $2A / X0 / $22 / $C170 /
                  $2A / Y0 / $22 / $C172 /
                  $2A / X / $22 / $C173 /
                  $2A / Y / $22 / $C174 /
                  "CALL / $ECD0 /
                  "POPPS /
                  "POPB /
                  "POPD / "POPH ) ;
END;

BEGIN
X1:=0;
Y1:=0;
X2:=100;
Y2:=100;
LINE(X1,Y1,X2,Y2);
END.


Výsledek:
Příloha:
carani.jpg
carani.jpg [ 18 KiB | Zobrazeno 6443 krát ]

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 23.07.2020, 02:34 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2588
Bydliště: Praha
Has thanked: 511 times
Been thanked: 620 times
Možná ještě trochu přehledněji v mnemonice, místo opkódů a s cyklem, ať to něco dělá :)
Kód:
PROGRAM CARANI;
VAR X1,Y1,X2,Y2:INTEGER;

PROCEDURE LINE(X0,Y0,X,Y:INTEGER);
BEGIN
 INLINE(
        "PUSHH / "PUSHD / "PUSHB / "PUSHP /
        "LHLD / X0 / "SHLD / $C170 /
        "LHLD / Y0 / "SHLD / $C172 /
        "LHLD / X /  "SHLD / $C173 /
        "LHLD / Y /  "SHLD / $C174 /
        "CALL / $ECD0 /
        "POPPS / "POPB / "POPD / "POPH
       );
END;

BEGIN
X1:=0;
Y1:=0;
X2:=250;
FOR Y2:=0 TO 200 DO
   BEGIN
   LINE(X1,Y1,X2,Y2);
   END
END.

Příloha:
carani2.jpg
carani2.jpg [ 90.21 KiB | Zobrazeno 6438 krát ]

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Pascal pro PMD 85
PříspěvekNapsal: 23.07.2020, 06:53 
Offline
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 429 times
Been thanked: 265 times
Procedúry IMOVE a IPLOT, fungujúce rovnako, ako v Pascal V1.02.
Zároveň obsahuje funkciu ISV3 testujúcu na "typ MIKROSu", teda či ide o PMD 85-3 alebo PMD 85-2A. Táto funckia je zavolaná na začiatku programu a výsledok je uložený do premennej V3.
Kód:
{Procedury IMOVE a IPLOT}
program MOVEPLOT;
var X1:absolute [$C170] BYTE;
    Y1:absolute [$C172] BYTE;
    X2:absolute [$C173] BYTE;
    Y2:absolute [$C174] BYTE;
    V3:BOOLEAN;

function ISV3:BOOLEAN;
var FF:absolute [$FFFF] BYTE;
    V:BYTE;
begin
 V:=255-FF;
 FF:=V;
 ISV3:=(FF <> V);
end;

procedure IMOVE(XX,YY:INTEGER);
begin
 X1:=XX;
 Y1:=255-YY;
end;

procedure IDRAW(XX,YY:INTEGER);
begin
 X2:=XX;
 Y2:=255-YY;
 if V3 then
  INLINE($CD/$D0/$EC)
 else
  INLINE($3E/$09/$D3/$F7/
    $21/$00/$00/$39/
    $31/$00/$00/$E5/
    $CD/$D0/$8C/
    $E1/$F9/
    $3E/$08/$D3/$F7)
end;

begin {hlavny program}
 write(CHR(31)); {Zmazanie obrazovky}

 V3:=ISV3; {PMD 85-3 vs. -2A}

 IMOVE(50,50);
 IPLOT(100,100);
 IPLOT(100,50);
end.


Inak, prekvapilo ma, a zatiaľ som neprišiel na to, čo je dôvod, ale v MT Pascale mi s týmito procedúrami nefungujú tie programy na kreslenie Sierpinskeho a Hilbertovych kriviek. Zrejme to zlyhá na tej rekurzii, ale prečo, to neviem. V Pascale V1.02 tá rekurzia funguje bezvadne, ale v MT Pascale to nejako zablúdi a vykreslia sa nezmysly.

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


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ů: 55 ]  Přejít na stránku Předchozí  1, 2, 3, 4  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 4 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