Bypass/Disable Adam SmartWriter
by Rich and Jim Notini

SmartWriter ROM can be bypassed all together. Just have the system ignore the SmartWriter ROM and continue searching for a valid boot device on AdamNET.

It's doable, but tricky.  An ADAM cold boot does the following:

(1)  Begin execution at address $0000 in the SmartWriter ROM.  This has
the sequence DI / JMP $0080.

(2)  At $0080, code bank-switches the center-slot XROM to the upper 32K
address space and checks for the presence of the magic word $9966 at address
$8000.  If found, we JMP $8002 to run the XROM.  Otherwise, we bank-switch
back to RAM in the upper 32K, then load the EOS ROM (which sits at $6000,
above SmartWriter) it to its final location in RAM at $E000.  This ends with
a JMP _EOS_START, EOS's initialization routine.

(3)  _EOS_START is the routine that initializes ADAMnet and looks for
active devices and bootable media.  If nothing bootable is found, it
terminates in a JMP _WP (an EOS function call), which after insuring that
the SmartWriter ROM is switched into the lower 32K address space, does
the JMP $0100 to actually execute SmartWriter application code.

(4)  If you want something else to happen other than SmartWriter, you need
to have your own code running at $0100; however, you can't just replace
everything.  The SmartWriter ROM contains the patterns for all the ASCII
characters, and there is a reserved memory location $0102 that *MUST* contain
a pointer to the start of this pattern generator table.  Even if you replace
the SmartWriter app with completely different code, you *MUST* preserve
the following:

$0100:  JR  $0104
$0102:  DW  ASCII_GENERATORS    ; EOS reserved memory location LOC_IN_ALPHA
$0104:  ...                     ; other code begins here
                               ; probably JP MY_APP would be a good choice

ASCII_GENERATORS:

; 128 characters, 8 bytes each (1=pixel set, 0=pixel clear)

       DB  xx, xx, xx, xx, xx, xx, xx, xx    ; character 0
       ...
       DB  xx, xx, xx, xx, xx, xx, xx, xx    ; character 127

MY_APP:
       ...                     ; rest of user code here
                               ; could even (eventually) be SmartWriter,
                               ; if there is room

(5)  Basically you should preserve the existing contents of addresses $0000
to $00FF, and work your new code around the ASCII generators as indicated
in (4) above.  DO NOT MESS WITH EOS ROM CODE.

    I have only ever seen one ADAM running with a totally new SmartWriter
ROM, and that was Ron Collins' Mini Winnie hard drive system which booted
a version of TDOS from ROM; it would work even if the hard drive itself
was not functioning.  Tony Morehen made it for him.  It had no SmartWriter
app at all, but obeyed (4) and (5) above.

    You are more than welcome to modify the R80 SmartWriter disassembly
source, if you can, to create a new ROM boot, with or without the SmartWriter
app.  Note that the source is set up for use with the Z80ASM+ assembler by
SLR (a CP/M-based program).  Not sure how other Z80 assemblers will like
it (especially the very convenient .PHASE and .DEPHASE directives).

    *Rich* (Dr. D.)

 

 

There is another option available to you but requires some further ADAM equipment and also an Eprom burner.

First you would need a Multi-Purpose Interface Board 3 or a Parallel
Interface Board, they ones made by Micro Innovations. I am not sure if
anyone has a supply of these boards anymore, but you could check with Bob
Slopsema or Rich Clee first. As a final resort you could also check with
Terry Fowler of eColeco (buyer beware).

These boards plugged into Expansion Slot #2 inside the Memory Console and
provide numerous functions, but most important to you would be an open Eprom
Socket for the installation of an eprom which has had a program burnt to
it.... therefor the need for an eprom burner. Proms were available back in
the day with SmartBASIC, SmartDSK or ADAM's DeskTop on them and other
programs could have been used as well.

When you turned the ADAM system on with one of these boards installed the
program that was on the eprom would be loaded instead of SmartWRITER... so
basically this is what you'd be looking for.

One way or the other, you will have to burn some eproms, the hard way would
be to burn a set to replace the SmartWRITER eproms that are soldered to the
motherboard. The easier way would be to track down one of these two
expansion cards and then burn a single eprom to install in the socket of one
of these boards.

This is about as far as I can help you as my knowledge of programming is
restricted to Basic and accessing OS functions with CALLs, but at least you
know now that something else is possible and hopefully still available.

Good Luck,
Jim

 

Back to Top