RTP Series - RTP42
RTP Series - RTP51
Reader's Clinic - AREV Runtime
@ATTACK - @PDisk.On
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
AREV Comes to Czechoslovakia Les Palenik, Cosmotron Systems
DOS Interfacing (Part II)
Reader's Clinic - Preventing Records Being Amended
How Indexes Are Updated
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
Caching in on the Frames Array - Mike Pope
SecureUser
VERBatim - V25
@ATTACK - @Files.System
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
REVMEDIA Revisted
RTP Series - RTP5
VERBatim - V22
QTIPS - Handy Compiler Options
QTIPS - Equidistant Menu Options
QTIPS - Improved Menu Help 1
QTIPS - Improved Menu Help 2
QTIPS - Securing Menus
QTIPS - Overriding Menu Colours
Utility Diskette # 3 - Part I
Menus and Menu Drivers
QTIPS - Menus Without an Action Bar
QTIPS - Comment Lines In Pulldown Menus
Overlapping Windows And Window Menus
QTIPS - Blank Menus in Windows
QTIPS - Menu Item Pre-Processing
Caching in on the Frames Array - Mike Pope
What's New (and un(der)documented!) In 2.12
Utility Diskette # 4
QTIPS - Winus
QTIPS - Calling an Action Bar from a Pulldown Menu
File Variables
LINEAR HASH FILE STRUCTURES - Part 1
QTIPS - File Handle Structure
RTP Series - RTP19
QTIPS - @Date.Format
@ATTACK - @Date.Format
QTIPS - Short Cut Implicit Formatting
Utility Diskette # 4
Playing with Scan Codes
QTIPS - Compiling Protection Code
QTIPS - Invalid Code and Command
QTIPS - Code/Command Help
Compiling 64K on a Shoestring by Blaise Wrenn (LexStat Systems Ltd)
Redefining Keys
RTP Series - RTP53B
Prompt Help
VERBatim - V124
Popups
@ATTACK - @Environ.Set
@ATTACK - @Edit.Keys
@ATTACK - @Int.Const
@ATTACK - @HW
@ATTACK - @Modal
@ATTACK - @Move.Keys
@ATTACK - @Priority.Int
@ATTACK - @Macro.Mode
Utility Diskette # 3 - Part I
Utility Diskette # 3 - Part II
Utility Diskette # 4
Utility Diskette # 3 - Part I
Utility Diskette # 3 - Part II
Utility Diskette # 4
QTIPS - Improving the LH_VERIFY Window
Reader's Clinic - Line Length > 256 Characters
QTIPS - String Space
QTIPS - String Space Format Errors
Reader's Forum - Numeric Precision in R/Basic - Hal Wyman
Reader's Clinic - Screen Width
VERBatim - V41
Utility Diskette # 3 - Part I
QTIPS - Finding/Replacing Spaces With The Editor
Utility Diskette # 4
Merge Processor
QTIPS - Using INIT.VIEW with Printers
@ATTACK - @PDisk.On
Version 2
Directory Exists on Novell
Gas Bar
Prompt Help
DOS Interfacing (Part II)
@ATTACK - @Help.Level
@ATTACK - @StatList
QTIPS - Standardising Error Message Display
Video Control
Customising the Status Line
Reader's Clinic - Naming Routines
Reader's Clinic - Prompting for Passwords
Reader's Clinic - Removing "Searching Cross References" Message
Message
Trapping Message Calls
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
QTIPS - Standardising Error Message Display
QTIPS - Interrupt Proof Error Messages
QTIPS - Improving the Message Window
Version 3 Technical Highlights - New Message Types
QTIPS - Command Line Options
Customising the Status Line
SecureUser
VERBatim - V86
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
RTP Series - RTP27
QTIPS - Printing Large Variables from the Debugger
VERBatim - V87
RTP Series - RTP25
QTIPS - Printing Large Variables from the Debugger
QTIPS - Assorted Oddments
Reader's Clinic - ReEnable TCL from Debugger
The End of the Line - Mike Pope and Hal Wyman
What's New (and un(der)documented!) In 2.12
A RevTI Techie Replies - Mike Pope - Revelation Technologies (UK) Ltd
QTIPS - Missing DICT Files
Reader's Clinic - Screen Width
Screen Grabber
Reader's Clinic - Slow Multivalued Screen Display
Utility Diskette # 4
RTP Series - RTP50
@ATTACK - @Messages
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
Caching in on the Frames Array - Mike Pope
Version 2
Utility Diskette # 4
Version 3 Technical Highlights - Customising NewApplication Creation
Form.List.S
QTIPS - Aesthetically Improving RLIST Reports
QTIPS - Form Processor
QTIPS - Suppressing Initial Form Feed
QTIPS - Using RTP29 In Place of V6
@ATTACK - @Attrbt.Ptr
@ATTACK - @Query.Table
REVMEDIA Revisited
Uncommon Knowledge - WC_Table_Exit_Mode%
QTIPS - New Catalyst Option
Version 3 Technical Highlights - Deleting Tables Programmatically
Version 3 Technical Highlights - Aliasing Tables Programmatically
Version 3 TCL Subroutines - Creating Tables
Version 3 TCL Subroutines - Deleting Tables
Version 3 TCL Subroutines - Aliasing Tables
Symbol Table Structure

RevMedia FKB

DocumentV1I10A5
TitleVersion 2
KeywordsMEMSPACE
SQL
BONDING
XLATE
DBASE
INVALID
STATUS
%FIELDS%
MAKEFILE
UNLOCK
%PROTECT.SPEC%
OCONV
MD
ANSI
TUTORIAL
INDEX
SAMPLE
FS421
TextIt is not the intention here to print a review of the new functionality
provided by the new version of AREV You will already have your own copies
and if you do not you will inevitably have read reviews about it back
documenting 2 0 until AFTER the official release) This article sets out to
describe some of the more developer oriented features of what is becoming an
increasingly more 'programmer' influenced system We will ALSO attempt to
highlight the areas to avoid until release 2 1 is WITH us (being worked on
at present)

First Impressions
The first thought on opening the manual box is "This MUST be a serious
product it looks like a Microsoft v5 1 C compiler reference book" The next
thought as you invoke the pull down menu structure is "This must be a
serious product it looks just like Microsoft Works" Whilst I am sure that
this resemblance is purely superficial it is encouraging that the product is
aligning itself more WITH Microsoft (and of course IBM's CUA) in this way

Turning to the documentation itself it has to be said that this represents
a signifiant improvement over the old version It is readable and joy of
joys abandons the old PICK style documentation format for an in house style
that provides decent examples of code and usage (Perhaps one day I'll meet
the person at RevTech who develops the Arcade games USING AREV S/He must
exist as ECHO OFF is described as being of prime use when developing games
as is another feature later in the manual) The utility diskette has been
replaced by decent printed documentation There are few mistakes of any
magnitude and most of those are picked up in the on disk documentation

Best Features
This must of course be purely subjective but I feel very strongly that one
of the most immediately useful features to the developer is the change in
the way that numbers are represented internally Thus rather than being
restricted to input/output of 4 decimals it is now possible to have up to 18
digits in the number string WITH the amount of decimals being decided by
the programmer/application up to the maximum of 18! Programmers working in
a financial environment WITH interest rates/exchange rates WITH Lira or Yen
will find this a veritable bonus

The second most immediately useful feature is the incorporation of a check
of printer status in print statements All attempts to print to a non
connected printer results in a warning message on the top line of the screen
permitting the user to retry or abort It is a shame that if abort is chosen
the program drops into the debugger rather than ABORTING This could still
be improved but is a major improvement on previous versions

The third most immediately useful feature to users coming to 2 0 FROM an
earlier release is the tutorials Abandoning the old style "read this screen
then I'll show you another one" the tutorials actually guide the user
through the SYSTEMS menus demonstrating the new features complete WITH user
interaction since they are "real" and not screen slides they do not recover
well FROM low memory situations but they do point out that this might be a
problem before the situation is encountered (Heavier use of the routine
MEMSPACE is made throughout the new version) To get up and running (and
excited) about the possibilities of the new features (especially SQL and
bonding) just run the tutorials

The fourth most immediately useful feature to new users/untrained
established users is the incorporation of a decent sample application
Finally abandoning the stance against third normal form the application
normalises invoices into a table separate FROM the customers There is
plentiful on line HELP the SOURCE code is well documented and the SOFT keys
provide useful examples of things which can be DONE

Finally FROM an aesthetic perspective the new WINDOW shadowing and pulldown
menus cannot be overlooked There are many features making life easier for
the developer such as multiline comments in programs (like C) lower case
variables/statements/functions and new ERROR handling routines For the
most part these are well documented so will not be mentioned here

The features that will become more and more useful WITH TIME are legion It
is for EXAMPLE so pleasurable to EXECUTE your first RELATIONAL join using
SQL For an EXAMPLE see the sample application invoice PROCESSING Shift
F3 Note that it displays information FROM the customer and invoice file
WITHOUT XLATES SQL is undoubtedly the biggest gift we have received from
RevTech for quite some time Not only does it enable us to become familiar
with the industry standard "in the comfort of your own homes" it provides
the BASE upon which the strategy of the future the SQL SERVER can be based

The whole approach of separating the FILE i/o layer FROM the application
layer has been refined to an at times almost confusing LEVEL However it
allows immediate benefits to be reaped the most obvious being the fact that
test running WINDOWS now no longer updates the proper DATA file unless
prompted This is necessary when prototyping on a live DBASE system!

The attention to detail displayed in the whole conceptual structure of this
new product is phenomenal I can only applaud the braveness of the vision

Worst Features
Unfortunately the complexity of the product is its own worst enemy WITH the
best will in the world bugs will remain at release DATE Few of these are
lethal We list below the worst/most annoying

Program code of > 34K no longer compiles The PROCESS that previously
stripped out comments and white SPACE no longer exists and code that
previously compiled correctly under version 1 15 may need to be slightly
rewritten to COMPILE under 2 0

The INVALID Code and COMMAND now resets STATUS() to 0 if used so if you use
a system PATTERN match and REPLACE the cryptic system message WITH your own
HL the EDIT pattern will fail your message will be displayed and then the
user will be allowed to continue WITH the erroneous data accepted into the
prompt You must RESET STATUS() to 3 if you use this feature

1 15 allows a null key This has been used in the past by programmers to
provide a hidden record in the DICTIONARY of FILES 2 0 no longer permits a
null key to be entered onto the dictionary but if upgrading FROM 1 15 it
will not remove it This then becomes a MAJOR problem When one Shift F2s in
indicate that there are no columns to CHOOSE FROM This seems to be because
the assistant reads in %FIELDS% and reads the dictionary NAMES UNTIL the
next dictionary NAME is null As null sorts before everything else the
first name encountered in %FIELDS% will be null and no columns will be
returned In itself this is a minor inconvenience A major inconvenience is
that as the new FILING system does not permit a null key it rejects
attempts to DELETE the record FROM the dictionary and hangs Pressing Escape
informs you that you have a physical error trying to operate on the file
The only way to remove the null key is to CREATE a temporary file and remove
the INDEXING FROM the original file Then WRITE a program to SELECT the
dictionary items FROM the old file and COPY across those not having a key of
null or beginning WITH "%" to the dictionary of the new file Once this has
been run DELETE DICT of the old file MAKEFILE DICT of the old file and
copy the saved dictionary items back Finally add the INDEXES back on and
rebuild them This is both time consuming and annoying

Under 1 15 it was possible to relationally index a file back to itself This
was a very useful feature permitting the establishing of hierarchical
structures within files (employee to superior children to parents etc) Any
attempt to implement this in 2 0 results in a system hanging until the
Escape key is pressed whereupon the system generates a FS421 message and
returns to the dictionary item/indexing menu At this point it has not
unlocked the file and an EVAL UNLOCK ALL is required to continue work The
problem seems to be the indexing logic not recognising its own LOCK on the
file being indexed Thus it locks the file to add the first index tries to
lock it to add the second is unable and hangs It has not yet been proved
possible to get around this problem

There are naturally many more minor bugs not worth mentioning here (for
example the "Update All Indexes" option does not ignore %PROTECT SPEC% in
the dictionary of the file and thus generates an error message for this when
running) but they will doubtless be rectified in the NEXT maintenance
release of the software

SQL whilst incredibly attractive to demonstrate to Clients (especially doing
a relational join across AREV and dBASE files) has several bugs The worst
that has been encountered thus far WITH interactive SQL is the OCONV bug If
querying against a FIELD containing data WITH an MD2 CONVERSION the query
comparator must be entered in internal format rather than EXTERNAL Thus to
get records WITH amount > 10 000 one would be forced to use WHERE AMOUNT >
1000000 This does NOT apply if the data has been TYPEd as dollar in which
case the conversion is applied to the data before it is returned FROM the
filing system (Another gripe here why only dollars?) The imbedded SQL
also suffers FROM bugs when dealing WITH extended SQL syntax The treatment
of NULL ALSO gives some cause for alarm AREV SQL cannot yet be said to be
ANSI compliant

Conclusions
This is undoubtedly a major STEP forward for Advanced Revelation The
product is gaining a maturity in the marketplace surpassing that of all its
rivals If you are developing in AREV and have the spare capacity on your
machine you should upgrade If however you are thinking of starting a
mission critical/time critical application or converting over an existing
application perhaps waiting a month or so for Release 2 1 would be more
prudent


(Volume 1 Issue 10 Pages 5 7)
[revmedia/copyrigh.htm]

Page last modified: 17/02/03