Technical Reference
Memory Usage
Filing System
System Timing
System Board
Power Supply Board
Interface Slots
Low Level
Comms Link
Psion Link
Utility System
LZ Passwords
System Services

Technical Reference Manual






latest known driver versions



The driver software comes as a bootable device on every standard Flash Datapack and on the Flash Formatter packs.

If you have more than one Flash Datapack, they may have different driver versions.

You must install whichever version is the latest.

You see the version number when you select the 'Flash' option. (On XPs, the number is on the end of the menu.)

Note that the original flash pack driver did not display a version number.

  • If you do have different driver versions

    • install the most recent version,
    • format any Flash Datapacks which have the old version.
    • Otherwise, when you come to format the newer Datapack, the formatting process would copy the older version of the software from the older Datapack onto the newer one.
    • Be sure to backup any data from the older Datapack - perhaps to the newer one - before formatting it.
  • If you are installing a new pack
    • first note the version of your current software, then remove the software.
    • Install the software from the new pack, and note its version number.
    • It will probably be the same version, or a later one. You can now use all of your packs.
    • In the unlikely event that the new driver is an earlier version that the one from your original pack, remove the new pack, re-install previous driver and format the new pack.


The flashpack driver is is permanent, i.e. it does not get removed when On/Clear is pressed, even if the pack is no longer present.

In order to achieve this it has priority $F8 and assumes that it is the first item booted in. Anything else already booted in will be therefore removed from the device list.

To make the device permanent two alternative strategies are followed depending on whether the code is booted in the low 7K or in the PERMCELL. If it is booted in the low 7K then 'dva_bot' is set to the same as 'dva_top'. If it is booted in the PERMCELL then the base value (at $2000) is made equal to the value at $2002. To ensure that the flash driver is not booted in more than once bit 2 in 'dvt_spar' is set.

Every time the Organiser is rebooted 'FLASH' is re- inserted in the menu. This is to avoid the situation where FLASH has been deleted from the menu.

The flash driver re-vectors the following OS routines:

  • fl$renm
  • fl$writ
  • fl$eras
  • fl$copy
  • fl$deln
  • fl$bdel
  • dv$vect
  • dv$lkup
  • dv$clsr
  • pk$setp
  • pk$save


The multi-boot Flash driver allows .BIN files following the driver code to be booted in.

This is an extension to the standard Flash Driver. It requires about 500 bytes of extra code some of which will be taken out of the PERMANENT cell. For this reason it is not included in the standard driver.

The first time it boots as well as making itself permanent, it boots all the long records (02 80 type that are assumed to be .BINs) immediately after the bootable code on the pack. The second time (ie when the driver is already present) it will be boot into the PERMCELL (the existing flash driver will already take up most of the lower 7K). Once it has determined that the flash driver is already present it minimises its size and boots the following long records.

You must use 3.20 or above of BLDPACK and MAKE to utilise this feature.

WARNING: BLDPACK is unable to adjust any absolute pack addressing (used for loading overlays) in the Bins that it strings together.


Before removing the driver all other devices and their drivers must be removed by pulling out all bootable packs and devices like commslink, printer and then pressing On/Clear at the top level. This is to avoid re-revectoring problems.

Now the driver can be removed by option REMOVE in the FLASH menu.

If a device is still present the REMOVE fails with the message "BAD DEVICE CALL".


Flash Datapacks consist of either one or two Flash chips on a board with associated regulator, counters and logic. All circuitry is CMOS so reading requires very little power.

Flash Datapacks are paged and segmented. Segments control address lines A14 to A18 (16K byte blocks) and pages control lines A8 to A13 (256 byte blocks). So to get to the last byte requires the segment to be set, 63 toggles of the page and 255 toggles of the address. This will take in the order of 1 millisecond.

All Organiser models can read data from Flash Datapacks except CMs which are not able to recognise segmented packs.


Writing is done in a completely different way to ')"; onMouseout="hideddrivetip()"> EPROM s and is implemented by the driver. If the Flash driver is not present any write attempted results in a "READ ONLY PACK" error.

All Flash Datapacks have their write protect bit set to zero so that unless the Flash driver is present no writing can take place. In order that Flash Datapacks can be write protected the most significant bit of byte 8 of the header is used as the alternate write protect bit. When a pack is freshly formatted it is always 1 (ie write enabled).


Flash Datapacks can be formatted in place. To do this each byte must be written to zero and then for the one or two chips present they must commanded to erase back to FF. When doing this each byte must be checked to ensure that is has been erased properly. If not it tries another erase until either all bytes are FF or the chip is judged to have failed.

As after formatting the driver has to be copied back to the pack, there must be another flashpack (or a flash formatter pack) present otherwise DEVICE MISSING error will occur.

In Flash driver Version 1.3 and greater packs can be formatted by calling the OPL procedure FLSHFORM:("B",0) where the first parameter is the slot (B or C) and the second is whether a display is required. If the second is non-zero then the standard display is given otherwise the screen is not altered.

Formatting does consume a noticeable amount of power and it is suggested that a power supply unit is connected.


After formatting the driver has to be copied back to the pack, therefor a pack containing the driver must reside in the other slot. If no other flashpack is at hand, a ram- or datapack must be prepared to store the driver.

Flash formatter packs also provide a reliable means to update the flash driver software.

Important: After having installed the new driver by removing the old one and booting the formatter pack, make sure you format ALL (!!) of your flashpacks to avoid version conflicts!

Never use a Formatter pack if the Flashpack itself has a later version of the software!


Developer Pack's BLDPACK and MAKE are used to create the pack.

This sample .BLD file will build a formatter pack.

 FLSHFORM   16                !packname, size in kb
 FDRIVE19   BIN               !FLASH driver

The drivers size is about 7.4k, the rest of the Pack is free and may be used as usually.

Note that datapacks must be blank and unsized to receive the device boot code.

Latest known driver versions:

  • Standard Driver V1.9
  • Multiboot Driver V1.8