home *** CD-ROM | disk | FTP | other *** search
- ; *+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
- ; *+ Version 1 - SCREEN.CNT (Screen Control File) for PACMAN.COM/.DAT +*
- ; *+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
- ;
- ; Warning -> PACMAN.COM is for Z80 CPUs ONLY <- Warning
- ;
- ; October 2, 1982 - Kelly Smith, CP/M-Net SYSOP, (805) 527-9321
- ;
- ; Hah, Fooled you didn't I(?). Bet you thought this was going to be
- ; assembly language source for PACMAN... Sorry, but this is a file
- ; to be used as the SCREEN CONTROL file for the PACMAN.COM and
- ; PACMAN.DAT files. The original files from FOG (First Osborne
- ; User's Group) included a bunch of object code '.CNT' files that
- ; you were supposed to rename to SCREEN.CNT for your particular
- ; terminal/computer type... I thought we might get more "mileage"
- ; out of the program if I set-up one source program that could be
- ; modified to suit ANYONEs needs. Choose your 'true/false'
- ; terminal parameter switch...set to TRUE (and ONLY ONE may be
- ; TRUE), rename to 'SCREEN.CNT', assemble, load, and run PACMAN.COM
- ; (and note, that all files must be on the same 'logged-in' disk).
- ;
- ; This PACMAN program has a larger maze than the PACMAN95.COM that
- ; has appeared on many RCPM systems...it's also a little bit easier
- ; (i. e., slower) to play. I have verified it's operation on both
- ; the Osborne I (be sure and run SETUP to turn the AUTO SCROLL to
- ; OFF) and the KAYPRO II computers, and it really works nice with
- ; the cursor arrow keys (a particular challenge with the 52 column
- ; wide screen display of the Osborne I computer).
- ;
- ; Please feel free to add YOUR favorite flavor of terminal CLEAR
- ; SCREEN and CURSOR POSITION command to this program...and 'bump'
- ; the version number, add your name and date, so we can all keep
- ; track of the changes. Send any updates to either my RCPM (CP/M-
- ; Net, (805) 527-9321) or Trevor Marshall's (Technical RCPM, (805)
- ; 492-5472)...Thanks
- ;
- ;
- ;
- true equ -1 ; define true
- false equ not true; define false
- ;
- adm3 equ true ; Televideo 950/ADM-3/Osborne I/Kaypro II
- vt52 equ false ; DEC VT52
- hazel equ false ; Hazeltine
- ;
- bdos equ 5 ; CP/M-80 BDOS entry address
- tpa equ 0100h ; standard origin for CP/M-80
- ;
- ;
- ;
- org tpa
- ;
- ; clear screen subroutine
- ;
- if adm3
- mvi e,'Z'-40h ; clear screen
- endif
-
- if vt52
- mvi e,'['-40h
- mvi c,6
- call bdos
- mvi e,'H'
- mvi c,6
- call bdos
- mvi e,'['-40h
- mvi c,6
- call bdos
- mvi e,'J'
- endif
-
- if hazel
- mvi e,'~'
- mvi c,6
- call bdos
- mvi e,'\'-40h
- endif
-
- mvi c,6
- call bdos
- ret ; return from clear screen routine
- ;
- ;
- ;
- org tpa+40h ; leave plenty of room for clear screen
- ;
- ; cursor addressing subroutine
- ;
- push h ; save column and line co-ordinate pointers
- push d
-
- if adm3
- mvi e,'['-40h ; send first leadin character
- mvi c,6
- call bdos
- mvi e,'=' ; send second leadin character
- endif
-
- if vt52
- mvi e,'['-40h
- mvi c,6
- call bdos
- mvi e,'Y'
- endif
-
- if hazel
- mvi e,'~'
- mvi c,6
- call bdos
- mvi e,'Q'-40h
- endif
-
- mvi c,6
- call bdos
- pop h ; get line pointer
- mov a,m ; get line number
- adi 32 ; add offset
- mov e,a ; send line number
- mvi c,6
- call bdos
- pop h ; get column point
- mov a,m ; get column number
- adi 32 ; add offset
- mov e,a ; send column number
- mvi c,6
- call bdos
- ret ; return from cursor position routine
- ;
- ;
- ;
- org tpa+080h ; leave plenty of room for cursor routine
- ;
- ;
- ;
- end
-