Welcome, Guest. Please login or register.


Author Topic: epdoc2txt (Read 1939 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
epdoc2txt
« on: 2017.January.06. 13:21:21 »
Segédprogramokról jut eszembe:
Van a Hsoft féle EPDOC (forrással együtt itt.)
Ez képest HEASS és HWP fájlokat megnyitni. De nincs benne "Save As", csak CTRL+C aztán CTRL+V szövegszerkesztőbe módszerrel lehet szövegfájlba konvertálni.
Lehetne esetleg ehelyett egy okosabb segédprogramot csinálni az ep128emu csomagba?
-lehessen szövegfájlba egyből menteni
-ASMON, FENAS, GEN, HEASS, HWP, és WP fájlokat is tudjon betölteni
-választható karakterkonverzió UK, BRD, HUN, HFONT, stb -> unicode
(-esetleg BASIC program betöltése? Lgb webes programlistázója esetleg segíthet ebben)
(-szintén esetleg: EP-s képfájlok betöltése, és PNG-be mentési lehetőség? Bár ez lehet, hogy inkább az imgconv GUI-jába lenne egyszerű berakni.)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4756
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 49.0 Firefox 49.0
    • View Profile
Re:epdoc2txt
« Reply #1 on: 2017.January.06. 13:39:24 »
-ASMON, FENAS, GEN, HEASS, HWP, és WP fájlokat is tudjon betölteni
-választható karakterkonverzió UK, BRD, HUN, HFONT, stb -> unicode
(-esetleg BASIC program betöltése? Lgb webes programlistázója esetleg segíthet ebben)

Ezekről a formátumokról és karakterkészletekről található valahol részletes dokumentáció?

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #2 on: 2017.January.06. 14:07:09 »
Itt láthatóak a karakterkészletek.
Lgb összeszedte az UNICODE kódokat is.
A 127-es karakterre nem volt akkoriban tipp, azóta az EXOS forrásból biztosan tudni, hogy ez a Rubout azaz Delete character, ami ez lehetne: "⌫   U+232B   Delete / Backspace"
A spanyol karakterekről kéne még Gflorez-t megkérdezni.

Offline lgb

  • EP addict
  • *
  • Posts: 3494
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://lgb.hu/
Re:epdoc2txt
« Reply #3 on: 2017.January.06. 14:53:01 »
Ezekről a formátumokról és karakterkészletekről található valahol részletes dokumentáció?

Szetszorva van info sok helyen, meg a forumbol, meg sajat kiserletezesekbol :-P http://epbas.lgb.hu/
Vegulis, ha letoltod, talan lathato belole egy-ket dolog, bar python-ban van. Amugy van sok hibaja a cuccnak, egyaltalan nem biztos, hogy jol mukodik :) Pl HEASS dolgoknal 1-2 file-nal eleg fura dolgokat csinalt ha jol remlik ...

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #4 on: 2017.January.06. 15:07:22 »
WP:
Code: [Select]
;   The text itself is represented as a series of lines each of which has the
; format:
; left-margin-count  (1 byte)  Top bit always set
; Line-flags         (1 byte)  Top bit always set
; Start-of-line   (1 byte)  SOL
; ASCII characters   (0 or more bytes) Always >= 20h
; end-of-line-char   (1 byte) may be - HARD-CR
;     SOFT-CR
;     end of text
;
;   The left margin count is the column number at which the first character of
; the line appears on the screen, with the top bit set to avoid confusion with
; control characters (particularly EOB).  The line flags contain certain
; information about the line, such as whether it is in a marked paragraph and
; whether it was the cursor line which a NO_PROMPT read was done on.  The top
; bit is always set to avoid confusion with control characters.
;   START-OF-LINE (SOL) is a special byte value used to indicate the start of
; a line since the left-margin-count could appear just like a valid ASCII
; character.  The end-of-line-char is a special byte value which is either a
; hard or soft CR in which case another valid line follows on in the buffer,
; or an end-of-text (EOT) character in which case this line is the last in the
; 'file'.

GAP equ 0
EOB equ 1 ;End (or start) of buffer
EOT equ 2 ;End of text
SOL equ 3 ;Start of line
HARD_CR equ 4 ;Hard carriage return
SOFT_CR equ 5 ;Soft carriage return

var $$EDIT,  08h ;Editor document file

edit_header: db 0,$$EDIT##,0,0,0,0,0,0 ;16 byte header for editor file
db 0,0,       0,0,0,0,0,0

Line-flags-ból esetleg az alsó két bit lehet érdekes, ez a kódja annak, hogy melyik színpár van használva. (alap WP színek: 0: fekete/zöld, 1:fekete/piros, 2: fehér/kék, 3: lila/világoskék, TEXT 40-ben csak az első kettő használható)
« Last Edit: 2017.January.06. 15:40:36 by Zozosoft »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #5 on: 2017.January.06. 15:24:19 »
HEA és HWP az EPDOC forrásából:
Code: [Select]
   if s = '.HEA' then begin
    BlockRead(F, Buf, 17, NumRead);
    if (NumRead = 17) and (Buf[1] = #$80) then begin
      HibaStr := 'Hibás fájltartalom';
      BlockRead(F, Buf, ord(Buf[16]) + 7, NumRead);
      repeat;
        k := 0;
        s2 := '';
        BlockRead(F, Buf, 2, NumRead);
        j := ord(Buf[0]) + ord(Buf[1]) * 256;
        if j > 0 then begin
          BlockRead(F, Buf, j - 2, NumRead);
          for i := 2 to j - 1 do begin
            c := Buf[i];
            if k = 0 then begin
              s := '';
              k := ord(c) and 127;
            end else begin
              case c of
                #$21..#$9F: s := s + KodTabla[c];
                else s := s + copy(ures, 1, (ord(c) - $9f) mod 256);
              end;
              dec(k);
            end;
            if k = 0 then
              s2 := s2 + s + #13+ #10;
          end;
        end;
        RichEdit1.Text := RichEdit1.Text + s2;
      until j = 0;
      HibaStr := '';
    end;
   end else if s = '.HWP' then begin
    BlockRead(F, Buf, 12 + 34, NumRead);
    s := '';
    for i := 0 to 9 do
      s := s + Buf[i];
    if (NumRead = 12 + 34) and (s = 'HWP.DOC 1.') then begin
      HibaStr := 'Hibás fájltartalom';
      for l := 1 to ord(buf[11]) do begin
{
HOSSZ           0=SEGEND  vagy  TEXTEND  2=ÜRES_SOR
FLAG            0-15=SORKOZ  B7=LAPVEG  B6=LAPVÉGKÉRÉS  B5=VÉGTÍLTÁS  B4=PUHACR
0-11            KARKÉSZLET
12              ALÁHÚZÁS  VÁLTÓ
13              INVERZ  VÁLTÓ
32-159          CHR
160-            PUHA  SZÓKÖZ
}
        BlockRead(F, Buf, 2, NumRead);
        j := ord(Buf[0]) + ord(Buf[1]) * 256;
        BlockRead(F, Buf, j, NumRead);
        k := 0;
        s2 := '';
        for i := 0 to j - 1 do begin
          if k = 0 then
            flag := 0;
          case flag of
            0: begin
              s := '';
              k := ord(Buf[i]);
              inc(flag);
            end;
            1: inc(flag);
            else begin
              c := Buf[i];
              case c of
                #$20..#$9F: s := s + KodTabla[c];
                #$A0..#$FF: s := s + copy(ures, 1, (ord(c) - $a0));
              end;
            end;
          end;
          dec(k);
          if k = 0 then
            s2 := s2 + s + #13+ #10;
        end;
        RichEdit1.Text := RichEdit1.Text + s2;
      end;
      HibaStr := '';
    end;
   end;

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #6 on: 2017.January.06. 16:09:47 »
ASMON és FENAS az ugyanaz a formátum:
A fájl 01h-el kezdődik (ASMON Turbo Save, vagy FENAS), vagy 02h-val (ASMON Intelligent Save). Ez utóbbi esetben további 31 bájt átugrandó (fordítási opciók).
A soremelések 0Dh-ként vannak tárolva, a 7Fh-nél nagyobb értékek pedig a tömörített szóközök: 80h=1 space, 81h=2 space, stb.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #7 on: 2017.January.06. 22:19:26 »
Még ASMON variáció (Andrew Richards SAVE.XR bővítőjével készült .ASS fájlok (ASmon Save)):
FF,BF-el kezdödik a fájl, 210h pozíción kezdődik a tömörített szöveg.
« Last Edit: 2017.January.06. 23:25:04 by Zozosoft »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #8 on: 2017.January.06. 22:28:27 »
A GEN meg sima szöveg fájl, azzal akkor nem kell foglalkozni.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #9 on: 2017.January.07. 00:05:17 »
És ha még egyet lehetne kívánni :oops: WordStar fájlok konvertálása. Azokat a bizonyos High Bit-eket kéne törölni, akkor már olvasható lenne a szöveg.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #10 on: 2017.January.07. 16:02:58 »
ASMON és FENAS az ugyanaz a formátum:
A fájl 01h-el kezdődik (ASMON Turbo Save, vagy FENAS), vagy 02h-val (ASMON Intelligent Save). Ez utóbbi esetben további 31 bájt átugrandó (fordítási opciók).
A soremelések 0Dh-ként vannak tárolva, a 7Fh-nél nagyobb értékek pedig a tömörített szóközök: 80h=1 space, 81h=2 space, stb.
Pontosítás :oops:
A 01h-s a FENAS, 02h az ASMON Intelligent Save. ASMON Turbo Save-nál nincs semmi, egyből kezdődik a tömörített adat.

GEN-nél esetleg annyit lehetne, hogy a sor első sorközét TAB-ra cserélni, hogy olvashatóbb legyen.

Itt egy adag példa fájl.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #11 on: 2017.January.07. 22:01:03 »
Eddig nem találtam hibát!

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #12 on: 2017.January.08. 18:22:56 »
Kiegészítve az ASMON formátum különböző változataival és a .WP-vel:
Én vagyok ügyetlen, vagy tényleg nem működik a karakter konvertálás WP-re? :oops:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4756
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
Re:epdoc2txt
« Reply #13 on: 2017.January.08. 18:26:28 »
Én vagyok ügyetlen, vagy tényleg nem működik a karakter konvertálás WP-re?

Az könnyen előfordulhat, hogy hibásan működik a WP konverzió, csak a save.wp-vel, illetve annak több színűre módosított változatával teszteltem, azokkal működött. :oops: Szerk.: már látom a hibát, nem konvertálja a karaktereket UTF-8-ra.
« Last Edit: 2017.January.08. 18:30:32 by IstvanV »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re:epdoc2txt
« Reply #14 on: 2017.January.08. 18:31:23 »
Az könnyen előfordulhat, hogy hibásan működik a WP konverzió, csak a save.wp-vel, illetve annak több színűre módosított változatával teszteltem, azokkal működött. :oops:
Működni, működik, csak a -hun és társai hatástalannak tűnnek :oops: (A példában a "screenshotok"-ban vannak ékezetes karakterek. Ez amúgy a Zozotools Enterpress cikk eredeti fájlja.)