[Coco] Pokes
Diego Barizo
diegoba at adinet.com.uy
Tue Apr 5 20:51:34 EDT 2005
Here are "some" pokes that I've collected.
I haven't tested them all, and some coco1/2 won't work on a CoCo 3
Hope this helps
Diego
* POKE 65497,0 on Coco 1 and 2
double speed of RAM and ROM. It will cause your screen to fill
with garbage, and sometimes causes memory to disappear. Printer, disk
and cassette functions won't work.
* POKE 65497,0 on Coco 3
double speed of RAM and ROM. Printer, disk and cassette
functions won't work.
* POKE 65496,0
puts machine from double speed ROM and RAM back to normal speed.
* POKE 65495,0
doubles speed of ROMs; Basic programs by 1 and a half. Does
not work with all computers, or with disk, cassette or printer operations.
* POKE 65494,0
puts ROMs and Basic back to normal speed. Cassette, printer
and disk works normally.
* POKE 65315,54
disables cartridge takeover, allows you to put in a Rompack
without it starting up. NOTE: the use of this poke to put in a cartridge
with the machine power on can cause damage to your computer. It's use is
not recommended.
* ?PEEK(487)*256+PEEK(488)
start address of last machine language program loaded off of
cassette
* ?PEEK(126)*256+PEEK(127)
end address of last machine language program loaded off of
cassette
* To put a 64K Coco into all RAM mode, where the ROM can be modified:
RESTORE: FOR I=3584 TO 3584+24:READ A:POKE I,A:NEXT:EXEC 3584:
DATA 26,80,142,128,0, 166,132,183,255,223,167,128,
140,224,0,39,5,183,255,222,32, 239,28,175,57
POKE &HADEB,57
POKE &HD8A0,65 2nd side of drive 0 as drive 3
POKE &H95C9, &H57: POKE &HFF22, &H50 Coco 3 Green border
POKE &H95C9, &H17: POKE &HFF22, &150 coco 3 Black border
FOR X = 442368 TO 446225: POKE X,32: NEXT Forces lowercase on 32-column
mode on the CoCo 3
POKE 149,4:POKE 150,88 Sets printer baud to 50
POKE 149,2:POKE 150,227 Sets printer baud to 75
POKE 149,1:POKE 150,246 Sets printer baud to 110
POKE 149,1:POKE 150,153 Sets printer baud to 134.5
POKE 149,1:POKE 150,110 Sets printer baud to 150
POKE 149,0:POKE 150,180 Sets printer baud to 300
POKE 149,0:POKE 150,87 Sets printer baud to 600
POKE 149,0:POKE 150,40 Sets printer baud to 1200
POKE 149,0:POKE 150,25 Sets printer baud to 1800
POKE 149,0:POKE 150,23 Sets printer baud to 2000
POKE 149,0:POKE 150,18 Sets printer baud to 2400
POKE 149,0:POKE 150,10 Sets printer baud to 3600
POKE 149,0:POKE 150,7 Sets printer baud to 4800
POKE 149,0:POKE 150,3 Sets printer baud to 7200
POKE 149,0:POKE 150,1 Sets printer baud to 9600
POKE 155,X (16,32,64,132,255) Sets printer width to X
POKE 111,254:DIR sends directory to printer
PEEK(65314) returns an even number if printer is on / odd if off
POKE 41382,188 generates a blinking cursor
POKE 41923,0 disables break key on INPUT/LINEINPUT, must be in all RAM
POKE 41923,3 restores break key operation, must be in all RAM
PEEK(25)*256+PEEK(26) basic program start address
PEEK(106) comma column width
PEEK(116) 127=32k computer, 63=64k computer
PEEK(170) 0 if trace flag on
PEEK(148) current cursor color, 1-11
PEEK(182) current PMODE, ECB only
PEEK(188) 14=disk system, 6=cassette system
PEEK(230) DLOAD baud rate
PEEK(282) 0 if in lowercase mode
PEEK(32768) 69=ECB computer
POKE 359,57 keeps the computer on the last SCREEN command
used, until another SCREEN command is used.
example: it will stay on the high-res screen
SCREEN 1,1 until SCREEN 0,1 is typed in
POKE 25,6:NEW PCLEAR 0 in extended Basic
POKE 25,14:POKE 3584,0:NEW Pclear 0 in Disk Extended Basic
POKE 65314,8 does a SCREEN 0,1 without Extended Basic
POKE 65314,0 does a SCREEN 0,0 without Extended Basic
POKE 178,X when put before graphics commands in Extended
Basic (Except PCLS) it will create different
colours and patterns.
POKE 186,X if X is an even number from 2 to 128, it will
move the pointer to the start of the Hi-res
screen, and allows viewing in 1/2 pages
POKE 45,0:POKE 46,0 disables the CONT function after BREAK
POKE 113,0 cold start when RESET is pressed
POKE 113,85 regular restart after POKE 113,0
POKE 148,0 stops flashing cursor for 3 seconds
POKE 175,79 same as TRON, ECB only
POKE 280,PEEK(275) true random numbers
POKE 282,0 enable lowercase
POKE 282,255 enable uppercase
POKE 283,X slows keyboard response, X=speed, 1 is fastest
POKE 283,4 normal keyboard response
POKE 293,0 disable ECB and CB commands
POKE 293,20 reverses POKE 293,0
POKE 65313,0 motor on
POKE 65313,52 motor off
-----------------------------------------------------------------------------------
From Stuart Wyss-Gallifent, swyss at voicenet.com www.voicenet.com/~swyss
-----------------------------------------------------------------------------------
***** SPECIAL!!!! PATCHES AND BUG-FIXES TO THE COCO 3 ROMS !!!! *****
POKE 62861,189:POKE 62862,244 fixes the HDRAW bug
POKE &HE649,&H10 fixes the RGB and BMP
commands
POKE 55180,18:POKE 55181,18:POKE 55182,18 turns of disk drive moter
faster
POKE 38543,33:POKE 38563,33 fixes PCLEAR 0 error. Now you can
PCLEAR 0 and get 28941
bytes of free
MEM!!
POKE &HF670,18:POKE &HF671,18 prevents a WIDTH command from
clearing
the screen
POKE &HA1C1,&H39:FOR F=&HA1CA to &HA1C1
STEP -1:READA:POKE F,A:NEXT F:DATA 121,39,
72,67,0,255,182,2,255,127 put as the first line of
your program
it will speed up your
computer by about
15%!! It patches the
keyboard scan routine
FOR I=&H8000 to &H8013:READ B$:POKE I,VAL
("&H"+B$):NEXT I:POKE &H85CB,&HBD:POKE
&H85CC,&H80:POKE &H85CD,0:DATA 86,21,BD,
A2,82,A6,84,BD,A2,82,86,21,BD,A2,82,BD,85,
D1,5A,39 patches the D command
during EDIT to
show the character being
deleted!
FOR I=&H8014 TO &H8022:READ B$:POKE I,VAL
("&H"+B$):NEXT I:POKE &HAB85,&H80:POKE
&HAB86,&H14:DATA 10,27,2D,CC,BD,AF,67,BD,
AD,01,9E,47,7E,AD,E6 patches the RESTORE command so you can
restore to any line
number. For example,
RESTORE 40 restores any
DATA from line 40
on, but no DATA prior to
line 40. A plain
old RESTORE still
restores every DATA
statement
---------------------------------------------------------------------------------------
COCO 3 POKES, PEEKS, and EXECS
MEMORY MAPPING AND THE 8K BLOCKS
DECIMAL VALUES
MMU Address Mapped to Usually is Hi-Res-Mode
&HFFA0 &H0000 - &H1FFF 56 56
&HFFA1 &H2000 - &H3FFF 57 48
&HFFA2 &H4000 - &H5FFF 58 49
&HFFA3 &H6000 - &H7FFF 59 50
&HFFA4 &H8000 - &H9FFF 60 51
&HFFA5 &HA000 - &HBFFF 61 61
&HFFA6 &HC000 - &HDFFF 62 53
&HFFA7 &HE000 - &HFFFF 63 63
Blocks 48 to 63 (&H30 to &H3F) are available on both 128k and 512k CoCos.
They can also be numbered 112 to 127 (&H70 to &H7F). Blocks 0 to 47
(&H00 to &H2F) are available ONLY on the 512k CoCo. They can also be
numbered 64 to 111 (&H40 to &H6F) The numbers can be used interchangeably
because the blocks are "shadowed". Block &H3F is the same block as &H7F.
On a ONE MEG CoCo, though, the blocks are NOT shadowed, and the numbers
represent different blocks. See diagram further down.
WHAT ARE THE BLOCKS USED FOR?
Decimal Hex Function
112 &H70 first quarter of HSCREEN
113 &H71 second quarter
114 &H72 third quarter
115 &H73 fourth quarter
116 &H74 HGET/HPUT buffer (default)
117 &H75 The Stack
118 &H76 Hi-Res Text Screen (40 and 80 column)
119 &H77 unused
120 &H78 Program storage
121 &H79 Program storage
122 &H7A Program storage
123 &H7B Program storage
124 &H7C Extended Color BASIC (in RAM)
125 &H7D Color BASIC (in RAM)
126 &H7E Cartridge Address
127 &H7F CoCo 3 Super Extended BASIC, and I/O
Memory Block Map
&H00 to &H3F 64 8k blocks in 1 MEG CoCos (I think)
&H40 to &H6F 48 8k blocks in a 512k CoCo (48x8k=384k)
&H70 to &H7F 16 8k blocks in all CoCo 3s (16x8k=128k)
&H80 to &HFF 128 8k blocks in 2 MEG CoCos (I think)
In summary, ALL CoCo 3s have blocks &H70 to &H7F available. In a 512k
CoCo 3,
you have &H40 to &H7F available. In a 1 MEG CoCo 3, you have &H00 to &H7F,
and in a 2 MEG CoCo 3, you have &H00 to &HFF available.
&HFFB0 to &HFFBF contain the palette registers. PEEK and POKE to
these to
set the 16 palettes. Values range from 0 to 63.
POKE 63372,x controls the cursor blink rate in the 40/80 screen. The
default is 11. 0=fast, 255=slow
POKE 63381,0 stops the cursor blinking in 40/80 screens
POKE 63381,1 starts it blinking again
POKE &HF7A3,x x is from 0 to 255, it sets the shape of the cursor in
40/80 screens
PEEK(487)*256+PEEK(488) the start address of an ML program
PEEK(126)*256+PEEK(127) the end address of an ML program
PEEK(157)*256+PEEK(158) the EXEC address of the program
POKE &HFF21,&H3C immediately turns on the cassette relay (MOTOR ON)
POKE &HFF21,&H34 immediately turns off the relay (MOTOR OFF, but no
delay)
&HE654 to &HE663 storage of the default CMP palette values
&HE664 to &HE673 storage of the default RGB palette values
&HE674 to &HE687 storage of current palette values
POKE 150,x set printer baud rate. 87=600, 41=1200, 18=2400,
7=4800, 1=9600
if running in high speed (1.8mhz) baud is doubled also!
POKE &HFFBC,x POKE here to set the width 32 foreground color
POKE &HFFBD,x POKE here to set the width 32 background color
EXEC 44539 pauses and waits for any key press (except
BREAK/SHIFT/ESC)
POKE 65497,0 1.8mhz speed POKE for the CoCo 3 (no effect with
emulator)
POKE 65496,0 normal speed POKE (.89mhz) for CoCo 3
POKE &HE6C6,33 VERY USEFUL - This disables the automatic
clearing of the
HSCREEN. Usually, when you do an HSCREEN command, the CoCo
automatically clears the HSCREEN. This POKE prevents that.
POKE 282,255 set keyboard to uppercase
POKE 282,0 set keyboard to lowercase
&HF09D to &HF39C location of data for the HPRINT character set (8
bytes per
character, 96 characters). You can modify the HPRINT font
by changing these values. If you're not using HPRINT, this
is available space for ML programs. (768 bytes, 3/4K)
POKE 186,msb
POKE 187,lsb set the start address for the PMODE 3/4 screen
POKE 113,0:EXEC &H8C1B \
POKE 113,0:DLOAD |-- three different ways to cold-start a
CoCo 3
POKE 113,0 <press RESET> /
POKE 111,254:DIR forces a disk directory to be printed on the printer
if you PEEK(&H00E7) you can tell what the WIDTH is (0=32, 1=40, 2=80)
&HE0D4,&HE3A3, &HE50B poke these with an 8k block number for
HGET/HPUT
the default is &H74
PEEK(41)*256+PEEK(42) the line number to continue after a STOP command
PEEK(49)*256+PEEK(50) the line number of the next DATA statement to
be read
PEEK(135) the ASCII code of the most recently pressed key
can be used with EXEC 44539 instead of INKEY$
POKE 175,0 turn tracer on (TRON)
POKE 175,1 turn tracer off (TROFF)
decimal 338 to 345 the keyboard rollover tables - values change based
on what keys
are being held down
if PEEK(341)=191, then the ALT key is being pressed
if PEEK(342)=191, then the CTRL key is being pressed
if PEEK(343)=191, then F1 is being pressed (F11 on the emulator)
if peek(344)=191, then F2 is being pressed (F12 on the emulator)
PEEKs 474 to 481 contain ASCII values of most recently used FILENAME (8
characters)
PEEK(482) contains file type (0=BASIC, 1=DATA, 2=BINARY)
POKE &HD7C0,x:POKE &HD816,y disk drive step rate (not for ADOS)
x=3 y=23 for 30ms (default)
x=2 y=22 for 20ms
x=1 y=21 for 12ms
x=0 y=20 for 6ms (most drives can do this, it's faster and quieter)
44014 to 44018 ASCII values used for the prompt "OK". You can
change the OK prompt
POKE 44014,0 no prompt at all, just a cursor
EXEC 43345 makes a click sound
POKE 41598,19:POKE 41591,95 the BREAK key now pauses (same as
SHIFT-@) and
SHIFT-BREAK will act as the BREAK key
POKE &HE414,0:POKE &HE42A,0 disables the CoCo 3 BREAK key
A=RND(-TIMER) use this to get "more-random" numbers from the RND
statement
similar to RANDOMIZE on other computers
POKE &HE79B,196:POKE &HE79C,x where x is from 0 to 255. This
changes the HPAINT
command to paint a variety of patterns
POKE &HE79B,212:POKE &HE79C,181 the defaults for the HPAINT command
After POKE &HF6BC,255, you can CLS x where x is from 0 to 255 to
clear the 40/80
screens with a variety of attributes
&H01DA to &H02D8 the old cassette buffer, which can be used for short
ML programs
it's 255 bytes long
POKE 41893,0 disables the CLEAR key
POKE 41893,129 enables the CLEAR key
POKE 41909,0 prevents SHIFT-BACK-ARROW from erasing the entire line
POKE 41909,21 enables the SHIFT-BACK-ARROW
POKE &HADEB,&H39 prevents SHIFT-@ from pausing programs, speeds up
the program!
POKE &HFE04,x where x is the column spacing you want (20,40,80,etc.)
POKE &HFF94,x where x is from 0 to 255, controls the "blink"
attribute blink rate
POKE &HFF94,126 the default "blink" attribute blink rate
POKE &HD762,x where x is 1 to 255. This controls how many times
the disk drive
tries to read a "problem" with the disk. The default is 5,
but if
you set it to 1 or 2, the computer will try fewer times. If
you have
ever accidentally typed, for example, DIR 1, but had no disk
in the
drive, the computer tries 5 times to read it. By changing
this value,
it will return to the OK prompt sooner, or try longer, if
you want.
POKE &Hf697,x where x is from 0 to 255. Default is 32. When you
CLS on a 40/80
screen, this is the ASCII of the character used to clear the
screen.
GAME CHEATS
===========
Replace X with number in range.
3D Brickaway POKE 13648,X (1-255) # of men
Astro Blast POKE 17351,X (1-255) # of men
Cashman POKE 28302,X (1-255) # of men for player A
Donkey King POKE 12914,X (1-255) # men in Normal game
POKE 12904,X (1-255) # men in Practice game
Dunkey Munkey POKE 15121,X (1-100) # of men
Electron POKE 14019,X (1-255) # of men
Food War POKE 10307,X (1-255) # of men
Fury POKE 13951,X (1-255) # of men
Galagon POKE 10250,X (0-255) speed of first wave
POKE 15621,X (0-255) speed of second wave
Ghost Gobbler POKE 9075,X (1-255) # of men
POKE 10860,0 9000 pt. bonus shape (v1.5 only)
POKE 10870,0 3 ghosts trapped (v1.5 only)
POKE 11678,255 black background
Grabber POKE 16018,10 255 men
Katerpillar Attack POKE 10793,X (1-255) # of men
Kron POKE 16902,4 255 men
LunarRover Patrol POKE 22369,X (1-255) # of men
Mr. Dig POKE 21561,X (1-255) # of men
Mudpies POKE 29679,X (1-100) # of men
Pac-Tac I POKE 9009,X (1-255) # of men
Planet Invasion POKE 7446,X (1-40) # of men
Protectors II POKE 8464,X (1-100) # of men
Space Race POKE 10605,X (1-100) # of men
The Frog POKE 12002,X (1-255) # of men
Trapfall POKE 11452,X (1-255) # of men
Tutankam POKE 17437,X (1-100) # of men
Whirlybird Run POKE 8312,X (1-255) # of men
Zaxxon POKE 25624,X (1-255) # of men
Zaksund POKE 16670,X (1-255) # of men
Pumpman $4A85,X X = number of men
Spacerace $298E,35 number of men
Downland $4147,8 number of men (loaded at $4000 from rompak)
Froggie $43C1,X X = number of men
Shock Trooper $3647,255 number of men
Polaris $4708,18 (loaded at $4000 from rompak)
$4709,18 no missile decrement
Rommel 3D $5EA6,57 constant shield
Gravitor $1CCA,X X = number of men
$28A5,57 no walls
$29F5,57 no timer
More information about the Coco
mailing list