The ZFile initiative is now starting once sufficient hardware is available. For more details click here.
You can download ZDOC from the ZDOC Programmers page by clicking .
You can read the ZDOC manual from the ZDOC Manual page by clicking .
ZDOC FAQ :-
This is a list of frequently asked questions about ZDOC. It should cover most queries, but mail me if you have any others. RTFM before mailing me -- i dont have a lot of time to answer a billion queries. They arent in any specific order -- just dumped in when i recv queries.
[0.0] How fast do you release ZDOC versions ?
[0.0] Varies -- depending on my mood and how much time I have. It usually takes a week between version upgrades when I have access to a machine for a minimum of 8hrs/day and no other work. This will slow down or stop to one version every month or so when i cross a decent threshold of features.
[0.1] You dont have access to a machine ?
[0.1] I dont have any machine with the exception of my PalmPro. No PC/Unix machine. I get access thru public terminals where i've installed the GNU SDK. I dont have a great deal of cash to afford a decent laptop.
[0.2] How stable is ZDOC ?
[0.2] As stable as I could make it. It doesnt crash under the 2.0 debug
ROM which is supposed to include lots of checks. As I spent a year programming
on a Irix platform i've dealt with a lot x/motif memory leaks. As a result
my memory handling routines should be stabler than most other ppls. I cant
guarantee anything though. Its not as thoroughly tested as some of my other
software and you use it at your own risk. As a general rule of thumb try
to open files which are less than 250K and do not open them unless you
have at least 2 times the file length in free RAM. i.e. if youre editing
a 100K file make sure you have 200K free ram in your pilot. (Check it via
the memory utility). This is normal for any DOC app, not just ZDOC. DOC
apps consume RAM faster than any other apps. [[Note that
this does not apply to betas/alphas/test releases..theyre as buggy
as hell.]]
[0.3] What about bugs ?
[0.3] What about them ? (heh.) I've weeded out most of em. If you find any try and fix it yourself (the code is GPLised) and mail the thing to me with all possible details of it -- i'll whack it up soon, or modify/improve it to fit in all versions of ZDOC. If i release a special test version then just mail me the bug and i'll try and fix it immediately. this applies for test versions only [ e.g. 5.x.x c ] all versions with a c extension are test releases.
[0.4] Is there a seperate programmers page for ZDOC ?
[0.4] Yup. Try this one.
[0.5] I've put a really groovy must have thingy into ZDOC. How do i release it ?
[0.5] Mail it to me with express instructions including where it fits and what it does. Mail me the version of ZDOC used (must be the most release version i.e. no alpha/beta) and i'll put it up with your name (if you would like your name there).
[0.6] Can i send you encrypted mail ? Your PGP key is on your site.
[0.6] NO. Not regarding ZDOC. I allow/use encryption for confidential mails only. Mailing me encrypted junk gets you onto my kill filter ASAP.
[0.7] I lost my data !! ZDOC wiped my system !! it crashed..etc..etc.
[0.7] Restore from hotsync. mail me OS version, what you did, what files you worked on, what files you had loaded and what versions they were, all file/database sizes. I'll try and work on it to remove the bug, but no guarantees are made. Youre using this program at your own risk. I *do* have *some* motivation to remove total loss bugs (if any occur -- ive not seen it happen yet) since i use ZDOC extensively myself. (and no.. i dont take the advice from [0.2] seriously either. i routinely use it in low memory situations, but ive never lost anything uptil now -- on the other hand i DO keep hotsyncing at every oppurtunity)
[0.8] Does ZDOC work with/compatible with any other DOC readers/writers ?
[0.8] I've always kept a freeware DOC reader on my system. Usually its Aportis DOC Mobile edition or the freeware DOC reader from Aportis. They cause no problems and ZDOC can handle bookmarks easily (i.e. right now it just ignores them).
[0.9] Why dyou keep a freeware reader on your system ?
[0.9] Just in case (heh). Acutally i prefer to work with readonly mode readers rather than a reader/writer such as ZDOC for browsing files. Its safer. For editing files I just use ZDOC. Note that ZDOC Ver2.x or below open files in ReadOnly mode and are as safe (or safer) than Aportis readers since Aportis readers add bookmarks which means they write to the file. ZDOC 2.x or below DO NOT write to the file. After Ver2.x it does...since i use Ver3.x and above this doesnt apply to me. Note that Ver4.0.5a and beyond now write to the file only when you press the save command...otherwise they open the file in readonly mode.
[1.0] How stable is the code ?
[1.0] Very. ive not seriously broken it til now. It uses PalmOS 2.x API calls only to allocate/deallocate memory and no funny stuff. It should be compatible with PalmOS 3.x too..although i dont have a palm iii so i guess i'll wait til i find someone who tries it on one.
[1.1] Are you registered with 3COM ?
[1.1] I'll try to get ZDOC PalmOS certified..no guarantees on this. I've registered ZDOC's AppId with 3COM -- it's ZURK. I've also Gremlin tested each version of ZDOC and ensured that it runs on both 2.0 and 3.0 debug ROMs. Note that the test versions of ZDOC are not gremlin tested fully..usually they are put through 1000 or so cycles and not the 1-2 million recommended. I'LL ONLY RELEASE FULL VERSIONS WHEN THEY PASS THROUGH 1 MILLION CYCLES.
[1.2] Im a newbie programmer...i wanna learn ! Cant find anything -- help !
[1.2] Mail me -- i usually help if im not too busy. it takes a while but i'll get around to replying. Note that i only help ppl who work on GPLed code and use GCC. If you use any other development engine/develop commercial/shareware code -- forget it. Mail me your website, the location of GPLised code that you have contributed to the general public and any apps (with code). If i like what i see and i think you have potential i'll reply. Very newbie newbies who havent done anything but are prepared to show intent to develop GPLised apps are also welcome. I must have your website tho, and you must be using GCC.
[1.3] How come you havent put your real name on your site ?
[1.3] I believe in my freedom to remain anonymous. That and it makes me a lot tougher to sue. As such i dont put any real names/addresses up. I guard my privacy VERY carefully. And no, i wont give it to you if you ask me either. You may email me of course. My email address is functional (zurk@geocities.com).
[1.4] Have you written/going to write any other pilot software besides ZDOC ?
[1.4] dunno. will see.
[1.5] I want ##spiffy feature #999## in ZDOC. How do i do that ?
[1.5] Mail me your specs for #999 and i'll include it if i think it interesting. otherwise i'll delete the mail. get off your lazy backside and do it yourself before mailiing me...unless youre a total newbie.
[1.6] Why does ZDOC work on only 4K at a time ?
[1.6] Until i feel a HELLUVA lot more comfortable working with big chunks
of data on a palmpilot, thats the way it stays. 4K is nice neat and simple.
And theres no problem about the OS suddenly freaking out due to too much
RAM consumption. Anyone want to patch ZDOC to work with over 4K at a time
? mail me
and try it out..if i feel its stable ill put it into the full versions.
[1.7] Does it work with PalmOS 1.x ?
[1.7] NO. thats been confirmed. Check the mail below :-
Here's the scoop, I just downloaded version 4.0.5a (which according
to you is the
new version) and tried it in CoPilot (I've had to remove the RAM file
everytime
following a crash anyway so I was already doing that). It caused
an application error
when I clicked on the open button and closed CoPilot. I went
ahead and
downloaded it to my pilot and it still hangs on the info window when
the open button
is clicked. However, this version does not generate the MemoryMgr.c
invalid handle
error so I was able to remove it without the hard reset :) (BTW
when I mentioned
that in CoPilot it was locking up, I meant it was generating an application
error and
closing out).
Jonathan Beach
CMHC Systems
Systems Support Engineer
[1.8] DOC files...what are they ? where can i get info for them from ?
[1.8] Although Aportis has not formally released the DOC specification
to the general public, heres a mail that might help :-
The database layout is pretty simple:
- record 0 is a header which contains the following:
- a short int (2 bytes) containing the
file version
(1 = uncompressed records,
2 = compressed records)
- a short int containing something unknown
and unimportant
- a long int (4 bytes) giving the total
*uncompressed* length of
the text
- a short int giving the count of text
records
- a short int giving the *uncompressed*
size of each text record
(default 4096)
- a short int containing something unknown
and unimportant
readers may add a bit more to this record
the first time they
open the file, but only the above needs
to be there when it is
created.
- records 1 - n (where n is the number of text records) each
contain
a block of text of a fixed size, normally 4096 bytes.
That is
4096 bytes *before* compression -- the actual size
of the record
will be somewhat less, because it contains the compressed
data.
However, since the uncompressed size of each record
is known, it
is easy to seek to any particular point in the file
and uncompress
one record at a time using a fixed-size buffer.
- records n+1 to the end are bookmarks. Each one contains
a 16-byte
string (null terminated, but always takes the full
16 byte area)
followed by a long int giving the seek position
of the bookmark.
The compression algorithm is too complicated for me to describe here
(as such things go it's rather simple, but it is still easier to show
with code :) so your best bet is to look at the code.
> I managed to get some make doc samples for unix and could
> probably reverse engineer them, but its irritating when the DOC standard
> is supposed to be an "open industry wide standard" (according to
the
> author of PilotDOC). I did find a few msgs which commented on the
> Micro$oft style takeover of pilotdoc by aportis but nothing else.
> Any help would be appreciated as i plan to create a few DOC apps
over the
> next month or so (GPLised of course).
If you are working with Unix, I urge you to check out my package
called "PalmPython". I don't know if you ever use Python, but
even if
you don't you ought to give it a look because I did some pretty
extensive Doc-making stuff. (I also have a simple XML-to-Doc
converter that uses it.) Python is fairly easy to read even if
you've
never used it before, provided you understand basic OOP etc.
In particular, PalmPython contains a snippet of C code to do Doc
compression and decompression, which you can probably use elsewhere.
(It's two functions and a Python-API wrapper.) If you actually
*use*
PalmPython, it contains code for reading and writing Docs as file-like
streams, complete with automatic compression and reader-style
bookmark-setting (the latter of which none of the other Doc-makers
do,
even on other platforms).
PalmPython is GPLed, so do with it what you will. (If you actually
use it for anything, please let me know, send patches and
compatibility reports, etc.)
PalmPython is available at
http://www.io.com/~rob/cq/
along with its companion XMLDoc. As I said, even if you don't use
Python, you might want to read the source and copy bits of _Doc.c.
By the way, when you mention creating "a few Doc apps", do you
perchance mean a reader? The world desperately needs an open-source
Doc reader on the Pilot -- I would do it myself, but I have made so
many failed attempts at decent Pilot programming it's not funny, and
I
have thus decided to stick to the desktop side. If you are
considering doing one, please take this as a hearty endorsement of
the
idea :-)
--Rob
--
Rob Tillotson N9MTB
[1.85] Have you got any info on DOC derivates (i.e. PDB format?)
[1.85] Heres an email which may help you :
(Note that i have been sent this email anonymously, and this is posted
for informational/interoperability purposes ONLY.
Personally i think PDB's are a sucky attempt at monopolising DOC space
(or polluting it)..the DOC format could handle
all this shit with straightforward HTML markups without the need for
all this proprietary garbage but some companies just dont
play nice..*sigh*)
Anonymous <remailer@anon.xg.nu>
Comments: This message did not originate from the Sender address
above.
It was remailed automatically by anonymizing remailer
software.
Please report problems or inappropriate use to the
remailer administrator at <abuse@anon.xg.nu>.
To: zurk@geocities.com
Subject: Peanut DOC Format
Peanut Reader Document format
Reverse-engineered by Setec Astronomy
-------------------------------------
This document describes the PDB format created by the Peanut
press MakeBook
java program. This program only generates unprotected
books, so this is the
only kind of books documented. Reverse-engineering results
are to be used for
interoperability (compatibility) purposes only, ie the
ability of creating
and viewing Peanut press documents outside of the Peanut
press company
proprietary software domain. This is necessary for competition
and thus for
consumers of electronic litterature.
During the work we found that large parts of Pat Beirnies
MakeDoc program had
been used. That is why, for example, the compression method
is exactly the
same. The main difference from standard DOCs is that pagination
is handled by
the creator program, which makes it more complex: you
have to calculate where
pages start and put in pointers to be used by the reader
program. As text
styling is reset on each new page, your program must also
parse styling tags
and place a default style for each new page in the pointer
records.
The structure of the PDB is quite straight forward:
1. An AppInfo-like PeanutRec0 before the actual data
2. Scrambled Records containing the actual text in Peanut
Markup Language
3. Page pointer record(s) for small font
4. Page pointer record(s) for large font
5. Chapters pointer records relative to the page pointer
records
IMPLEMENTATION
--------------
Words and DWords are big-endian (ie most significant byte
comes first)
your routies that read or write PDB files must always
handle this. This is
the Motorola 68k-style by the way, as opposed to the Intel
x86 style. For
details on endianess, see the FAQ for graphic files formats
at:
http://www.faqs.org/faqs/graphics/fileformats-faq/part4/
The DOC compression used in Pilot DOCs is described by
Pat Beirnie at:
http://cr945328-a.flfrd1.on.wave.home.com/Programming/PilotDoc.htm
There is an implememtation in C (txt2pdbdoc) by Paul J
Lucas at:
http://www.best.com/~pjl/software.html
For C users the following goes:
typedef unsigned char Byte;
typedef unsigned long DWord;
typedef unsigned short Word;
PeanutRec0
1 record
----------
Offset Name Type Size Content
0x00 wPacking Word 2 2 (= Packed? 1 = unpacked?)
0x02 wUndef Word 2 Verified garbage (*)
0x04 dwUndef DWord 4 Verified garbage (*)
0x08 wRecno0 Word 2 Number of records in main story
0x0A wRecno1 Word 2 # records used by small font page
pointers
0x0C wPagno1 Word 2 # pages used in small font mode
0x0E wUndef Word 2 Verified garbage (*)
0x10 cUndef char 8 Verified garbage (*)
0x18 wRecno2 Word 2 # records used by large font page
pointers
0x1A wPagno2 Word 2 # pages used in large font mode
0x1C wUndef Word 2 Verified garbage (*)
0x1E cUndef char 80 Verified garbage (*)
0x6E wRecno3 Word 2 Number of chapter records
0x70 wRecno3x Word 2 Number of chapter records (again)
0x72 wUndef Word 2 Verified garbage (*)
Sum size: 116 bytes
(*) VERFIED GARBAGE -- these fields are filled with random
numbers by
the MakeBook program from Peanut press. Note that this
program is
most likely not the same as the program used for generating
commercial
books, and a wild guess is that these fields are used
for password
(ie Credit Card number) information one way or another,
and that this
is probably invoked by changing the word at offset 0 to
something else
than 2. I haven't had the opportunity to analyze any commercial
books
from Peanut press so we cannot say.
Scrambled story records
wRecno0 records
---------------
Contains packed and scrambled story chunks in Peanut Markup
language
the chunks are 0x1000 or 4096 bytes maximum as in regular
DOCs. All
surplus carriage returns are removed from the markup file,
just the
double LF:s (0x0A) marking paragraph break is left intact.
Any ASCII
below 0x0A or above 0x7F is removed from the file. ASCII
characters
above 0x7F have to be escaped as described in the Peanut
Markup
Language definition.
The scramble algorithm is to XOR the record with 0xA5 after
packing.
To scramble: 1) Pack the record using DOC compression,
2) XOR it with 0xA5
To descramble: 1) XOR it with 0xA5,
2) Unpack using DOC compression
Sum size: varies
Page pointer records for small font:
wRecno1 records
---------------
Each chunk in this record is 14 bytes, each pointing out
where to
retrieve a page. Pages are arranged sequentially, starting
at 0x0000.
Each chunk tells you where to find this particular page.
(+)
Array of 14 byte chunks
Offset Name Type Size Content
0x00 wPage Word 2 Page number
0x02 wRecord Word 2 Record number (?)
0x04 wOffset Word 2 Offset
0x06 dwOffset DWord 4 Offset (long)
0x0A wFont Word 2 Default font for this page (-)
0x0C wStyle Word 2 Default style for this page (*)
Sum size: wPagno1 * 14 bytes
Page pointer records for large font:
wRecno2 records
---------------
Each chunk in this record is 14 bytes, each pointing out
where to
retrieve a page. Pages are arranged sequentially, starting
at 0x0000.
Each chunk tells you where to find this particular page.
(+)
Array of 14 byte chunks
Offset Name Type Size Content
0x00 wPage Word 2 Page number
0x02 wRecord Word 2 Record number (?)
0x04 wOffset Word 2 Offset
0x06 dwOffset DWord 4 Offset (long)
0x0A wFont Word 2 Default font for this page (-)
0x0C wStyle Word 2 Default style for this page (*)
Sum size: wPagno2 * 14 bytes
Chapter Records:
wRecno3 records
---------------
wPoffS and wPoffL can be multiplied by 14 to get a pointer
into the page
offsets for small and large fonts above. Used for skipping
into a certain
chapter.
Offset Name Type Size Content
0x00 wPoffS Word 2 Page offset in small font mode
0x02 wPoffL Word 2 Page offset in large font mode
0x04 cChapter char n Chapter Name String XOR:ed with 0xA5
n+1 bTerm Byte 1 String Zero Terminator (not XOR:ed)
Sum size n+6 bytes
(-) The "default font" value is:
0x0000 Normal font
0x0001 Bold font
0x0002 Large font
(+) You obviously need to know what width and height the
different
characters have in order to calculate the page space needed.
The lines
will wrap as soon as the line length > 160 points. To
calculate the
line space used, add character widths as you move along
the line (of coure
you must leave out control characters!) you must also
add an additional 4
points on each side of the line (=8 points per line) for
indented regions.
These are the character widths relative to their palm pilot
ASCII code,
with index 0x00 .. 0xFF:
CharacterWidthSmallFont[] = {
0, 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 4, 8, 6, 8,
7, 2,
4, 4, 6, 6, 3, 4, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2, 3,
6, 6, 6, 5, 8, 5, 5, 5, 6, 4, 4, 6, 6, 2, 4, 6, 5, 8,
6, 7,
5, 7, 5, 5, 6, 6, 6, 8, 6, 6, 6, 3, 5, 3, 6, 4, 3, 5,
5, 4,
5, 5, 4, 5, 5, 2, 3, 5, 2, 8, 5, 5, 5, 5, 4, 4, 4, 5,
5, 6,
6, 6, 4, 4, 2, 4, 7, 5, 5, 5, 3, 8, 5, 6, 6, 6, 4, 11,
5, 4,
8, 10, 10, 10, 10, 3, 3, 5, 5, 4, 4, 7, 7, 10, 4, 4, 8,
8, 8, 6,
2, 2, 6, 6, 8, 6, 2, 5, 4, 8, 5, 6, 6, 4, 8, 6, 5, 6,
4, 4,
3, 5, 6, 2, 4, 2, 5, 6, 8, 8, 8, 5, 5, 5, 5, 5, 5, 5,
7, 5,
4, 4, 4, 4, 3, 2, 3, 3, 7, 6, 7, 7, 7, 7, 7, 5, 8, 6,
6, 6,
6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 2, 2,
3, 3,
5, 5, 5, 5, 5, 5, 5, 6, 7, 5, 5, 5, 5, 6, 5, 6
}
CharacterWidthBoldFont[] = {
0, 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 3, 6, 10, 6, 13,
9, 3,
5, 5, 6, 6, 3, 5, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
3, 3,
6, 6, 6, 6, 10, 7, 7, 6, 7, 5, 5, 8, 8, 3, 5, 7, 6, 10,
7, 8,
7, 8, 8, 6, 7, 7, 8, 11, 7, 7, 7, 4, 6, 4, 6, 5, 4, 6,
6, 5,
6, 6, 5, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 5, 5, 6, 6,
6, 9,
6, 6, 5, 5, 3, 5, 7, 5, 6, 5, 3, 9, 5, 6, 5, 5, 4, 17,
6, 5,
10, 10, 10, 10, 10, 3, 3, 5, 5, 4, 4, 6, 7, 10, 5, 5,
10, 10, 8, 7,
2, 3, 6, 7, 8, 7, 3, 6, 4, 8, 6, 8, 6, 5, 8, 6, 5, 6,
4, 4,
4, 6, 7, 2, 4, 2, 6, 8, 9, 9, 9, 6, 7, 7, 7, 7, 7, 7,
9, 6,
5, 5, 5, 5, 3, 3, 3, 3, 8, 7, 8, 8, 8, 8, 8, 6, 8, 7,
7, 7,
7, 7, 7, 8, 6, 6, 6, 6, 6, 6, 9, 5, 6, 6, 6, 6, 3, 3,
3, 3,
6, 6, 6, 6, 6, 6, 6, 7, 8, 6, 6, 6, 6, 6, 6, 6
}
CharacterWidthLargeFont[] = {
0, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 2, 4, 9, 6, 11,
8, 2,
4, 4, 6, 8, 3, 4, 2, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2, 3,
7, 7, 7, 5, 11, 9, 6, 7, 7, 6, 6, 8, 7, 3, 4, 7, 5, 10,
7, 8,
6, 8, 6, 5, 6, 7, 7, 11, 7, 6, 5, 3, 5, 3, 6, 6, 3, 6,
7, 6,
7, 7, 4, 7, 6, 3, 3, 6, 2, 10, 7, 7, 7, 7, 4, 5, 4, 7,
6, 10,
6, 7, 6, 4, 2, 4, 7, 5, 7, 5, 3, 7, 5, 10, 6, 6, 4, 13,
5, 4,
9, 10, 10, 10, 10, 3, 3, 5, 5, 5, 6, 12, 7, 11, 5, 4,
12, 10, 8, 8,
4, 2, 6, 6, 8, 8, 2, 6, 4, 10, 5, 7, 7, 4, 10, 4, 5, 6,
5, 4,
3, 6, 6, 2, 4, 3, 5, 7, 8, 8, 8, 5, 9, 9, 9, 9, 9, 9,
9, 7,
6, 6, 6, 6, 3, 2, 3, 3, 8, 7, 8, 8, 8, 8, 8, 6, 8, 7,
7, 7,
7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 11, 6, 7, 7, 7, 7, 3, 2,
3, 3,
6, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 6, 7
}
When line length exceeds 160 points, that triggers a line
break. Line
breaks appear after spaces (0x20), dashes (0x2D) and underscores
(0x5F).
Small and bold font is 11 pixels high, while the large
font is 14 pixels
high. When a page is > 148 pixels high, it will be broken
and a new page
starts. So you have to program one or two adding routines
here. Also note
that the Page Pointers for small and large fonts must
be calculated under
respective presumption: that that font is the "default"
or "normal" font.
(*) The style is the internal format used by the peanut
reader for
translating the Peanut Markup language into a Style Word
where the
bits signify the style options:
Bit mask: Style:
0x8000 Italics
0x4000 Underlined
0x2000 Indented
0x1000 Overstrike
0x0800 Invisible
0x0002 Right justified
0x0001 Centered
Right justification and centering occurs exclusive with
normal
(left) justification, so the possible low bit values are
00,
01 and 10. Boldface is not a style, rather a special font.
(See
"default font" above.)
This documentation is free; you can redistribute it and/or
modify
it under the terms of the GNU General Public License as
published by
the Free Software Foundation; either version 2, or (at
your option)
any later version. See: ftp://prep.ai.mit.edu/pub/gnu/COPYING
Peanut Press and Peanut Reader are probably trademarks of Peanut Press.
[1.9] ZDOC crashed/machine reset ! It also left a database called ZRAM on my machine..what do i do ?
[1.9] Erase off the ZRAM database. Its a temporary database of no importance.
Be aware that if ZDOC
crashes while saving, and you have a lot of important work that should
be saved/you have no backup of
that work, ZRAM will contain the record which should have been saved.
ZRAM contains just one record,
record 0, with a text version of the field that ZDOC is currently working
on. It serves as a backup.
[2.0] Whats the tiny symbol displayed on the top right hand corner when i save to a compressed file ?
[2.0] Thatrs a replacement for the ugly status messages. A small arrow
pointing downwards is displayed on
the top right hand corner when ZDOC is ready for user input. A small
star symbol is displayed when it is
busy (usually compressing and saving text)..its equivalent to the arrow/hourglass
figure in windoze.
Note: if anyone doesnt want their mails etc posted up i'll be glad to
remove em. mail me.
All copyrights are
acknowledged.
<-EOF->