READMESV.TXT -- information about SERVE72x.ASM source code for PC server
by Richard F. Drushel  drushel@apk.net  13 August 2000


(1) Source Code.

The following x86 code files are necessary to build the PC server for
ADAMserve, using Borland's Turbo Assembler, TASM.EXE (or equivalent):

    SERVE72x.ASM    ;x=A,B,C,D,E,F,G (different floppy/serial port mixes)
    DATA_31x.ASM    ;x=A,B,C,D,E,F,G
    CON_IO  .ASM    ;keyboard/screen
    FILE_IO .ASM    ;DOS filesystem
    SER_IO4 .ASM    ;low-level serial port
    BLK_IO61.ASM    ;block devices
    FDD_IO2 .ASM    ;low-level floppy disk
    CHAR_IO .ASM    ;character devices
    TOGGLE_1.ASM    ;ADAMcalc and PowerPaint toggle handlers
    SETUP_2 .ASM    ;configuration module (skeleton only)

To assemble the server, type TASM SERVE72x SERVE72x SERVE72x at the MS-DOS
prompt.  Unlike Z80ASM+, TASM.EXE creates only object files; a separate linker
program, TLINK.EXE, must be run to create the final SERVE72x.EXE application.
Thus, after running TASM.EXE, type TLINK SERVE72x.

It is unknown whether SERV72x can assemble correctly under the MASM assembler.
The source currently doesn't use any TASM-specific tricks that I know of.


(2) Limitations.

The various low-level hardware I/O routines, while perfectly acceptable in
MS-DOS, may become increasingly useless as later Windows operating systems
restrict direct hardware access, or imperfectly emulate it.  For instance,
while SERVE72x works perfectly well under Windows 98, the floppy disk I/O
code does not work under Windows NT 4.0.  Windows-specific development tools
will be necessary at some point.

The most annoying feature of ADAMserve is that the PC side is not runtime-
configurable by the user, rather relying upon special separately-assembled
code bases to change serial port or combination of disk drives.  This is
mostly due to not wanting to write a menu interface in assembler, and not
having given enough thought to how to write one in a higher-level language
(e.g., C or QuickBASIC) and linking it in with the nuts-and-bolts assembly
code.


--RFD


