; *+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+* ; *+ 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