home *** CD-ROM | disk | FTP | other *** search
- *:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*
- * *
- * LEGAL STUFF UP FRONT *
- * *
- * NEWBASE.ASM *
- * *
- * 1984, 1985 (c) Copyright by *
- * Gene Head *
- * 2860 NW Skyline Drive *
- * Corvallis, Oregon 97330 (503) 758-0279 *
- * *
- * All rights reserved. *
- * *
- * Released for non-commercial, private use only. *
- * Released for no-profit use only. If you make any money *
- * using this overlay or use it in your business I expect *
- * fair compensation to be mailed to the address above. *
- * *
- * I also support the DBRUN, the dBASE II run-time *
- * package for a modest fee per installation. *
- * *
- *:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*
-
- *
- *
- * * * * * * * * * * E D I T O R I A L * * * * * * * * * * * *
- * This overlay is intended for the use of licensed users of *
- * dBASE II only. If you 'own' a copy of dBASE II that you *
- * did not purchase or receive legitimately you are a thief, *
- * it is that simple. Stealing software will only drive up *
- * prices for legal users and dry up the sources of quality *
- * software products. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *
- ***********************************************************************
- *
- * PROGRAM DOCUMENTATION STUFF STARTS HERE
- *
- * PROGRAM NAME --> NEWBASEx.ASM
- *
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- * 07/20/85 <-- Last update (Added equates for version 2.43*)
- * NOTE: There is a big difference between version
- * 2.43* (notice the *) and plain 2.43.
- *
- * 04/22/85 <-- Last update (Partial support of version 2.3B restored)
- * Version 2.3B will NOT support full ZCPR operation. You
- * CAN specify a default drive where overlays will be found.
- * -Gene Head
- *
- * 03/20/85 <-- Last update (tried to fix all the ASM nesting problems)
- * ASM.COM will not consistantly recognize nested conditionals!
- * I tried to figure out all the logic to un-nest the nested
- * conditionals. Also added the ESCape key disable on all
- * supported versions. (VERSION 2.3B NO LONGER SUPPORTED)
- * -Gene Head
- *
- * 03/18/85 <-- Last update (added ESCape key disable option)
- * Added ESCape disable option so that users may
- * not abort a program file before it has time to
- * SET ESCAPE OFF. SET ESCAPE OFF should still be
- * one of the first lines in your command file.
- * -Ryan Katri
- *
- * 03/17/85 <-- Last update (added Z-80 2.43 equates)
- * Fixed a problem that ASM was having when dealing
- * with a nested IF near ZCPRFIX that caused problems
- * only when ZCPR was set FALSE.
- * -Ryan Katri
- *
- * 02/20/85 <-- Last update (added 2.43 equates for Paul Foote)
- * Skip-sign-on will no longer skip the copyright stuff.
- * Ashton-Tate went to some lengths to make sure it stayed
- * in place so I decided it must be pretty important to
- * them. However, the long list of threats and legal
- * mumbo-jumbo can be skipped.
- * -Gene Head
- *
- * 10/25/84 <-- Last update (define the label delimiter character)
- * Gary Knapp asked for this one to make labels more
- * readable. THIS_LABEL instead of the old THIS:LABEL
- * -Gene Head
- *
- * 09/21/84 <-- Last update (added PREDEFINED option)
- * Force dBASE II to execute a pre-defined command file.
- * -Gene Head
- *
- * 08/10/84 <-- Last update (added equates for Z-80 version 2.41)
- * Re-ordered these updates to reflect most recent first.
- * -Ryan Katri
- *
- * 07/25/84 <-- Last update (added version 2.41 equates)
- * Removed ELSE conditionals so this can be assembled
- * with ASM and added version 2.41 equates.
- * (Also added assembly error messages)
- * -Gene Head
- *
- * 07/23/84 <-- Last update (force command file execution)
- * Some folks want to keep un-trained users from the
- * dot-prompt. This patch will do a warm boot if a
- * valid command file was not specified when DBASE.COM
- * was executed.
- * -Gene Head
- *
- * 07/18/84 <-- Last update (skip date option installed)
- * Some folks have time and date functions available
- * and do a date and time set as part of an initiali-
- * zation command so want to skip the ENTER DATE stuff.
- * -Gene Head
- *
- * 06/20/84 <-- Last update
- * Some folks want to skip the sign-on messages.
- * -Gene Head
- *
- * 05/25/84 <-- Last update
- * Some folks run ZCPR or a ZCPR look-alike and would
- * like dBASE II to run from drive A: regardless of the
- * default drive it was executed from.
- * -Gene Head
- *
- * 05/01/84 <-- Last update
- * Moved the KEYIN cubby hole from low memory in
- * the screen defination area to high memory
- * so that INSTALL.COM does not disturb it.
- * -Gene Head
- *
- * 04/01/84 <-- Last update
- * Some folks need a way to exit a long or forever
- * DO WHILE loop from a keyboard command. (Like the
- * INKEY$ function found in most BASIC's)
- * -Gene Head
- *
- * If you happen to transport any of these features to the
- * MS-DOS version of dBASE II please let me know how you did it.
- *
- * I'm also interested in supporting 2.3 and earlier versions.
- * If you have an earlier version and want this modification
- * installed please contact me at the above address or phone.
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- * SKIPDATE:
- *
- * SKIPDATE will skip the ENTER DATE question at sign-on.
- *
- * SKIPSIGNON:
- *
- * SKIPSIGNON will skip all the sign-on stuff and go directly
- * to the dot-prompt. (To skip the sign-off message simply
- * SET CONSOLE OFF just prior to the
- * QUIT or QUIT TO command.
- *
- * SKIPOPT:
- *
- * SKIPOPT option allows a list of selected options to be
- * displayed at sign-on.
- *
- * FORCE:
- *
- * FORCE option forces a warm boot if a valid command file
- * was not specified when DBASE.COM was executed. Keeps
- * undesireables from the dot-prompt.
- *
- * PREDEFINED:
- *
- * PREDEFINED option forces dBASE II to execute a pre-defined
- * command file. This simulates an auto-start mode without
- * a submit file AND prevents command level operation.
- *
- * KEYIN:
- *
- * The KEYIN option will allow you to PEEK at the last key
- * press at the keyboard. Useful for aborting DO WHILE loops.
- *
- * PEEK(337) will hold the last key pressed.
- *
- * ESCAPE:
- *
- * Disables the ESCape (abort) function so that users may
- * not break out of a .CMD file. The problem arises even
- * with SET ESCAPE OFF, because between the time that the
- * file is being loaded and ESCAPE is SET OFF, a user could
- * hit ESCape and dBASE would recognize it and respond
- * accordingly. The ESCAPE option is available for for all
- * supported versions.
- *
- * ZCPR:
- *
- * ZCPR compatibility allows execution from the A: drive if
- * the program can't be located on the default drive.
- *
- * NOTE: This fixes only the access to the DBASEOVR.COM
- * file and NOT the DBASEMSG.TXT file. If you use
- * the on-line HELP command the DBASEMSG.TXT file
- * must be on the default drive.
- *
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * * BE SURE YOU HAVE A BACK-UP COPY OF DBASE.COM BEFORE YOU *
- * * ATTEMPT TO USE THIS OVERLAY *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- * Simply SET the proper equates, assemble this file then
- * integrate it using the following DDT commands:
- *
- * A>DDT DBASE.COM
- * DDT VERS 2.2
- * NEXT PC
- * 4D00 0100
- * -INEWBASE.HEX
- * -R
- * NEXT PC
- * 4D00 0000
- * -G0
- * A>SAVE 76 DBASE.COM OR SAVE 77 DBASE.COM if you install
- * a forced, predefined command file
- ******* Note: For Vers. 2.43* the SAVE numbers are 84 or 85 ***********
- *******************************************************************
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * * BE SURE YOU HAVE A BACK-UP COPY OF DBASE.COM BEFORE YOU *
- * * ATTEMPT TO USE THIS OVERLAY *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- * PROGRAM STUFF STARTS HERE
- *
- TRUE EQU 0FFH ;'YES'
- FALSE EQU NOT TRUE ;'NO'
- *
- *
- * INITIAL JUMP LIST
- * *****************
- *
- * To help identify supported versions I have developed the
- * following list of the jump instruction that must be found at
- * location 100H for each supported version.
- *
- * Version Jump instruction at location 100h
- * ------- ---------------------------------
- *
- * 2.3B JMP 4473
- * 2.4 JMP 46C9
- * 2.41 JMP 477A
- * 2.41Z JMP 467F
- * 2.43 JMP 49B5 * <-- ABANDONED VERSION
- * 2.43Z JMP 5200 * <-- ABANDONED VERSION
- * 2.43* JMP 4C0F
- *
- * If your version of DBASE.COM is not listed call me for help.
- *
- *
- * THE FOLLOWING ARE THE ONLY USER SELECTABLE OPTIONS IN THIS OVERLAY
- *
- * Choose ONE AND ONLY ONE of the following versions to be
- * 'TRUE'. All others MUST be 'FALSE'.
- *
- VER23B EQU FALSE ;SET TO 'TRUE' IF RUNNING VERSION 2.3B
- VER24 EQU FALSE ;SET TO 'TRUE' IF RUNNING VERSION 2.4
- VER241 EQU FALSE ;SET TO 'TRUE' IF RUNNING VERSION 2.41
- VER241Z EQU FALSE ;SET TO 'TRUE' IF RUNNING Z-80 2.41
- VER243 EQU TRUE ;SET TO 'TRUE' IF RUNNING VERSION 2.43*
- *
- * SET THE FOLLOWING EQUATES TO TRUE OR FALSE FOR YOUR ENVIRONMENT
- *
- SKIPDATE EQU TRUE ;SET TO 'TRUE' TO SKIP DATE SET AT SIGN-ON
- SKIPSIGNON EQU TRUE ;SET TO 'TRUE' TO SKIP SIGN-ON MESSAGE
- SKIPOPT EQU TRUE ;SET TO 'TRUE' TO SKIP OPTIONS AT SIGN-ON
- FORCE EQU FALSE ;SET TO 'TRUE' TO FORCE A COMMAND FILE
- KEYIN EQU TRUE ;SET TO 'TRUE' TO ALLOW KEY-IN FEATURE
- ZCPR EQU FALSE ;SET TO 'TRUE' IF RUNNING ZCPR OR LOOK-ALIKE
- PREDEFINED EQU FALSE ;SET TO 'TRUE' FOR PRE-DEFINED COMMAND FILE
- ESCAPEOFF EQU FALSE ;SET TO 'TRUE' TO DISABLE THE ESCape FUNCTION
- DEFAULT EQU 'A'-40H ;DEFAULT DRIVE IF RUNNING ZCPR
- CDELIMIT EQU ':' ; PUT YOUR FAVORITE DELIMIT CHARACTER HERE
- * ; ie. STORE 9 TO THIS:ONE can be changed
- * ; to STORE 9 TO THIS_ONE by setting this
- * ; equate to '_'
- *
- * ---> * * * NOTE: If you set PREDEFINED to TRUE then you MUST
- * ---> * * * put your command line at label COMMAND near the
- * ---> * * * end of this overlay. Currently 'MENU.CMD'
- *
- * END OF USER SELECTED EQUATES.
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
- KEYPATCH EQU 14AH ;PUT INKEY PATCH HERE FOR ALL VERSIONS
- ;TO MAINTAIN TRANSPORTABILITY. PEEK(337)
- ;ON ANY NEWBASE INSTALLATION WILL NOW
- ;RETURN THE LAST KEY PRESSED.
- IF VER23B
- * DBASE II VERSION 2.3B SIGN-ON DATE 22 FEB 1982
- BEGIN EQU 4473H ;JUMP AROUND INSTALLED PARAMETERS
- SKIP1 EQU 461AH ;SKIP DATE HOOK
- SKIP2 EQU 46AFH ;SKIP DATE DESTINATION
- DATEFIX EQU 00FEH ;DATE FIX FOR RE-ENTRY
- CONSIO EQU 39F0H ;KEYIN HOOK
- SAVE1 EQU 39DFH ;DIRECT BIOS HOOK
- MESSAGE EQU 46BBH ;FIRST BYTE OF SIGN-ON MESSAGE
- MESS1 EQU 46E1H ;NEWBASE MESSAGE HOOK
- FCB1 EQU 42F3H ;FCB1 FOR DBASEOVE.COM
- FCB2 EQU 4314H ;FCB2 FOR DBASEOVR.COM
- BUFFERS EQU 46C0H ;START OF BUFFERS
- HELLO EQU 47D0H ;HELLO MESSAGE
- DELIMIT EQU 2AE4H ;LOCATION OF DELIMIT CHARACTER
- DISABLE EQU 39AEH ;ZERO OUT FOR ESCAPE DISABLE (CPI 1BH)
- NEWREC EQU 4B00H ;ADDED RECORD FOR PREDEFINED OPTION
- ;SHOULD BE THE SAME AS NEXT LOAD
- ;WHEN DDT LOADS DBASE.COM
- ENDIF ;VER23B
-
- IF VER24
- * DBASE II VERSION 2.4 SIGN-ON DATE APRIL 1, 1983
-
- BEGIN EQU 46C9H ;JUMP AROUND INSTALLED PARAMETERS
- SKIP1 EQU 4876H ;SKIP DATE HOOK
- SKIP2 EQU 4892H ;SKIP DATE DESTINATION
- DATEFIX EQU 00FEH ;DATE FIX FOR RE-ENTRY
- CONSIO EQU 3A8AH ;KEYIN HOOK
- SAVE1 EQU 4378H ;dBASE II CUBBY-HOLE
- MESSAGE EQU 495AH ;FIRST BYTE OF SIGN-ON MESSAGE
- MESS1 EQU 46B5H ;NEWBASE MESSAGE HOOK
- FCB1 EQU 4331H ;FCB1 FOR DBASEOVE.COM
- FCB2 EQU 4352H ;FCB2 FOR DBASEOVR.COM
- XZCPR EQU 3BA6H ;ZCPR HOOK
- ZCPRRET EQU 3BA9H ;JUMP-BACK LOCATION
- BUFFERS EQU 497EH ;START OF BUFFERS
- HELLO EQU 4AE1H ;HELLO MESSAGE
- FREE EQU 44C9H ;UN-USED PROGRAM SPACE
- ENDCODE EQU 44FFH ;END OF SAFE AREA
- DELIMIT EQU 2B3BH ;LABEL DELIMITER POSITION
- DISABLE EQU 3A47H ;ZERO OUT FOR ESCAPE DISABLE (CPI 1BH)
- NEWREC EQU 4D00H ;ADDED RECORD FOR PREDEFINED OPTION
- ;SHOULD BE THE SAME AS NEXT LOAD
- ;WHEN DDT LOADS DBASE.COM
- ENDIF ;VER24
-
-
- IF VER241
- * DBASE II VERSION 2.41 SIGN-ON DATE FEBRUARY 1, 1984
-
- BEGIN EQU 477AH ;JUMP AROUND INSTALLED PARAMETERS
- SKIP1 EQU 4927H ;SKIP DATE HOOK
- SKIP2 EQU 4943H ;SKIP DATE DESTINATION
- DATEFIX EQU 00FEH ;DATE FIX FOR RE-ENTRY
- CONSIO EQU 3B25H ;KEYIN HOOK
- SAVE1 EQU 4429H ;dBASE II CUBBY-HOLE
- MESSAGE EQU 4A0BH ;FIRST BYTE OF SIGN-ON MESSAGE
- MESS1 EQU 4A58H ;NEWBASE MESSAGE HOOK
- FCB1 EQU 43E2H ;FCB1 FOR DBASEOVE.COM
- FCB2 EQU 4403H ;FCB2 FOR DBASEOVR.COM
- XZCPR EQU 3C49H ;ZCPR HOOK
- ZCPRRET EQU 3C4CH ;JUMP-BACK LOCATION
- BUFFERS EQU 4A37H ;START OF BUFFERS
- HELLO EQU 4B77H ;HELLO MESSAGE
- FREE EQU 457AH ;UN-USED PROGRAM SPACE
- ENDCODE EQU 46FFH ;END OF SAFE AREA
- DEFDRV EQU 0165H ;DEFAULT DRIVE STORAGE
- DELIMIT EQU 2B99H ;LABEL DELIMITER POSITION
- DISABLE EQU 3AE2H ;ZERO OUT FOR ESCAPE DISABLE (CPI 1BH)
- NEWREC EQU 4D00H ;ADDED RECORD FOR PREDEFINED OPTION
- ;SHOULD BE THE SAME AS NEXT LOAD
- ;WHEN DDT LOADS DBASE.COM
-
- ENDIF ;VER241
-
- IF VER241Z
- * Z-80 DBASE II VERSION 2.41 SIGN-ON DATE APRIL 1, 1983
-
- BEGIN EQU 467FH ;JUMP AROUND INSTALLED PARAMETERS
- SKIP1 EQU 482CH ;SKIP DATE HOOK
- SKIP2 EQU 4904H ;SKIP DATE DESTINATION
- DATEFIX EQU 00FEH ;DATE FIX FOR RE-ENTRY
- CONSIO EQU 3A75H ;KEYIN HOOK
- SAVE1 EQU 3A64H ;DIRECT BIOS HOOK
- MESSAGE EQU 4910H ;FIRST BYTE OF SIGN-ON MESSAGE
- MESS1 EQU 495DH ;NEWBASE MESSAGE HOOK
- FCB1 EQU 42E7H ;FCB1 FOR DBASEOVE.COM
- FCB2 EQU 4308H ;FCB2 FOR DBASEOVR.COM
- XZCPR EQU 3B90H ;ZCPR HOOK
- ZCPRRET EQU 3B93H ;JUMP-BACK LOCATION
- BUFFERS EQU 493CH ;START OF BUFFERS
- HELLO EQU 4A7CH ;HELLO MESSAGE
- FREE EQU 4480H ;UN-USED PROGRAM SPACE
- ENDCODE EQU 44FFH ;END OF SAFE AREA
- DEFDRV EQU 0165H ;DEFAULT DRIVE STORAGE
- DELIMIT EQU 2B25H ;LABEL DELIMITER POSITION
- DISABLE EQU 3A48H ;ZERO OUT FOR ESCAPE DISABLE (CPI 1BH)
- NEWREC EQU 4D00H ;ADDED RECORD FOR PREDEFINED OPTION
- ;SHOULD BE THE SAME AS NEXT LOAD
- ;WHEN DDT LOADS DBASE.COM
-
- ENDIF ;VER241Z
-
- IF VER243
- * DBASE II VERSION 2.43* SIGN-ON DATE APRIL 30, 1985
-
- BEGIN EQU 4C0FH ;JUMP AROUND INSTALLED PARAMETERS
- SKIP1 EQU 4DD6H ;SKIP DATE HOOK
- SKIP2 EQU 4DF2H ;SKIP DATE DESTINATION
- DATEFIX EQU 4941H ;DATE FIX FOR RE-ENTRY
- CONSIO EQU 3F24H ;KEYIN HOOK
- SAVE1 EQU 4867H ;dBASE II CUBBY-HOLE
- MESSAGE EQU 4EC8H ;FIRST BYTE OF SIGN-ON MESSAGE 1
- MESS1 EQU 4F1BH ;NEWBASE MESSAGE HOOK
- MESS2 EQU 5049H ;FIRST BYTE OF SIGN-ON MESSAGE 2
- FCB1 EQU 4820H ;FCB1 FOR DBASEOVE.COM
- FCB2 EQU 4841H ;FCB2 FOR DBASEOVR.COM
- XZCPR EQU 404DH ;ZCPR HOOK
- ZCPRRET EQU 4050H ;JUMP-BACK LOCATION
- BUFFERS EQU 4ECDH ;START OF BUFFERS
- HELLO EQU 5339H ;HELLO MESSAGE
- FREE EQU 4A0FH ;UN-USED PROGRAM SPACE
- ENDCODE EQU 4A7FH ;END OF SAFE AREA
- DEFDRV EQU 0165H ;DEFAULT DRIVE STORAGE
- DELIMIT EQU 2E36H ;LABEL DELIMITER POSITION
- DISABLE EQU 3ED9H ;ZERO OUT FOR ESCAPE DISABLE (CPI 1BH)
- NEWREC EQU 5480H ;ADDED RECORD FOR PREDEFINED OPTION
- ;SHOULD BE THE SAME AS NEXT LOAD
- ;WHEN DDT LOADS DBASE.COM
-
- ENDIF ;VER243*
- *
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *
- WBOOT EQU 0 ;WARM BOOT
- BDOS EQU 5 ;BDOS ENTRY
- OPEN EQU 0FH ;OPEN FILE FUNCTION
- FAILED EQU 0FFH ;DISK I-O FAILED
- *
- *
- IF CDELIMIT
- ORG DELIMIT
- DB CDELIMIT
- ENDIF
-
- IF ESCAPEOFF
- ORG DISABLE
- DB 0 ;ZERO OUT BYTE 1 (FE=CPI INSTRUCTION)
- DB 0 ;ZERO OUT BYTE 2 (1B=ASCII CODE FOR ESC)
- ENDIF ;ESCAPEOFF
-
- *
- * Patch here if either SKIPDATE or COMMAND options are true.
- * Note COMMAND option has highest priority
-
- IF SKIPDATE
- ORG SKIP1
- LXI H,0
- SHLD DATEFIX
- JMP SKIP2 ;. . . BYPASS DATE STUFF AT SIGN-ON
- ENDIF ;SKIPDATE
- * OR
- IF FORCE
- ORG SKIP1
- JMP WBOOT ;. . . FORCE A COMMAND FILE
- ENDIF ;FORCE
- *
- IF PREDEFINED
- ORG 100H
- JMP CLINE
- ENDIF ;PREDEFINED
- *
- IF SKIPSIGNON
- ORG MESSAGE
- DB 0 ;CANCEL SIGN ON MESSAGE
- ORG MESS1
- LXI H,HELLO ;NEWBASE OPTIONS MESSAGE
- ENDIF ;SKIPSIGNON
-
- IF VER243 AND SKIPSIGNON
- ORG MESS2 ;MORE TO SKIP THE SIGN-ON
- DB 0
- ENDIF ; AND SKIP SIGNON
-
- *
- * patch for new KEYIN psudo-function
- IF KEYIN
- ORG CONSIO
- JMP XKEYIN
- ENDIF ;KEYIN
-
- IF KEYIN AND (VER241Z OR VER23B)
- ORG SAVE1 ;Fix direct BIOS hook
- SHLD XKEYIN+1
- ENDIF ;KEYIN AND (VER241Z OR VER23B)
-
- *
- * FIX THE BUFFERS
- ORG BUFFERS
-
- IF VER24 OR VER241 OR VER243 OR VER23B
- SBB H ;BUMP BUFFER 1 POINTER
- ADC D ;ADD OFFSET
- XRA M ;ADJUST BY BUFFER 1 VALUE
- ENDIF ;VER24 OR VER241 OR VER243 OR VER23B
-
- IF VER241Z
- ORA H ;FIX BUFFER OFFSET IN Z-80 VERSION
- MOV E,M
- ENDIF ;VER241Z
-
- ADD H ; ... BUMP AGAIN
- ADD D ; ... AND AGAIN
- ANA M ;NOW DO BUFFER 2
- ADC D
- DB 40H,40H
- *
- IF SKIPOPT
- ORG HELLO
- DB 0
- ENDIF ;SKIPOPT
-
- IF NOT SKIPOPT
- ORG HELLO
- DB 0DH,0AH,0AH
- ENDIF ;NOT SKIPOPT
-
- IF ZCPR AND NOT SKIPOPT
- DB 'ZCPR Compatible'
- ENDIF ;ZCPR AND NOT SKIPOPT
-
- IF ZCPR AND KEYIN AND NOT SKIPOPT
- DB ' + '
- ENDIF ;ZCPR AND KEYIN AND NOT SKIPOPT
-
- IF KEYIN AND NOT SKIPOPT
- DB 'KEYIN at --> 337'
- ENDIF ;KEYIN AND NOT SKIPOPT
-
-
- IF (KEYIN OR ZCPR) AND NOT SKIPOPT
- DB 0DH,0AH,0
- ENDIF ;(KEYIN OR ZCPR) AND NOT SKIPOPT
-
- * new, added code begins here and must end before 44FFH
- *
- IF KEYIN
- XKEYIN: ORG KEYPATCH
- ENDIF ;KEYIN
-
- IF (VER24 OR VER241 OR VER243) AND KEYIN
- STA SAVE1 ;SAVE FOR dBASE.COM
- ENDIF ;(VER24 OR VER241 OR VER243) AND KEYIN
-
- IF (VER241Z OR VER23B) AND KEYIN
- CALL 0 ;PATCHED BY Z-80 DBASE II
- ENDIF ;(VER241Z OR VER23B) AND KEYIN
-
-
- IF KEYIN
- STA SAVE2 ;SAVE FOR KEYIN
- RET
- SAVE2 DS 1 ;KEYIN CUBBY-HOLE (decimal value)
- ENDIF ;KEYIN
- *
- IF ZCPR AND (NOT VER23B)
- ORG XZCPR
- JMP ZCPRFIX
-
- ORG FREE
- ZCPRFIX CPI FAILED
- JNZ ZCPRRET ;FILE OPEN OK SO RETURN
- LXI D,FCB1
- MVI A,DEFAULT ;SET UP FOR DEFAULT DRIVE
- STAX D
- STA FCB2
- ENDIF ;ZCPR AND (NOT VER23B)
-
- IF (VER241 OR VER241Z OR VER243 ) AND ZCPR
- STA DEFDRV ;DEFAULT DRIVE STORAGE
- ENDIF ;(VER241 OR VER241Z OR VER243 ) AND ZCPR
-
- IF ZCPR AND (NOT VER23B)
- MVI C,OPEN
- CALL BDOS ;TRY TO OPEN DBASEOVR.COM
- CPI FAILED ; . .ON DEFAULT DRIVE
- JNZ ZCPRRET ;GO BACK IF FOUND
- RET ;RETURN WITH ZERO SET IF
- ENDIF ;ZCPR
-
- IF ZCPR AND VER23B
- ORG FCB1
- DB DEFAULT
- ORG FCB2
- DB DEFAULT
- ENDIF
-
- BODYEND EQU $
- *
-
- IF PREDEFINED
- ORG NEWREC
- CLINE LXI H,COMMAND ;POINT TO PRE-DEFINED COMMAND LINE
- LXI D,80H ;DEFAULT COMMAND LINE BUFFER
- MOV B,M ;LENGTH OF COMMAND LINE
- CLINE1 MOV A,M
- STAX D ;MOVE IT TO BUFFER AS THO IT
- INX H ;...IT HAD BEEN ENTERED FROM
- INX D ;......THE KEYBOARD
- DCR B
- JM CLINE2
- JMP CLINE1
-
- CLINE2 LXI H,5CH
- LXI D,XFCB
- MVI B,12
- CLINE3 LDAX D
- MOV M,A
- INX H
- INX D
- DCR B
- JNZ CLINE3
- JMP BEGIN
-
- *
- * Try to keep the command line short as there isn't much room left
- * if all the options are installed.
- *
- COMMAND DB CMDEND-COMMAND
- DB 'MENU.CMD' ;<-- PUT COMMAND LINE HERE IN SINGLE
- ; . . . JUST AS YOU WOULD TYPE IT.
- CMDEND EQU $
-
- XFCB: DB '@'-40H ;<-- DRIVE '@' FOR DEFAULT DRIVE
- DB 'MENU CMD' ;<-- MUST BE 11 CHARACTERS EXACTLY
- ;<-- LIKE 'MYFILE CMD' NO PERIOD
- ;<-- JUST FILENAME OF EXACTLY EIGHT
- ;<-- CHARACTERS FOLLOWED BY THREE FILE
- ;<-- TYPE CHARACTERS.
- ENDIF ;PREDEFINED