procedure addscore (scorevalue : integer); forward; type string80 = string[80]; string20 = string[20]; VAR plane0 : BitMap; plane2 : BitMap; plane1 : BitMap; plane3 : BitMap; ColorMap : Cmap; ScrollMap : Smap; parameter : string80; TopTenFile : file; name : array [1..20] of char; ScoreDate : string[8]; Pointshi : integer; Pointslo : integer; lines : integer; TopTenRecord : array [1..384] of byte; inserted : boolean; P : integer; Q : integer; R : integer; S : integer; i : integer; j : integer; fruitstart : integer; fruitend : integer; fruitlength : integer; fruitnr : integer; score : integer; scoreaddon : integer; scorecarry : integer; bullets : integer; bulletsmax : integer; hits : integer; PowerPill : integer; Lives : integer; nextpacman : integer; xkoordpacman : integer; ykoordpacman : integer; pacmandir : integer; nextpacmandir : integer; aggression : integer; speed : integer; speedcounter1 : integer; speedcounter2 : integer; speedloop1 : integer; speedloop2 : integer; movecount : integer; nextghost : integer; enemydir : array [2..5] of integer; xkoord : array [2..5] of integer; ykoord : array [2..5] of integer; enemyeaten : array [2..5] of boolean; horizontallines : array [0..9] of integer; verticallines : array [0..8] of integer; enemy : array [0..719] of integer; pacman : array [0..639] of integer; dots : array [1..29] of integer; digit : array [0..219] of integer; layoutenemy : array [1..675] of integer; layoutpacman : array [1..675] of integer; gethomefast : array [1..135] of integer; gethome : array [1..135] of integer; bulletsplane : array [1..34] of integer; closed : boolean; collision : boolean; fruitdisplay : boolean; scorestring : longstring; CONST black: byte=0; green: byte=1; red: byte=2; redviolet: byte=3; purple: byte=4; brown: byte=5; yellow: byte=6; white: byte=7; switch1: byte=8; switch2: byte=9; switch3: byte=10; orange: byte=11; blue: byte=12; turquoise: byte=13; burgandy: byte=14; pink: byte=15; digitwidth : integer = 8; kraftmax : integer = 700; pacmanstartx : integer = 206; pacmanstarty : integer = 99; enemystartx : integer = 140; enemystarty : integer = 99; pacmenplacex : integer = 353; mask4 : array [0..8] of integer = ( $01FF,$80FF,$C07F,$E03F,$F01F,$F80F,$FC07,$FE03,$FF01); mask5 : array [9..15] of integer = ( $FF80,$FFC0,$FFE0,$FFF0,$FFF8,$FFFC,$FFFE); mask6 : array [9..15] of integer = ( $FFFF,$7FFF,$3FFF,$1FFF,$0FFF,$07FF,$03FF); maskleft : array [0..15] of integer = ( $7FFF,$BFFF,$DFFF,$EFFF,$F7FF,$FBFF,$FDFF,$FEFF, $FF7F,$FFBF,$FFDF,$FFEF,$FFF7,$FFFB,$FFFD,$FFFE); maskright : array [0..15] of integer = ( $7FFF,$3FFF,$9FFF,$CFFF,$E7FF,$F3FF,$F9FF,$FCFF, $FE7F,$FF3F,$FF9F,$FFCF,$FFE7,$FFF3,$FFF9,$FFFC); digitarray : array [0..109] of integer = ( $00FE,$0082,$0082,$0082,$0082,$0082,$0082,$0082,$0082,$0082,$00FE, $0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002, $00FE,$0002,$0002,$0002,$0002,$00FE,$0080,$0080,$0080,$0080,$00FE, $00FE,$0002,$0002,$0002,$0002,$00FE,$0002,$0002,$0002,$0002,$00FE, $0082,$0082,$0082,$0082,$0082,$00FE,$0002,$0002,$0002,$0002,$0002, $00FE,$0080,$0080,$0080,$0080,$00FE,$0002,$0002,$0002,$0002,$00FE, $0080,$0080,$0080,$0080,$0080,$00FE,$0082,$0082,$0082,$0082,$00FE, $00FE,$0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002, $00FE,$0082,$0082,$0082,$0082,$00FE,$0082,$0082,$0082,$0082,$00FE, $00FE,$0082,$0082,$0082,$0082,$00FE,$0002,$0002,$0002,$0002,$0002); fruitarray : array [0..419] of integer = ( $0000,$0000,$0600,$0000,$0100,$0000,$0000,$0080,$0000,$0080,$0000, $0080,$0100,$00C0,$0100,$00C0,$0100,$00C0,$0300,$00E0,$0300,$00E0, $0700,$00F0,$0F00,$00F8,$0F00,$00F8,$1F00,$00FC,$1F00,$00FC,$1F00, $00FC,$1F00,$00FC,$0F00,$00F8,$0300,$00E0,$0000,$0000, $0000,$0000,$1A00,$C0DD,$7700,$007B,$0E00,$00DC,$0F00,$0078,$0300, $00F0,$0100,$00E0,$0300,$00F0,$0700,$00F8,$0700,$00F8,$0F00,$00FC, $0F00,$00FC,$0F00,$00FC,$0F00,$00FC,$0F00,$00FC,$0F00,$00FC,$0700, $00F8,$0700,$00F8,$0300,$00F0,$0100,$00E0,$0000,$0000, $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000, $0080,$0100,$00C0,$0300,$00E0,$0700,$00F0,$0700,$00F0,$0F00,$00F8, $0F00,$00F8,$0F00,$00F8,$0F00,$00F8,$0700,$00F0,$0700,$00F0,$0300, $00E0,$0100,$00C0,$0000,$0080,$0000,$0000,$0000,$0000, $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0100, $00E0,$0F00,$00FC,$3F00,$00FF,$7F00,$80FF,$7F00,$80FF,$7F00,$80FF, $7F00,$80FF,$3F00,$00FF,$3F00,$00FF,$3F00,$00FF,$1F00,$00FE,$1F00, $00FE,$0F00,$00FC,$0700,$00F8,$0100,$00E0,$0000,$0000, $0000,$0000,$0000,$0000,$0200,$0000,$0100,$0000,$0100,$0000,$0000, $0080,$0000,$0080,$0000,$0080,$0100,$00C0,$0300,$00E0,$0300,$00E0, $0700,$00F0,$0700,$00F0,$0700,$00F0,$0700,$00F0,$0700,$00F0,$0300, $00E0,$0300,$00E0,$0100,$00C0,$0000,$0000,$0000,$0000, $0000,$0000,$0000,$0000,$0000,$0080,$0000,$0040,$0000,$0040,$0000, $00E0,$0100,$00F0,$0300,$00F8,$0700,$00FC,$0700,$00FC,$0300,$00F8, $0300,$00F8,$0100,$00F0,$0100,$00F0,$0000,$00E0,$0000,$00E0,$0000, $0040,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000, $0000,$0030,$0000,$0060,$0000,$00C0,$0000,$00C0,$0000,$00C0,$0800, $0088,$1D00,$00DC,$1D00,$00DC,$2A00,$00AA,$7700,$0077,$7700,$0077, $2A00,$00AA,$1D00,$00DC,$1D00,$00DC,$0A00,$00A8,$0700,$0070,$0700, $0070,$0200,$00A0,$0100,$00C0,$0100,$00C0,$0000,$0080, $0000,$0000,$0001,$0000,$C001,$0000,$C001,$0000,$E001,$0000,$F001, $0000,$F800,$0000,$F800,$0000,$7C00,$0000,$7E00,$0000,$3F00,$0000, $1F00,$0080,$0F00,$00C0,$0700,$00E0,$0300,$00F0,$0100,$00FC,$0000, $00FF,$0000,$803F,$0000,$C00F,$0000,$0000,$0000,$0000, $0000,$0000,$0100,$00E0,$0300,$00F0,$0F00,$00FC,$3F00,$00FF,$7F00, $80FF,$7F00,$80FF,$FF00,$C0FF,$FF00,$C0FF,$FF01,$E0FF,$FF01,$E0FF, $FF01,$E0FF,$FF01,$E0FF,$FF00,$C0FF,$FF00,$C0FF,$7F00,$80FF,$7F00, $80FF,$3F00,$00FF,$0F00,$00FC,$0300,$00F0,$0000,$0000, $0000,$0000,$0000,$0000,$0000,$0006,$0000,$000C,$0000,$0018,$0000, $0030,$0000,$0060,$0000,$00C0,$0300,$00F0,$0700,$00F8,$0F00,$00FC, $0F00,$00FC,$1F00,$00FE,$1F00,$00FE,$1F00,$00FE,$0F00,$00FC,$0F00, $00FC,$0700,$00F8,$0100,$00E0,$0000,$0000,$0000,$0000); horizontallinesconst : array [0..69] of integer = ( $FEFE,$6C6A,$144C,$1854,$2EA4,$0A94,$7E54,$1484,$4A94,$FEFE, $FEFE,$5090,$D210,$4A08,$020A,$4214,$D22A,$5ACC,$52B4,$FEFE, $FEFE,$6FDC,$3CF4,$2860,$2234,$3234,$1E30,$0414,$27B4,$FEFE, $FEFE,$746C,$646C,$C652,$C392,$6204,$0FD2,$16E0,$6430,$FEFE, $FEFE,$4730,$01A8,$0720,$620A,$3A08,$14C2,$3884,$582A,$FEFE, $FEFE,$5FE4,$BA4C,$825C,$030C,$0394,$2648,$6C18,$6CA8,$FEFE, $FEFE,$3E5C,$32A0,$6140,$CA04,$171A,$18B0,$59E8,$7AB8,$FEFE); verticallinesconst : array [0..62] of integer = ( $8183,$D79D,$FBF7,$E1A9,$FDEF,$B021,$E5BF,$F3FB,$8C01, $85C1,$9E3F,$80C7,$F331,$FDED,$87CD,$9811,$E307,$84C1, $8001,$8001,$C38F,$F58F,$CDE9,$E0C7,$F6DF,$D961,$8801, $8181,$87D1,$9985,$B81F,$9D6D,$C0B1,$F00D,$C9CF,$89C1, $9005,$CC43,$BA7F,$DC4D,$81F3,$C497,$A31D,$C369,$8183, $9101,$A01B,$F3F1,$BC01,$FD77,$FC3B,$89D7,$DB63,$81CD, $A181,$C0AB,$CE5F,$97BB,$B9F1,$E467,$B707,$C20F,$81C1); (* Keyboard Routines *) type registers = record case integer of 1: (ax,bx,cx,dx,bp,si,di,ds,es,flags : integer); 2: (al,ah,bl,bh,cl,ch,dl,dh : byte); end; type F_Key_Type = ( _Help, _Do, _Compose, _PrintScreen, _Char, _F4, _nl2, _Interrupt, _nl3, _Resume, _nl4, _Cancel, _nl5, _MainScreen, _nl6, _Exit, _nl7, _AddtlnOptions, _nl8, _F17, _nl9, _F18, _nl10, _F19, _nl11, _F20, _nl12, _Find, _nl13, _InsertHere, _nl14, _Remove, _nl15, _Select, _nl16, _PrevScreen, _nl17, _NextScreen, _nl18, _UpArrow, _nl19, _DownArrow, _nl20, _RightArrow, _nl21, _LeftArrow, _nl22, _KP0, _nl23, _nl24, _KP1, _nl25, _nl26, _KP2, _nl27, _nl28, _KP3, _nl29, _nl30, _KP4, _nl31, _nl32, _KP5, _nl33, _nl34, _KP6, _nl35, _nl36, _KP7, _nl37, _nl38, _KP8, _nl39, _nl40, _KP9, _nl41, _nl42, _KPMinus, _nl43, _nl44, _KPComma, _nl45, _nl46, _KPPeriod, _nl47, _nl48, _KPEnter, _nl49, _nl50, _PF1, _nl51, _nl52, _PF2, _nl53, _nl54, _PF3, _nl55, _nl56, _PF4, _nl57, _nl58, _Break); const F_Keys : array [$0..$65] of F_Key_Type = ( _Help, _Do, _Compose, _PrintScreen, _Char, _F4, _nl2, _Interrupt, _nl3, _Resume, _nl4, _Cancel, _nl5, _MainScreen, _nl6, _Exit, _nl7, _AddtlnOptions, _nl8, _F17, _nl9, _F18, _nl10, _F19, _nl11, _F20, _nl12, _Find, _nl13, _InsertHere, _nl14, _Remove, _nl15, _Select, _nl16, _PrevScreen, _nl17, _NextScreen, _nl18, _UpArrow, _nl19, _DownArrow, _nl20, _RightArrow, _nl21, _LeftArrow, _nl22, _KP0, _nl23, _nl24, _KP1, _nl25, _nl26, _KP2, _nl27, _nl28, _KP3, _nl29, _nl30, _KP4, _nl31, _nl32, _KP5, _nl33, _nl34, _KP6, _nl35, _nl36, _KP7, _nl37, _nl38, _KP8, _nl39, _nl40, _KP9, _nl41, _nl42, _KPMinus, _nl43, _nl44, _KPComma, _nl45, _nl46, _KPPeriod, _nl47, _nl48, _KPEnter, _nl49, _nl50, _PF1, _nl51, _nl52, _PF2, _nl53, _nl54, _PF3, _nl55, _nl56, _PF4, _nl57, _nl58, _Break); type KeyType = record { Returned by ReadKbd } Chr_Key : char; { Character } Fun_Key : F_Key_Type; { Function Key Value } Ctrl_Key, { \ } Shift_Key, { > True If On } Lock_Key : boolean; { / } end; var Keystroke : keytype;