home *** CD-ROM | disk | FTP | other *** search
- ; 6-16-86 GSD added ID string for TRPATCH
- ; 5-21-86 GSD fixed bug in '83 patches
- ; 4-3-86 Gary Dickinson Advent Products, Inc.
- ;
- ; Patches to Phil Becker's FASTBACK and FASTREST programs
- ; to enable them to operate with '83 and '84 model Kaypro computers
- ;
- ; These patches have been tested on FASTBACK 1.1, FASTREST 1.1A, and
- ; FASTREST 1.1B.
- ;
- ; The patches assemble with DRI MAC assembler and are intended to be
- ; patched into either FASTBACK.COM or FASTREST.COM using DDT.
- ;
- ; This code selects the first floppy disk drive which must be a
- ; standard double sided 48 TPI disk drive.
- ;
- ; This code takes into account the differences between the following
- ; types of 8 bit Kaypro Computers:
- ;
- ; 1. '83 Kaypros (single serial port, no graphics)
- ; 2. '84 Kaypros (two serial ports, graphics)
- ; 3. Kaypro 10s (two serial ports, graphics, hard disk controller
- ; reset logic tied to floppy disk select logic.
- ;
- ;
- ; The following table relates the bit port definitions for the 3 types
- ; of Kaypro Computers:
- ;
- ; +--------+------+-------+-------+-------+-------+-------+------+------+
- ; | BIT | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
- ; +--------+------+-------+-------+-------+-------+-------+------+------+
- ; | '84/10 | BANK | (1) | DDEN* | MTRON | STRB* | SIDE* | B* | A* |
- ; +--------+------+-------+-------+-------+-------+-------+------+------+
- ; | '84 | BANK | MTRON*| DDEN* | STRB* | (2) | SIDE | B | A |
- ; +--------+------+-------+-------+-------+-------+-------+------+------+
- ;
- ; Notes:
- ; (1) This bit when read is the BUSY* status for the parallel port.
- ; This bit as an output controlls the alternate character gen-
- ; erator logic that has probably never been used.
- ; (2) This bit when read is the BUSY* status for the parallel port.
- ; * These bits are active LOW
- ;
- ;
- TRUE EQU 0ffffh
- FALSE EQU NOT TRUE
-
- K10 EQU FALSE ; set true if Kaypro 10
- K84 EQU TRUE ; set true if '84 Kaypro that is not K10
- K83 EQU FALSE ; set true if '83 Kaypro
- FBACK EQU FALSE ; set true if FASTBACK, FALSE if FASTREST
- FRVERS EQU 11BH ; FASTREST version 1.1B (11AH for version 1.1A)
-
- if FBACK ; FASTBACK.COM Version 1.1
- VMSG EQU 02C0H
- org 02d2H ; ID string
- db '1.1'
- SELDRV EQU 0E4EH
- TGLSID EQU 0E89H
- else
- if FRVERS EQ 11AH ; FASTREST.COM Version 1.1A
- VMSG EQU 02C0H
- org 02d2H ; ID string
- db '1.1a'
- SELDRV EQU 1405H
- TGLSID EQU 1435H
- endif
- if FRVERS EQ 11BH ; FASTREST.COM Version 1.1B
- VMSG EQU 02C0H
- org 02d2H ; ID string
- db '1.1b'
- SELDRV EQU 1405H
- TGLSID EQU 1438H
- endif
- endif
-
- if K84 OR K10 ; '84 and K10 port and bit addresses
-
- BITPORT EQU 014H ; bit port address
- BANK EQU 080H ; Bank select bit pattern
- DDEN EQU 020H ; Double density bit pattern
- MTRON EQU 010H ; Motor on bit
- STROBE EQU 008H ; Parallel port strobe
- SIDSEL EQU 004H ; side select bit
- BSEL EQU 002H ; B: drive select
- ASEL EQU 001H ; A: drive select
- STATE EQU DDEN OR SIDSEL OR BSEL OR ASEL ; negative true bits
-
- else ; '83 port and bit addresses
-
- BITPORT EQU 01CH ; bit port address
- BANK EQU 080H ; Bank select bit pattern
- MTRON EQU 040H ; Motor on bit
- DDEN EQU 020H ; Double density bit pattern
- STROBE EQU 010H ; Parallel port strobe
- SIDSEL EQU 004H ; side select bit
- BSEL EQU 002H ; B: drive select
- ASEL EQU 001H ; A: drive select
- STATE EQU MTRON OR DDEN ; negative true bits
- endif
-
- if K10
- BITMSK EQU 002H ; mask for hard disk reset
- else
- BITMSK EQU 000H ; no hard disk reset
- endif
-
- org VMSG ; version message
-
- if K10
- db 'Kaypro 10 Version'
- endif
- if K84
- db 'Kaypro 84 Version'
- endif
- if K83
- db 'Kaypro 83 Version'
- endif
-
- org SELDRV ; code to select floppy disk drive
-
- in BITPORT
- ani BANK OR STROBE OR BITMSK
- ori ((MTRON OR ASEL OR DDEN) XOR STATE) AND NOT BITMSK
- out BITPORT
-
-
- org TGLSID ; code to switch sides on the diskette
-
- ani SIDSEL ; isolate side select bit
- xri STATE ; correct side select polarity
- mov b,a
- in BITPORT
- ani BANK OR STROBE OR BITMSK ; preserve these bits
- ori ((MTRON OR ASEL OR DDEN) XOR STATE) AND NOT (BITMSK OR SIDSEL)
- ora b ; add back side select bit
- out BITPORT
-
- end