OldComp.cz

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


Právě je 28.03.2024, 21:50

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 52 ]  Přejít na stránku Předchozí  1, 2, 3, 4
Autor Zpráva
PříspěvekNapsal: 04.03.2021, 22:03 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2571
Bydliště: Praha
Has thanked: 502 times
Been thanked: 607 times
Tak problém byl v "konstantě" "ya0". PMD narozdíl od speccy rozlišuje jen první dva znaky proměnné, takže se přepsala proměnou "ya" a tím se výpočet rozbil...
Přejmenoval jsem to na "ynula" a "xnula"
Házím do přílohy, na hulváta upravené scalem pro rozlišení spectra. Čistější by samozřejmě bylo předělat to do správného rozlišení. Ale on to zase takový rozdíl nebude...
Příloha:
3dgraf_pmd.jpg
3dgraf_pmd.jpg [ 260.21 KiB | Zobrazeno 5174 krát ]

Příloha:
3dgraf_pmd.zip [595 bajtů]
290 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říspěvekNapsal: 04.03.2021, 23:15 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Nojo tak to nakonec byl formální zápis... Zítra zkusím vytisknout na plotru :).


Nahoru
 Profil  
 
PříspěvekNapsal: 04.03.2021, 23:32 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2571
Bydliště: Praha
Has thanked: 502 times
Been thanked: 607 times
Ona je to vlastnost spousty basiců, dva znaky jsou ještě luxus, mnohde to byl jenom jeden. V tomhle speccy docela boduje.
Byl na to dobový vtip, že nerozlišování proměnných MAXPROFIT a MAXLOSS může vést k zajímavým koncům :)
Ještě ta druhá funkce, pro změnu na IQ. Na PMD by mělo stačit upravit ten kreslící řádek 2200 (a ještě CLS na GCLEAR)
EDIT: tak ne, na PMD to funguje, ale neseje to :) Zrada bude v zápisu té funkce na 2410. IQvečko to takhle sežere, ale na PMD je černá obrazovka...
Příloha:
3dgraf2_iq.jpg
3dgraf2_iq.jpg [ 131.54 KiB | Zobrazeno 5154 krát ]

Příloha:
3dgraf2_IQ.zip [584 bajtů]
374 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říspěvekNapsal: 05.03.2021, 02:41 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2571
Bydliště: Praha
Has thanked: 502 times
Been thanked: 607 times
Už to seje - bordel velká/malá písmena
Příloha:
3dgraf2_pmd.jpg
3dgraf2_pmd.jpg [ 260.98 KiB | Zobrazeno 5134 krát ]

Příloha:
3dgraf2_pmd.zip [581 bajtů]
387 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říspěvekNapsal: 05.03.2021, 12:33 
Offline
Radil

Registrován: 28.11.2020, 19:52
Příspěvky: 287
Bydliště: Košice
Has thanked: 30 times
Been thanked: 119 times
Výborne, teraz to už ide. Príkaz LET v podstate netreba, lebo PMD basic ho nevyžaduje a XNULA može byť značené ako X0, ide to aj tak. A tu sú oba typy vykresľovania do jedného .ptp


Přílohy:
3dgr_pmd.zip [1.43 KiB]
297 krát
Nahoru
 Profil  
 
PříspěvekNapsal: 06.03.2021, 17:40 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2571
Bydliště: Praha
Has thanked: 502 times
Been thanked: 607 times
Ještě mi to nedalo pokoj a přepsal jsem to do pascalu. Žádná velká péče, jen rychlý přepis.
Když už to bylo napadlo mě porovnat rychlost na PMD, takže tady to je pro obě funkce:
Kód:
         Basic    TOM Pascal 1.2    Pascal MT+     
GRAF1    17:50    06:35             06:18
GRAF2    23:40    14:05             17:10   

Docela zajímavé, evidentně se s tou složitější funkcí MT+ dost zapotí...
Kdyby si někdo chtěl taky pohrát, tak všechno je v příloze. Zdrojáky pro basic i oba pascaly, páska pro TOM Pascal a disketa s binárkama z MT+
Příloha:
3dgraf_pascal.zip [23.2 KiB]
278 krát


Pěkně se to oproti tomu basicu natáhlo... Holt plácal :twisted:
Kód:
PROGRAM GRAF2;
CONST A   = 155;
      K1  = 39;
      W   = 75;
      K   = 0.65;
      XA0 = 128;
      YA0 = 83;
      BM  = 0.017453; {PI/180}
      DX  = 3;
      DY  = 5;
      AF  = 1.722222; {A/90}   

VAR I,G,M,XA,YA,F1,F2,X1,Y1,X2,Y2 : INTEGER;
    C,S,X,Y,Z : REAL;
    H : ARRAY[1..256] OF INTEGER;
   
PROCEDURE FUNKCE;
    VAR R:REAL;
        BEGIN
            R:=SQRT(X*X+Y*Y)*BM;
            Z:=K1*(COS(R)-COS(3*R)/3+COS(5*R)/5-COS(7*R)/7)+24;
        END;   
 
BEGIN
    C := K*COS(W*BM);
    S := K*SIN(W*BM);
    G := -110;
    M := -105;   
    FOR I:=1 TO 256 DO H[I]:=-1000;
    PAGE;
   
    WHILE G <= 110 DO
            BEGIN
            Y:=G*AF;
            WHILE M <= 105 DO
                BEGIN
                    X:=M*AF;
                    FUNKCE;
                    XA:= ROUND (XA0+M+C*G+0.5);
                    YA:= ROUND (YA0+S*G+Z+0.5);
                    IF M > -105 THEN
                        BEGIN
                            F2:=0;
                            I:= ROUND (XA/DX);
                            IF YA>=H[I+1] THEN
                                BEGIN
                                    F2:=1;
                                    H[I+1]:=YA;
                                END;
                            X2:=XA;
                            Y2:=YA;
                            IF F1*F2=1 THEN
                                BEGIN
                                    IMOVE(X1,ROUND(Y1*1.3));
                                    IDRAW(X2,ROUND(Y2*1.3));                                   
                                END;
                            X1:=X2;
                            Y1:=Y2;
                            F1:=F2;
                        END
                    ELSE
                        BEGIN
                            F1:=0;
                            I:= ROUND (XA/DX);
                            IF YA>=H[I+1] THEN
                                BEGIN
                                    F1:=1;
                                    H[I+1]:=YA;
                                END;
                            X1:=XA;
                            Y1:=YA;
                        END;   

                    M:=M+DX;
                END;
            G:=G+DY;
            M:= -105;       
            END;
    READLN;
END.

_________________
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říspěvekNapsal: 06.03.2021, 21:53 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2571
Bydliště: Praha
Has thanked: 502 times
Been thanked: 607 times
Jinak ještě o slušný kus rychlejší je DC Pascal od KKI MFF UK pro IQ-151, tedy vlastně to co je v Amosu.
Ten první jednodušší graf spočítá za 4:17, druhý za 8:25. V rozlišení grafiku to i vypadá o chlup lépe...
Příloha:
3dgraf2_iq_placal.jpg
3dgraf2_iq_placal.jpg [ 206.52 KiB | Zobrazeno 5006 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  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 52 ]  Přejít na stránku Předchozí  1, 2, 3, 4

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 1 návštěvní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