  MODIFICATIONS MADE TO THE COMBINED DRAGON32 & ENCODER09 ROM (DRAGROM.DGN)
  =========================================================================


* THE DRAGON32 ROM NOW INCLUDES THE DRAGON64 BOOTSTRAP ROUTINE

* THE OLD DLOAD/DLOADM COMMANDS HAVE BEEN REPLACED BY A NEW COMMAND (BOOTS)
  WHICH EXECUTES THE 64K BOOTSTRAP. (REVERSE BOOTSTRAP IN D64 MODE)

* THE PCLEAR COMMAND NOW ACCEPTS PARAMETERS FROM 0 - 19

* THE CLS COMMAND NOW ACCEPTS PARAMETERS FROM 0 - 137

* THE PCLS COMMAND NOW ACCEPTS PARAMETERS FROM 0 - 255

* THE RESTORE COMMAND CAN NOW BE USED TO RESTORE TO A LINE NUMBER

* THE USR COMMAND NOW UNDERSTANDS BOTH X=USR01(X) AND X=USR1(X) 

* THE ERROR HANDLER HAS BEEN PATCHED TO FIX THE ?SN ERROR MEMORY LEAK BUG

* THE PLAY AND SOUND COMMANDS HAVE BEEN PATCHED TO FIX AUDIO/PRINTER CONFLICTS

* THE CASSETTE HANDLER HAS BEEN PATCHED TO HELP PREVENT I/O ERRORS.

* THE KEYBOARD ROUTINE HAS BEEN PATCHED TO MASK THE T3 KEYSCAN BUG

* THE KEYBOARD ROUTINE HAS BEEN PATCHED TO IMPROVE KEY DETECTION

* SERIAL PORT COMMUNICATION IS NOW CORRECTLY SUPPORTED AND CAN BE FOUND AT
  THE FOLLOWING STANDARD ADDRESSES.

  $802A      READS A BYTE FROM SERIAL PORT (JMP $BE7B)
  $802D      SENDS A BYTE TO SERIAL PORT (JMP $BE98)
  $8030      SET SERIAL PORT BAUD RATE (JMP $BEA6)

  (Moved to cartridge area $E245)

  $E245 - Reads a byte from serial port.
  $E262 - Sends a byte to serial port.
  $E270 - Select serial baud rate.

* THE SERIAL PORT BAUD RATE ROUTINE NOW SUPPORTS ALL 15 SETTINGS

* THE POWER ON RESET ROUTINE HAS BEEN PATCHED TO SPEED UP POWER ON/RESET TIME
  AND TO PREVENT CARTRIDGES FROM AUTORUNNING.

* THE PCLS ROUTINE HAS BEEN PATCHED TO INCREASE ITS EXECUTION SPEED

* ADDED KEYBOARD AUTO-REPEAT ROUTINE (EXEC&H8030 TO ENABLE/DISABLE)

* ADDED PSEUDO MULTI-TASKING CAPABILITY  (POKE &H98,&H50)

To use multi-tasking, set memory locations $0106 - $0108 to jump to the start
address of your routine and set $98 to #$50 (POKE &H98,&H50) to enable.

Set memory location $98 (POKE &H98,&H5E) to any other value (default = #$5E)
to disable multi-tasking.

-----------------------------------------------------------------------------

$DEE0 = IRQ SERVICE ROUTINE TO SUPPORT THE SERIAL PORT ACIA (RETURNS CONTROL
TO THE ORIGINAL IRQ ROUTINE AT $9D3D)

$DEE9 = IRQ SERVICE ROUTINE TO SUPPORT THE SERIAL PORT ACIA (RETURNS CONTROL
TO THE AUTO-REPEATING KEYBOARD ROUTINE AT $DEFB)

$BE7B - DRAGON 32 AUTO-REPEAT ENABLE/DISABLE ROUTINE.

$BE92 - DRAGON 32 KEYBOARD AUTO-REPEAT ROUTINE.

$FD80 - DRAGON 64 AUTO-REPEAT ENABLE/DISABLE ROUTINE.

$FD97 - DRAGON 64 KEYBOARD AUTO-REPEAT ROUTINE.

$DEFB - $DF49 = AUTO-REPEATING KEYBOARD ROUTINE   ---------------------
                                                  These routines are not
$DF50 = ENABLE AUTO-REPEAT (EXEC &HDF50)          needed with the latest
                                                  release of the ROMs.
$DF5A = ENABLE SPEEDKEY FUNCTION (EXEC &HDF5A)    
                                                  Update 9
$DF60 = DISABLE SPEEDKEY FUNCTION (EXEC &HDF60)
                                                  4th June 2002
$DF70 = DISABLE AUTO-REPEAT (EXEC &HDF70)         ----------------------

$E28F = ROUTINE TO COPY ROM TO RAM AND RESTORE ORIGINAL KEYBOARD ROUTINE

$DF85 = SAFELY SET IRQ VECTOR FROM BASIC (SET $0076 AND $0077 TO THE ADDRESS
OF A SUITABLE INTERRUPT SERVICE ROUTINE AND EXEC &HDF85)

$DFD6 = SWITCH TO 64K MODE (MAP 1) AND COPY 32K ROMS INTO RAM (EXEC &HDFD6)

$C000 = ENCODER09 ASSEMBLER/DISASSEMBLER CARTRIDGE (EXEC &HC000)

$BF49 = 64K BOOTSTRAP ROUTINE (SAME ADDRESS AS THE NORMAL DRAGON64 BOOTSTRAP)

$BECC = IDENTIFIES AND EXECUTES CARTRIDGE BASED PROGRAM (DEFAULT EXEC ADDRESS)

$A06C = RAM FILL ROUTINE (THIS ROUTINE FILLS RAM WITH THE CONTENTS OF $0076)
BASE RAM ADDRESS IS DETERMINED BY THE CONTENTS OF $00BA - $00BB. HIGHEST RAM
ADDRESS IS DETERMINED BY THE CONTENTS OF $00B7 - $00B8.

$9FCE = OLD (THIS ROUTINE CAN BE USED TO RESTORE A BASIC PROGRAM THAT HAS
INADVERTANTLY BEEN DELETED USING THE NEW COMMAND BEFORE SAVING IT TO TAPE
OR DISK PROVIDING NO OTHER BASIC PROGRAM HAS BEEN LOADED OR ANY BASIC LINES
TYPED IN AFTER THE DELETION.)

$E144 = CONTROLLED BASIC LIST ROUTINE #1

EXEC &HE0A9 to enable
POKE &H1A6,&H39 to disable
POKE &H1A6,&H7E or EXEC &HE0A9 to re-enable

Press SPACE to display each program line
Hold SHIFT and press SPACE for scrolling list (Release SHIFT to stop)
Press BREAK to end list

$E159 = CONTROLLED BASIC LIST ROUTINE #2

EXEC &HE0C6 to enable
POKE &H11D,Delay 1-8 (Default=1)
POKE &H11D,0 to disable

Press SPACE to pause or resume list
Press BREAK to end list

$E1A2 = INTERRUPT DRIVEN ON SCREEN REAL TIME CLOCK

To enable on screen clock: EXEC&HE1A2
To set hours:              POKE&H100,&H HOURS
To set minutes:            POKE&H101,&H MINUTES
To set seconds:            POKE&H102,&H SECONDS

Or use the supplied BASIC program SETTIME.CAS to set time and enable clock.

$8030 = SET SERIAL PORT BAUD RATE (SET B REGISTER TO VALUE X AND JSR $8030)

        (Moved to cartridge area $E270)

     X - VALUE       BAUD RATE

        01               50
        02               75
        03               110
        04               135
        05               150
        06               300
        07               600
        08               1200
        09               1800
        0A               2400
        0B               3600
        0C               4800
        0D               7200
        0E               9600
        0F               19200

-----------------------------------------------------------------------------
                  PATCHES MADE TO 64K MODE ROM (D64ROM2.DGN)
                  =========================================




CLS     =  AS 32K MODE
        
PCLS    =  AS 32K MODE

PCLEAR  = ACCEPTS PARAMETERS FROM 0 TO 30

RESTORE = AS 32K MODE

BOOTS   = REVERSE BOOTSTRAP TO 32K MODE

* FIXED ?SN ERROR MEMORY LEAK BUG

* AUTO-REPEATING KEYS NO LONGER ENABLED BY DEFAULT

* DEFAULT EXEC ADDRESS CHANGED TO $FD80 (TOGGLES AUTO-REPEATING KEYS ON/OFF)

* ENHANCED CURSOR BLINK ROUTINE TO FIX THE CURSOR UNDERWIPE PROBLEM ($E049) 

* THE KEYBOARD ROUTINE HAS BEEN PATCHED TO MASK THE T3 KEYSCAN BUG

* THE KEYBOARD ROUTINE HAS BEEN PATCHED TO IMPROVE KEY DETECTION

* THE PCLS ROUTINE HAS BEEN PATCHED TO INCREASE ITS EXECUTION SPEED

* ADDED PSEUDO MULTI-TASKING CAPABILITY (SEE INSTRUCTIONS FOR D32 ROM)

* ADDED KEYBOARD AUTO-REPEAT ROUTINE (EXEC&HC030 TO ENABLE/DISABLE)

* RESTORE A BASIC PROGRAM AFTER DELETION (OLD) AS 32K MODE (MOVED TO $E080)

-----------------------------------------------------------------------------


Stephen J Woolham.

TheDragon32@Hotmail.com
