Welcome, Guest. Please login or register.


Author Topic: FILE bővítés (Read 17514 times)

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: FILE bővítés
« Reply #75 on: 2016.October.07. 23:17:02 »
I have loaded your 1.4 Exdos, and the latest Cview.

Now, as you said, once this emulation exits from a converted .com picture, it goes to the flashing letters and then to Basic. Better for the EGI.

----

As a side effect, I don't know why, now the ESP.rom works on the Fman app inside  EGI.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: FILE bővítés
« Reply #76 on: 2016.October.08. 11:07:49 »
Még egy pár ötlet az egérkezelés módosítására, de ezek nem feltétlenül jobbak a jelenlegi verziónál:

Ennél a résznél a MOUSEINPUT-ban nem jól van kiszámítva az időzítés, ha az OUT (0B7H) és az IN (0B6H) közötti idő a lényeges, akkor valójában 28.75 us 8 MHz-en letiltott várakozással, és elvileg elég lenne LD B,14 is, ami 27.125 us azonos feltételek mellett. Az EnterMice wiki szerint legalább 25 us várakozás kell. Ha turbós gépeken 2 ciklus a várakozás, akkor 10 MHz-en még így is működhet OUT 191,4 után. :)
Code: ZiLOG Z80 Assembler
  1. READ_LOOP_2:    OUT (0B7H),A
  2.                 LD B,15                 ;27.375 us at 8 MHz without wait states
  3. M_WAIT_LOOP:    DJNZ M_WAIT_LOOP
  4.                 LD B,4
  5. READ_LOOP_3:    LD A,B
  6.                 OUT (0B5H),A
  7.                 IN A,(0B6H)
Egy érdekes ötlet a várakozásra: 4 PUSH/POP utasításpár használata az LD B és DJNZ helyett, ha a verem garantáltan video RAM-ban található (FFh szegmens a 2. lapon), akkor annak a lassúsága szabályozza az időzítést turbós gépeken, 4 MHz-en viszont gyorsabb lehet. De ezt nem tudtam valódi turbós gépeken tesztelni, és ez a megoldás 4 byte-al nagyobb, tehát nem biztos, hogy van értelme a gyakorlatban.

A STOP gomb figyelését közvetlen port olvasás helyett meg lehetne oldani EXOS hívásokkal is. Ez valamivel rövidebb és talán elegánsabb is, de hátránya is van: ha a FILE-hoz való visszatéréskor a felhasználó nem engedi el a STOP gombot elég gyorsan, akkor hajlamosabb kilépni, mint az eredeti változat.
Code: Diff
  1. @@ -366,9 +366,9 @@
  2.  EXDOSFD:        DB 6,"EXDOS",0FDH
  3.  ;*********************************************************
  4.  ;               :FILE 0.LAPOS CIM,FILENEV
  5.  FILEVAR:        DB 22,0,23,0,24,40,25,24,76,208,78,208,75,209,77,209
  6. -                DB 7,0,10,1,11,20,0,6,"VIDEO:"
  7. +                DB 7,0,8,255,10,1,11,20,0,6,"VIDEO:"
  8.  FILEKEY:        DB 9,"KEYBOARD:"
  9.  FILEFILE:       DB 4,"FILE"
  10.                  DB ":"
  11.  FILELPT:        DB 0F7H,8,0BH,73H ; 0E9H,1
  12. @@ -681,17 +681,9 @@
  13.  FILE220:        LD A,(IY-53H)
  14.          IF FILE_ENABLE_MOUSE > 0
  15.                  LD H,A
  16.                  EXOS 9
  17. -                DI
  18. -                LD A,7
  19. -                OUT (0B5H),A
  20. -                IN A,(0B5H)
  21. -                EI
  22. -                RRA
  23. -                LD A,0E5H
  24. -                RET NC
  25. -                AND C
  26. +                OR C
  27.                  JR NZ,FILE224
  28.                  LD A,H
  29.          ENDIF
  30.                  EXOS 5
  31. @@ -820,8 +812,10 @@
  32.  FILEGY10:       LD (IX-7FH),E
  33.                  LD (IX-7EH),D
  34.                  LD (IX-7DH),0
  35.                  JR FILEENT10
  36. +FILESTOP:       LD A,229                ;.STOP
  37. +                RET
  38.  ;-------------------------------
  39.  FILEKCIM:       DB 176,FILEFEL-FILEFEL
  40.                  DB 180,FILELE-FILEFEL
  41.                  DB 177,FILEFES-FILEFEL
  42. @@ -833,8 +827,9 @@
  43.                  DB ' ',FILEENT-FILEFEL
  44.                  DB '\r',FILEENT-FILEFEL
  45.                  DB '\\',FILEROT-FILEFEL
  46.                  DB '.',FILEGY-FILEFEL
  47. +                DB 3,FILESTOP-FILEFEL
  48.                  DB 0
  49.  ;-------------------------------
  50.  FILE300:        DI
  51.                  LD HL,0

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: FILE bővítés
« Reply #77 on: 2016.October.08. 13:16:28 »
Ha turbós gépeken 2 ciklus a várakozás, akkor 10 MHz-en még így is működhet OUT 191,4 után. :)
Nem árt, ha megy 191,12-vel is, pláne, hogy EXOS 2.4-ben már az a alapbeállítás :-)

Quote
Egy érdekes ötlet a várakozásra: 4 PUSH/POP utasításpár használata az LD B és DJNZ helyett, ha a verem garantáltan video RAM-ban található (FFh szegmens a 2. lapon), akkor annak a lassúsága szabályozza az időzítést turbós gépeken, 4 MHz-en viszont gyorsabb lehet.
Ez biztos, 10MHz-en is? Anno a szkópos méregetésben azt figyeltem meg, hogy az órajel növekedéssel egyre több hozzáférési ablakot tud elkapni a Z80. Persze ez órajel, és utasítás kombináció függő, de a lényeg az, hogy lépcsőzetesen javul: egy darabig nincs hatása az órajel növekedésnek, aztán, ahogy egy újabb ablakot el tud kapni, ott lesz egy ugrásszerű gyorsulás.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: FILE bővítés
« Reply #78 on: 2016.October.08. 14:16:36 »
Nem árt, ha megy 191,12-vel is, pláne, hogy EXOS 2.4-ben már az a alapbeállítás :-)

10 MHz-en várakozás nélkül az eredeti kód (LD B,15) is túl gyors, csak 23 us idő telik el az OUT (0B7h) és az IN (0B6H) között:

CPU         4MHz    4MHz    6MHz    8MHz   10MHz   10MHz
BFh          04h     0Ch     0Ch     0Ch     04h     0Ch

15*DJNZ     62.5 us 57.5 us 38.3 us 28.7 us 27.0 us 23.0 us
14*DJNZ     59.0 us 54.2 us 36.1 us 27.1 us 25.5 us 21.7 us
4*PUSH/POP  45.0 us 39.3 us 32.0 us 30.3 us 30.3 us 22.5 us
5*PUSH/POP  54.0 us 46.0 us 39.0 us 37.0 us 37.0 us 27.0 us


A DJNZ-s idők ciklusokból számolt elméleti értékek, és feltételezik, hogy 10 MHz-en a DAVE 2 ciklust várakoztat a (BFh) = 4 módban. A PUSH/POP időket egy Lua scripttel mértem, ezek kevésbé pontosak, és többszöri futásnál nem mindig ugyanaz az érték. Ezért 4 és 6 MHz-en az "átlagos" értékeket tartalmazza a táblázat, 8 és 10 MHz-en viszont a minimumot, mivel annak kell nagyobbnak lennie 25 us-nál.

Nem tudom azonban, hogy a gyakorlatban milyen turbós gépek fordulnak elő, eredetileg az volt a cél, hogy 8 MHz-ig megbízható legyen letiltott várakozással is.

Quote
Ez biztos, 10MHz-en is? Anno a szkópos méregetésben azt figyeltem meg, hogy az órajel növekedéssel egyre több hozzáférési ablakot tud elkapni a Z80. Persze ez órajel, és utasítás kombináció függő, de a lényeg az, hogy lépcsőzetesen javul: egy darabig nincs hatása az órajel növekedésnek, aztán, ahogy egy újabb ablakot el tud kapni, ott lesz egy ugrásszerű gyorsulás.

A "lépcsőzetes" gyorsulást az ep128emu emulálja, de nem biztos, hogy a turbós gépeken is pontosan. Az itt található régebbi tesztek szerint 4 MHz-en jól közelíti a valódi gépet, de nagyobb órajelen előfordulhat némi eltérés.

Természetesen ha fontos a 10 MHz kompatibilitás, akkor egyszerű megoldás lehet a DJNZ-k számát növelni 17-re (25.6 us) vagy 18-ra (26.9 us), a valamivel lassabb MOUSEINPUT rutin valószínűleg nem eredményezne észrevehető változást a FILE használata közben.
« Last Edit: 2016.October.08. 14:38:41 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: FILE bővítés
« Reply #79 on: 2016.October.08. 19:28:14 »
Természetesen ha fontos a 10 MHz kompatibilitás, akkor egyszerű megoldás lehet a DJNZ-k számát növelni 17-re (25.6 us) vagy 18-ra (26.9 us), a valamivel lassabb MOUSEINPUT rutin valószínűleg nem eredményezne észrevehető változást a FILE használata közben.
Akkor 17-re vettem.

További apró módosítások, a programbetöltő módban:
-ismeretlen modul típus esetén megpróbálja az EPDOS START parancsát használni, így BASIC programot is el tud indítani (ha van EPDOS a konfigban)
-"~" karaktert "?"-re konvertálja a fájlnévben betöltés elött. Ez akkor szükséges, ha sikerült hosszúfájlneves fájlt EP lemezre másolni, a hullám karakter érvénytelen EXOS fájlnévben. Joker karakterre cserélve be tudja tölteni ezeket is (EXOS 2.1+ esetén).

Update: Az itt jelzett felesleges utasítás kiszedve.
« Last Edit: 2016.October.10. 10:29:29 by Zozosoft »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: FILE bővítés
« Reply #80 on: 2016.October.12. 12:29:12 »
Ez a rész egyébként lehet, hogy szintén törölhető:
Code: ZiLOG Z80 Assembler
  1.                 AND 0FH
  2.                 CP 08H
  3.                 JR C,MOUSEPOS2
  4.                 OR 0F0H                 ;sign extend from 4 bits to 8 bits
  5. MOUSEPOS2:      LD E,A
Az EnterMice wiki szerint a felső 4 biten a vízszintes görgetés lehetne, de jelenleg ez nem megvalósított, ezért az egész byte-on a függőleges elmozdulás olvasható 8 bites előjeles egészként. A felső 4 bit figyelmen kívül hagyása talán hasznos lehetne egy későbbi EnterMice verziónál, de a MOUSE.XR például nem ezt teszi (ezért az emulátorból törölni is kellett az eredetileg támogatott vízszintes görgetést).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: FILE bővítés
« Reply #81 on: 2016.October.12. 12:33:32 »
A felső 4 bit figyelmen kívül hagyása talán hasznos lehetne egy későbbi EnterMice verziónál
Szerintem éppen ezért maradjon.

Quote
de a MOUSE.XR például nem ezt teszi (ezért az emulátorból törölni is kellett az eredetileg támogatott vízszintes görgetést).
Itt meg szóljunk Gfloreznek, hogy tegye bele a MOUSE.XR-be is.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: FILE bővítés
« Reply #82 on: 2016.October.12. 15:12:06 »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: FILE bővítés
« Reply #83 on: 2016.October.12. 16:23:34 »
ZT-k FILE 1.4-el

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: FILE bővítés
« Reply #84 on: 2016.October.12. 19:19:59 »
Tud indítani a rendes indítási sorrend egy kattintással, mint te A, B, E, H, I, stb?

-----------------------

Can you launch the normal startup sequence with a mouse click like you do with keys A, B, E, H, I, etc?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: FILE bővítés
« Reply #85 on: 2016.October.28. 14:19:37 »
Az itt emlegetett csatornaszám változtatással frissítve.
« Last Edit: 2016.October.28. 15:06:04 by Zozosoft, Reason: bug fix :-) »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: FILE bővítés
« Reply #86 on: 2016.October.28. 14:52:57 »
Itt az EXOS 3 a 239-es csatornát próbálja bezárni. :oops: De ennek nem igazán van jelentősége, mert a START indításakor vagy HIBA esetén az ilyenkor hívott EXOS 0 (C = 20h) egyébként is bezár minden csatornát.

Code: ZiLOG Z80 Assembler
  1. LOADMODULE      LD DE,FHEADPUF
  2.                 INC A
  3.                 EXOS 29
  4.                 JR Z,LOADMODULE
  5.                 CP 238                    ;ISMERETLEN MODUL?
  6.                 JP NZ,HIBA
  7.                 INC A
  8.                 EXOS 3
  9.                 LD A,(FNAME_PUFFER)
  10.                 LD HL,STARTSTR
  11.                 LD DE,STARTPUF
  12.                 LD BC,7
  13.                 ADD A,6
  14.                 LDIR
  15.                 LD (STARTPUF),A
  16.                 LD DE,STARTPUF
  17.                 EXOS 26
  18.                 JP HIBA

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: FILE bővítés
« Reply #87 on: 2016.October.28. 15:06:45 »
De ennek nem igazán van jelentősége
Azért javítva :-)

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: FILE bővítés
« Reply #88 on: 2016.October.29. 08:51:22 »
Özsse lehetne foglalni a FILE feature-öket?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: FILE bővítés
« Reply #89 on: 2016.October.29. 10:37:23 »
Az eredeti funkcioja az, hogy programból hívva visszaadja a kiválasztott fájl nevét. (ez részletesen fent van az ep128.hu-n).
Ez lett kiegészítve, hogyha paraméter nélkül van hívva, akkor elindítja az adott programot (EXOS modul betöltés funkcióval). Ehhez jött a legutóbbi kiegészités, hogyha így nem sikerült, akkor megpróbálkozik az EPDOS START parancsával, igy BASIC programot is tud indítani (ha van EPDOS a rendszerben).
Ebböl a program indítós FILE-böl készül külön betölthető START program, amit lehet lemezekre tenni, ez van rajta a sok programos VHD-n is. A korábbi programtöltökkel szemben EXOS kompatibilis (EP64-en is megy), valamint kezeli a vinyót/SD is.
Az irányitást egészitette ki István  EnterMice egér kezeléssel, müködik a görgő is, bal gomb kiválaszt, jobb gomb CD .. (egy könyvtárral feljebb).
A hagyományos gombok fent vannak már a leirásban, oda még annyi, hogy Shift+fel/le az lapozás, ALT+fel/le lista eleje/vége.