Welcome, Guest. Please login or register.


Author Topic: EXOS (Read 113425 times)

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #285 on: 2019.March.04. 11:48:27 »
EXOS 1/EXOS 2
és akkor ha jól értem, szükségem lesz egy byte-nyi csatorna RAM-ra is, amiben eltárolom, hogy most írása, vagy olvasásra van-e megnyitva a csatorna, és ez alapján hajtom végre pl. a blokkírás funkciót, vagy dobok egy hibát.
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #286 on: 2019.March.04. 15:04:41 »
ha a blokkírás / olvasás implementálva van, akkor onnantól kezdve működik automaikusan a :load, :copy stb. parancs is az adott eszközre? (vagy a BASIC LOAD, SAVE?)

ill. másik kérdésem az EOF -val kapcsolatos. Maga az EEPROM 4kB-os, de ha csak pl. 1kB-nyi adat van rámentve, akkor honnét tudja majd az EXOS, hogy elérte a fájlvéget? Nyilván nekem (a saját periféria vezérlőmnek) kéne küldenie EOF hibaüzenetet, ha többet próbálunk olvasni az eszközről, mint 1kB (a példánál maradva). De ebben az esetben akkor úgy látom, nekem a fájlhosszt is le kéne menteni az EEPROM-ba, mondjuk pl. úgy, hogy azt az első két byte tartalmazná?

Fájlnevekkel, és több fájl rámentésére az EEPROM-ra nem akarok foglalkozni.
*** Speicherplatz zu klein

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXOS
« Reply #287 on: 2019.March.04. 15:19:33 »
ha a blokkírás / olvasás implementálva van, akkor onnantól kezdve működik automaikusan a :load, :copy stb. parancs is az adott eszközre? (vagy a BASIC LOAD, SAVE?)
Kell hozzá a karakterírás/olvasás is, de igen.

Quote
ill. másik kérdésem az EOF -val kapcsolatos. Maga az EEPROM 4kB-os, de ha csak pl. 1kB-nyi adat van rámentve, akkor honnét tudja majd az EXOS, hogy elérte a fájlvéget? Nyilván nekem (a saját periféria vezérlőmnek) kéne küldenie EOF hibaüzenetet, ha többet próbálunk olvasni az eszközről, mint 1kB (a példánál maradva). De ebben az esetben akkor úgy látom, nekem a fájlhosszt is le kéne menteni az EEPROM-ba, mondjuk pl. úgy, hogy azt az első két byte tartalmazná?
Így van.
Vagy csinálhatod azt, hogy nem foglalkozol a hosszal, és 4K-nál küldesz EOF-ot. Ez nagyjából csak a COPY-nál fog számítani. Ha mondjuk BASIC program van rámentve, az úgyis fejléc alapján tölt. Vagy ha más program használja, az úgyis megmondja EXOS 6-nál a szükséges méretet.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EXOS
« Reply #288 on: 2019.March.05. 12:31:12 »
A Quadrillion Full a START programmal indítva valamiért gyakran lefagy, nem tudom, ez a START hibája-e, vagy EXOS bug az 5-ös fejlécű modul betöltésénél, régebben is volt hasonló véletlenszerű fagyás EXOS 0 hívásoknál. :oops: A 100h címet mindenesetre már nem éri el.

Valahol itt lehet a bug (00h szegmens), a program indítása közben engedélyezett a megszakítás, és hibát eredményez, ha a JP 0042h után nem szerencsés időzítéssel történik megszakítás:
Code: ZiLOG Z80 Assembler
  1. .   CAD4  21 00 01     LD    HL, 0100
  2. .   CAD7  22 F8 BF     LD    (BFF8), HL
  3. .   CADA  31 17 B2     LD    SP, B217
  4. .   CADD  0E 20        LD    C, 20
  5. .   CADF  C3 3B C1     JP    C13B
  6.  
  7. .   C13B  D9           EXX
  8. .   C13C  3A FC BF     LD    A, (BFFC)
  9. .   C13F  D3 B0        OUT   (B0), A
  10. .   C141  21 AA C3     LD    HL, C3AA
  11. .   C144  11 17 B2     LD    DE, B217
  12. .   C147  01 3B 00     LD    BC, 003B
  13. .   C14A  ED B0        LDIR
  14. .   C14C  11 30 00     LD    DE, 0030
  15. .   C14F  0E 2B        LD    C, 2B
  16. .   C151  ED B0        LDIR
  17. .   C153  2A F8 BF     LD    HL, (BFF8)
  18. .   C156  E5           PUSH  HL
  19. .   C157  ED 43 F8 BF  LD    (BFF8), BC
  20. .   C15B  3E 80        LD    A, 80
  21. .   C15D  32 79 BF     LD    (BF79), A
  22. .   C160  3E 06        LD    A, 06
  23. .   C162  C2 40 CB     JP    NZ, CB40
  24. .   C165  D9           EXX
  25. .   C166  AF           XOR   A
  26. .   C167  C3 42 00     JP    0042
Talán javítaná, ha a START az EXOS 29 előtt a B4h port írásával tiltaná a megszakításokat, mivel a rendszer a portot az EXOS reset közben újra beállítja, de csak a fenti problémás részlet után.
« Last Edit: 2019.March.05. 12:34:51 by IstvanV »

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #289 on: 2019.March.07. 10:59:30 »
ROM fájlt be lehet valahogy tölteni?

Jelenleg készítem az EEPROM driver-t, ami EXOS_ROM formátumú, de teszteléshez macera lenne mindig újra égetni a flash-t az SD-kártyán.

Tudom, hogy az EPDOS-ban ott az LROM parancs, ami pont erre jó, de az EPDOS is csak ROM formában van meg (persze beégethetem azt is a 4-5 szegmensre).

A ZozoTools meg van EXT formátumban, de ott csak ROM likvidátor van, amivel csak kiírtani lehet ROM-ot, betölteni nem (vagy mégis?)
*** Speicherplatz zu klein

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXOS
« Reply #290 on: 2019.March.07. 11:40:17 »
az EPDOS is csak ROM formában van meg
Meg betölthetőben :-)

Ennek a betöltő részéből fabrikálhatsz sajátot is.

De ha csak simán betöltöd egy szegmensre, és nyomsz egy hideg resetet (C+Reset), a gyors tesztem megtalálja ROM szimulációként.

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #291 on: 2019.March.07. 13:47:14 »
De ha csak simán betöltöd egy szegmensre, és nyomsz egy hideg resetet (C+Reset), a gyors tesztem megtalálja ROM szimulációként.
Na, ez tűnik egyelőre a legegyszerűbbnek, és működik!

Kérdés:
most már működik a karakter és blokk olvasás
exos 6-tal szépen be tudok olvasni az EEPROM-ból

viszont pl. ASMON-ban a "R" paranccsal már hülyeségeket csinál, de a WP-ben is az F1-re
mi hiányzik még?
Code: [Select]
READ_BLCK:
; exos 6

        ld   a, b
        or   c
        ret  z
        push de
        in   a, (0b1h)
        ex   af, af'        ; save A
        call SET_USER_SEGMENT
        call rdChr
        ld   (de), a
        ex   af, af'        ; restore A
        out  (0b1h), a
        pop  de
        inc  de
        dec  bc
        jp   READ_BLCK
*** Speicherplatz zu klein

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXOS
« Reply #292 on: 2019.March.07. 14:13:15 »
EXOS 5 és 9 meg van?

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #293 on: 2019.March.07. 14:30:37 »
az exos 9-re mindig 0-át adok vissza a C-ben és az A-ban is
az exos 5 meg van:
Code: [Select]
; ======================================================================

READ_CHR:
; exos 5

        call rdChr
        ld   b, a
        xor  a
        ret

rdChr:  ld   a, CMD_RD_BYTE_EEPROM
        out  (port_PIC), a
        jr   $ + 2          ; wait 12T cycle
        in   a, (port_PIC)
        ret

; ======================================================================
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #294 on: 2019.March.07. 15:23:59 »
no, közben hozzáadtam EOF vizsgálatot (a file méretet is eltárolom az EEPROM első két byte-ján): WP-ben már beolvassa hibátlanul, ASMON-ban még nem az igazi...
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #295 on: 2019.March.07. 16:24:24 »
arra rájöttem már, hogy az EXOS 5 jól működik, de a EXOS 6 valamiért nem lép ki EOF hibaüzenettel, amikor eléri a fájlvéget... Úgy tűnik, akkor a WP EXOS 5-tel olvassa be a cuccot...
*** Speicherplatz zu klein

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXOS
« Reply #296 on: 2019.March.07. 16:29:13 »
EXOS 6 valamiért nem lép ki EOF hibaüzenettel, amikor eléri a fájlvéget...
Az ide betett kódodban nincs EOF vizsgálat :oops:

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #297 on: 2019.March.07. 16:31:30 »
Az ide betett kódodban nincs EOF vizsgálat :oops:
tudom, azóta változott:
hátha látod a hibát:
az IX-1 és IX-2 a fájlméret negáltját tárolja (IX-2 low byte, IX-1 high byte)
Code: [Select]
; ======================================================================

READ_CHR:
; exos 5

        ld   a, (ix-1)
        or   (ix-2)
        ld   a, 0E4h         ; End of file
        ret  z
        call rdChr
        ld   b, a
        xor  a
        ret

rdChr:  ld   a, CMD_RD_BYTE_EEPROM
        out  (port_PIC), a
        jr   $ + 2          ; wait 12T cycle
        in   a, (port_PIC)
       
        inc  (ix-2)
        ret  nz
        inc  (ix-1)
        ret

; ======================================================================

READ_BLCK:
; exos 6

        ld   a, b
        or   c
        ret  z
        ld   a, (ix-1)
        or   (ix-2)
        ld   a, 0E4h        ; End of file
        ret  z
        push de
        in   a, (0b1h)
        ex   af, af'        ; save A
        call SET_USER_SEGMENT
        call rdChr
        ld   (de), a
        ex   af, af'        ; restore A
        out  (0b1h), a
        pop  de
        inc  de
        dec  bc
        jp   READ_BLCK

; ======================================================================
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #298 on: 2019.March.07. 18:34:12 »
naaaa, rájöttem a hibára!

megcsináltam az exos 7 és 8 funkciókat is, és ott is hasonló hiba jött elő: a karakteres írás működött, de blokkírás nem igazán

aztán rájöttem, hogy azért, mert a csatorna RAM, amire az IX mutat, az a P1-en van, és én kilapozom azt blokkműveletnél!!!!

szerk: MOST MÁR MŰKÖDIK!!! COPY, LOAD, SAVE stb... minden fasza! :razz:
« Last Edit: 2019.March.07. 18:40:48 by Povi »
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: EXOS
« Reply #299 on: 2019.March.07. 20:38:22 »
egyébként ami nem világos nekem az EXOS leírásból: milyen regisztereket kell megőriznem?
az ugye világos, hogy az A-ban adok vissza hibakódot, vagy nullát. BC és DE regiszterben meg eredményt. De pl. mi van olyan hívásoknál, ahol nincs eredmény, csak az A-ban? Pl. EXOS 1 esetén? Akkor BCDE-t is elronthatom? Mi van a vesszős regiszterekkel? Azokat is megváltoztathatom?
*** Speicherplatz zu klein