Amstrad DDI-1 manual Jump Block Interception by Amsdos, Jump Block Re-Interception by the User

Page 88

5.6 Jump Block Interception - by AMSDOS

When AMSDOS is initialised it copies the relevant cassette jumpblock entries into its own data area. When DISC is selected the cassette jumpblock entries are overwritten by AMSDOS entries, when TAPE is selected the original cassette entries are restored.

Initially the disc routines are selected.

5.7 Jump Block Re-Interception - by the User

In order to intercept the jumpblock entries the following procedure should be observed: copy the three bytes from the required jumpblock entry into your own data area - do not make any assumption as to what these three bytes are. Replace the jumpblock entry with your own JMP, RST or whatever. When you receive control restore the jumpblock entry, and CALL it. When you receive control once again save the jumpblock entry and replace it with your own. This procedure will work no matter what the jumpblock entry contains.

Note: when intercepting AMSDOS routines the above procedure must be followed. Merely executing a copy of the jumpblock entry will not work; it must be restored toits original place in the jumpblock

5.8 Return Parameters

So far as it is possible the AMSDOS routines all have the same interface as their cassette counterparts, although in some cases tile interpretation of tile return parameters is different. Errors which are detected by both the cassette and disc routines are returned carry false, zero false. Errors which are only detected by the disc routines are returned carry false, zero true. This latter case corresponds to the cassette routine BREAK condition. In both cases register A contains an error number.

When a routine fails (carry false) it returns a six bit error number in the A register. Bit 7 is set it the error has already been reported to the user. The error numbers are as follows:

#0E

the file is not open as expected.

#0F

hard end of file.

#1A

soft end of file.

#20

bad command, usually caused by an incorrect filename.

#21

file already exists.

#22

file doesn't exist.

#23

directory is full

#24

disc is full.

#25

disc has been changed with files open on it.

#26

file is read-only.

AMSTRAD Disc Drive & Interface DDI-1 Manual

Chapter 5.6

Image 88
Contents Page Amstrad Disc Drive & Interface DDI-1 Amstrad Contents Contents Page Foundations 1 Setting Up Connecting the Mains LeadConnecting the DDI-1 to the Computer Computer Interface Unit Main Disc Drive Drive a Computer Foundations 2 About Discs Write ProtectionOpen Closed When Your Disc Is Indicator Lamp Eject ButtonDrive a disc missing Retry, Ignore or Cancel? Foundations Loading Software/GamesRun rolcave ROLCAVE. not foundBad command Syntax errorDrive a read fail Retry, Ignore or Cancel? Type mismatchFoundations Introducing Amsdos and CP/M Drive B disc missing Retry, Ignore or Cancel Load filenameDisc Tape.inStoring Data Onto Disc First Steps Using The CP/M DiscCpm CLS? Beware Back to AmsdosSaving a Program in Memory onto Disc Loading From Disc CatalogEXAMPLE.BAS Copying Programs From Cassette to Disc Copying Programs From Disc to DiscCopying Programs From Disc to Cassette Copying Using the CP/M System Disc Copying Using DisccopyCopying Using Copydisc Copying started Reading track 0 toWriting track 0 to Do you want to copy another disc Y/NChecking Discs AbortingDiscchk ChkdiscInstallation Amstrad Disc Drive & Interface DDI-1 Manual Backup Master Disc Making Working DiscsWorking SYSTEM/UTILITY disc Basic only discTurnkey Amstrad Basic discs DISCCOPY.COMTurnkey Basic using disc supplied Turnkey CP/M DiscsTurnkey Basic onto your Working disc Creating a Turnkey CP/M System discConfiguring the Output from the package Configuring a CP/M ProgramAmbiguous filename Confirm individual files Y/N ? Starting a Turnkey CP/M Package Configuring the Input to the packagePayroll Autostarting a Turnkey CP/M Package Amsdos Primer IntroductionAmsdos filenames and filetypes Disc DirectoryConstruction of Filenames Filenames on two drives Amsdos headersSave PROG.BAS a Save Bprog .BAS Examples of Using Amsdos Commands in a program Wild cardsSaving variables and performing a Screen Dump BERT.BAS FRED1.BAS FRED2.BAS FRED3.BAK FRED3.BAS FINISH.BASNeat CloseoutReference guide to Amsdos commands Pre-empting a Garbage CollectionWhile not EOF Wend CloseinSummary of Basic commands Summary of Amsdos external commandsSave OPENOUT, Print #9, Write #9, List #9, Closeout CATCPM DIRDisc DISC.INERA RENTape TAPE.INFile Copying procedures Copying FilesAmsdos files with headers Ascii filesFile has a header Amstrad Reference guide to Amsdos Error Messages Drive Drive disc missing Drive Drive disc is write protectedDrive Drive read fail Drive Drive write failOperating with CP/M CP/M PrimerCP/M system tracks Console control codes Configuration SectorLogging in a disc Direct Console Commands Switching default drivesDIR command ERA commandTransient commands REN commandType command Peripheral ManagementFile and disc copying Single file copyingWhole disc copiers and checkers Cassette filesSystem Management StatSetup Do you want to update your system disc Y/NStat SECRET.BAS $DIR Is this correct Y/NDisc Generation AmsdosFormat Format D Format I FormatBootgen Advanced programmingMovcpm SysgenAmstrad Disc Drive & Interface DDI-1 Manual What is Logo Introduction to LogoDr. Logo Getting StartedProcedures with parameters Repeat 4 fd 60 rtTo square Repeat 4 fd 60 rt 90 end To squareanysize side repeat 4 fd side rt 90 endUsing Variables to remember values Editing programs and proceduresCs squareanysize 100 rt 45 squareanysize To triangle Repeat 3 fd edge rt 120 endOperating hints Summary of Dr. Logo primitivesWord and List Processing AsciiChar CountEmptyp FirstFput ListArithmetic Operations Logical Operations Not ?= Logo LogoProcedures VariablesEditing Text ScreenSetsplit ShowClean Graphic ScreenType DotSetpal PalWindow Turtle Graphics WrapSeth SetpcWorkspace Management SetposErn NodesRecycle GlistGprop PlistDisc Files Dir LoadSave KEYBOARD, Joystick buttonpPaddle ?paddle 0?make key rc ?keySound EnvEnt ReleaseLabel RepeatRun StopError CatchPause ThrowSystem Properties Technical information for the user Firmware HeadersChanging Discs Store requirements Bios messages Error Messages Amsdos messages Failed to load boot sector Disc Organisation Common to ALL FormatsJump Block Re-Interception by the User Jump Block Interception by AmsdosReturn Parameters 132 #BC8C 133 #BC8F 134 #BC92 135 #BC95 #BC98 Intercepted Firmware Calls137 #BC9B Page Appendix Glossary of Terms CP/M Dr.Logo Primitives TPA Amstrad Disc Drive & Interface DDI-1 Manual Appendix Term Limitations of Remedies Amstrad Disc Drive & Interface DDI-1 Manual Appendix Index ERA Setpos