New year, new job, new town... that's how I can summarize the start of 2004. Got a job at a media & telecommunications company in the New York area, so starting this year has found me relocating a long way from Nogales Arizona to the North East cost of the USA; the weather has been the most noticeable change followed by the particular way-of-life pace of this busy city.
Due to the recent move, I have not been able to haul all my stuff to the new location, and finalizing this still has at least 6 or 8 more months coming, hopefully I will get my CoCo gear by that time, the emulator scene is ok but there's nothing that compares to the 'real thing'.
The CoCo list run by bathory at maltedmedia.com continues in full swing successfully providing a spam-free venue to continue exchanging information on our favorite hobby. If you're a CoCo user, or were in the past, please head on to the subscribing page, it only takes a few minutes and soon you'll be participating in the small but on-going CoCo Community.
And speaking of on-going, 2004 is going to see Yet Another Last Chicago CoCoFEST, hosted by the one and only Glenside Color Computer Club. Follow the link to jump directly to the GCCC for more information and keep your browser tuned to the CoCo Webring, there will be steady notices on this and related developments in the CoCo List.
About my CoCo and MC-10 Projects...
This portion of this home page will feature tidbits of things that are being incorporated into my formal CoCo teemed web site. The info on my projects will still be here but will get "pushed down" in order to provide the newest stuff right on top.
THE COCO RUMOR MILL
It has been rumored that Tandy (along with Motorola) is working on a CoCo IV computer to be released shortly. At present the only advance information available is that a new microprocessor will be incorporated into the unit-- the 6813!
Our research staff has been able to uncover a list of new opcodes that distinguish the 6813 as a breakthrough in computer technology. The list is presented here for your information.
ABBA – Play Swedish rock
ERS – Erase Read-only Storage
RBT – Read and Break Tape
ADGB – Add Garbage
ETOY – Emulate ZX-81
REST - Relax for 12 cycles
BAD – Bark At Dog
HFA – Hire From Atari
RRT – Record and Rip Tape
BBL – Branch on Burner out Light
HCF – Halt and Catch Fire
RTR – Refuse To Run
BAH – Branch And Hang
HFC – Hide From Children
RTM – Return To Motorola
BFEI – Beg For Expansion Interface
HFP – Hide From Pinto
RTT – Return To Tandy
BLI – Branch and Loop Infinite
HIC – Help Intel Chip
RSD – Read and Scramble Data
BPB – Branch on Program Bug
IAD – Illogical AnD
RWD – ReWind Disk
BPO – Branch if Power Off
IBM – Interrupt Bad Mnemonics
SINK – Sink INto I.C. socKet
BPM – Begin Pirate Mode
IOR – Illogical OR
SRZ – Subtract and Reset to Zero
BRN – BuRN up SAM chip
JOF – Jump On Floor
SSD – Seek and Scratch Disk
CFP – Call For Programmer
JOM – Jump On Motorola
STD – Stop Turning Disk
CLD – try to CooL Down SAM chip
JOT – Jump Off Table
STI – Sell T.I. Stock
CMS – Catch MouSe
JTZ – Jump To Zaxxon program
TLK – Start speech synthesis
CNP – Call National Parts
KAL – Fly over Russia
TPR – Tear PapeR
CPB – Create Program Bug
MDB – Multiply and Drop Bits
TRS – TRaSh ('TRiSs') program
CPM – Correct Program Manual
MWK – Multiply WorK
WED – Write and Erase Data
CRN – Convert to Roman Numerals
NOPE – Refuse to do anything
WID – Write Invalid Data
CSD – Create Static Discharge
OCD – Open Commode-Door
WOJ – Wear Out Joystick
DAO – Divide And Overflow
PAS – Print And Smear
XBRA – Goto Zoo
DEVO – Start new wave (Sine)
PIP – Pulverize Interface Peripheral
XOR – eXecute OpeRator
EIP – Erase If Pirated
PSD – Perform Safety Dance
XPR – eXecute PRogrammer
Besides having the above user friendly opcodes, the 6813 will also have 161 easy to remember addressing modes! P.S. There is no word from Tandy as to when we might expect these improvements (they are still trying to figure out what a 6809 is!). Perhaps in the next computer catalog.
|The following article was submitted to Glenside's Cup of CoCo Newsletter quite a few years ago. I have transcribed it here almost intact, except for some revisions in grammar and to include current developments. If any given fact looks like something being pulled out of my sleeve, get in contact with me and I'll correct it.|
Almost everyone has at one time read about the development of computers, so, repeating here that story would be somewhat of overkill, there is plenty of that on schools, public libraries and the 'net. So, I'll start right on with the theme outlined above:
It was around the month of July1958, when the first electronic computing device to be operating in Mexico was installed in the most important university of this country (UNAM, Universidad Autonoma de Mexico which means Autonomous University of Mexico). It was the first in Latin America also.
This "Electronic Brain", as it was named then, was a IBM-650 , the first to be produced by that firm and used electron tubes as its logic components and a magnetic drum as memory. As its physical dimensions were big, though not impressive, its computation and storage capacity was well below the average Color Computer 2, it had to be on par with Commodore's VIC20 or Timex's Sinclair, which were very basic machines. The 650 processor could do about 10,000 operations per second.
Being machine language the principal form of communication, if not the only one, that technicians and scientists could use around it, the access to the machine was restricted to a small elite of researchers, building lots of interest between the students of Physics and Mathematics whom in the upcoming years would constitute the first generation of "Computerologysts" Mexico would have.
Thanks to the courage and vision of UNAM's founder and director, Mr. Sergio F. Beltran, a second equipment, the Bendix G-15 , a small machine that included a compiler that kind of resembled a language like Algol, was acquired by the University Computing Center in 1960. This unit allowed a larger circle of users as students and teachers of Engineering and Chemistry used it.
This machine was then utilized to give some courses to the state universities of the country, and under the idea of Mr. Beltran was called Mobil Computing Center. This experiment ended when the G-15 caught fire as it was being transported from Monterrey to Mexico City. Despite this setback, a great deal of interest in computers was developed in several cities. The computer was replaced with another G-15 and by 1964 a Bull GAMA30 equipped with magnetic tapes and Fortran made its entrance to the Computing Center of UNAM.
While all this was happening, the National Polytechnic Institute was getting ready to install a IBM-709 starting the National Computing Center, known also as CENAC where a lot of students completed their studies. These people later ran the computing centers of the government and of several industries.
A few months later, the Technology Institute of Monterrey joined the rest of institutions installing a IBM1620 and sending some of its best students to study in the United States and in Europe. The influence of the TIM greatly transformed Monterrey into a center of technology development and its students quickly began to be requested to work in industries and in the government.
By 1970, a good number of superior education institutions had their own computing centers, among them, along the ones already mentioned, where most of the Regional Technology Institutes, the University of Chapingo, the University of Nuevo Leon and the one in Veracruz. The role of leadership that these schools represented motivated an important competition of the several manufacturing firms at attracting the attention of the Universities. Here we can cite the efforts of Control Data, IBM and specially Burroughs, which managed to install several super computers at UNAM.
With the entrance to the market of minicomputers, computing was being made accessible to smaller institutions, so the teaching of computer related sciences started to spread all over the country and, around 1973, a conference about use of computers organized by the Regional Technology Institute of Veracruz, attracted an important number of schools, which were discussing problems related to teaching computer science and with the use of computers within the administration of their offices.
The fast development rate of mini and microcomputers affected notably the institutions of superior education, that were forced to develop programs and include several courses on this theme. By the end of the seventies the acceleration of the process left these schools behind; leadership was lost. The teachers moved to the industry and the government; without possibilities of replacements, and without making those all important changes in the "ways of thinking" that the evolution of technology demands, the computing area entered a state of crisis in all schools.
As bad as a lack of vision when the needed steps were not taken to replace the teachers and researchers that were in demand, the lack of technical insight to determine the importance of microcomputers in education also made its dent in this crisis. This looks worst taking in account that the newer machines in the market were more powerful that the ones installed just 15 or 20 years ago.
In a great effort to get ahead of the pack, the T.I. of Monterrey oriented all its resources to the use of mini and microcomputers, installing a network of more than 300 micros from Apple (Apple II to be exact), which brought enhanced facilities to the students, accomplishing stunning results when responding to the great need of forming specialized personnel on computer systems.
Since then, the computing sciences had had a great impulse on all levels of schooling, from high school to engineering studies. At one time there was even a dedicated TV show that featured 100% computers in its airings, which ranged from education to games, they reviewed new software packages each week and had tournaments live with the people who attended the studios. The featured computer: Commodore 64.
The institutes that had a technical advantage were the ones located on the northern border of Mexico because of the closeness with the thriving market of the USA. Several schools had TRS-80 Model I's and III's that were used to teach BASIC and Z-80 assembly language. Some even used the Model II to handle their administration.
It was around 1987 when the Latin American Institute of Educative Communication (ILCE) along with the Public Education Secretary (SEP) started a project called COEEBA-SEP which would bring microcomputers to all public schools. The basic equipment provided consisted of:
The system IS compatible with the famous Color Computers 1 and 2 from TANDY, upon closer examination, the motherboard and the casing of the computer resemble a 64K "F" board CoCo 1 sans the RF modulator, because the 1600 provides direct composite video and line level audio to the monitor via RCA phono jacks like the ones in the back of the CoCo 3. You can also find jacks for the RS232 serial port, cassette port, mouse (it is labeled as mouse, though any joystick can do) and two others that do not have any technical explanation whatsoever (and no application that I know off) but bear the labels A&D Outputs and A&D Inputs. The A&D means Analog-Digital.
An analysis of the motherboard reveals familiar components found on earlier CoCo's. One notices right up front the absence of the RF Modulator unit, the presence of two relays (instead of one) and the two ROMS above the MC6809EP with the legends TANDY (C) 1982. Below are the 8 MCM6665BP RAM chips and a big 40 pin SN74LS783N besides them.
SEP provided program cartridges to be used with the 1600. These paks actually contained ECB programs stored in ROMs. The programs were geared to general courses from math to chemistry at the high school level, and you could plug these big paks (about twice as large as the original CoCo Disk controllers... the earliest) in a CoCo1 or a CoCo 2 and get good results, but in any CoCo you had to have Extended Color Basic because all the programs used graphics commands throughout. One thing to note here is the way the educational programs were written; all used the graphic screens and machine language routines, which accounted for their speed and presentation.
A year later, the programs began to be provided on disk, so a disk system was needed. Some schools ordered complete drive units from companies in the USA because SEP was lagging with the delivery of the systems. Once again, history started to repeat itself with this project. Schools were left with the economic burden of building appropriate rooms for the systems with little or no help from government agencies. The Micro-SEP 1600 started to fade away into obscurity as the "industry standard" IBM PC Compatible started to make its way into the educational arena. More information on the 1600 will need be studied on a separate article dedicated in its entirety to this "CoCo relative".
The later period for the 6809 based MicroSEPs found a complete clone of the CoCo 3 introduced by SEP as the MicroSEP Model 3. This is an exact copy of the CoCo 3 bit by bit except of the boot legend that includes a color character banner along with some text on ILCE. The copyright still points to Microsoft. This was the last computer in the MicroSEP line that used the 6809 and also marked a change in SEP's way of identifying these computers as the 1600 was re-named either the MicroSEP Model 1 (same as 1600) and the Model 2, a 64k CoCo 2 clone rarely seen because the Model 3 was already shipping.
A company in Mexico, linked to Radio Shack, called Texatron was responsible of the "introduction" of these CoCo clones into Mexico; seemingly the computers were brought unassembled and workers in Mexico built the final units. The software was programmed by students of the IPN, and as stated above, it was entirely graphics based except for some initial menu screens; no software produced for this line of computers ever used the enhanced capabilities of the MicroSEP Model 3 (CoCo 3 clone) except for the speedup poke.
The one personal computer that did had a more widespread market was the Commodore 64. Several clubs and private institutes, like the Galileo Institute offered courses on math, science and Basic programming and had quite a response from the average person. Meanwhile, in the USA the 80XX and 80XXX based PC's were standard, a thing that couldn't be replicated in Mexico because of Customs and government restrictions on equipment importation. As soon as the outdated laws started to get changed, the PC slowly started to set aside all the "smaller" systems currently in use.
Since 1990 fewer restrictions and less taxing on new equipment have helped to pave the way to the latest Intel and Macintosh computers. Now, the North America Free Trade Agreement (NAFTA) seriously encourages the entrance of computer systems to Mexico. More and more schools, privately owned business, government offices and in general all the industries, use Intel platforms and in a lesser measure, Macintosh computers.
One practice that didn't found its way to every user in Mexico, is the modem-to-modem connection. BBS's where and are very scarce as not to say inexistent, and if there are some, they are used within campus in the bigger universities. The Internet began to be introduced as a commercial medium in the mid 90's; in the beginning several small ISPs appeared but lately the big phone companies have started to provide high speed (v.90 upward) services and the numbers of internet connected individuals and businesses are growing.
The latest information I have gathered on the longly forgotten early MicroSEP project is that the machines are still in the school's inventory. Some time ago the PTAs were awarded the right to dispose of "old" technology found in schools - they could, after some analysis, determine if the equipment was to be sold to recoup something or given away. Lately things have changed; there seems to be some kind of "agreement" between schools and the penitentiary services of Mexico which outlines the intention of sending to the penitentiary workshops the machines and devices that need to be repaired... this is kind of farfetched since with items like computers hardly they could be repaired and put to useable service. As I write the update on this article (Feb 2000) I am still trying to get for keeps one of the first MicroSEP machines for further study.
Hope to start working on part two of this story. Stay tuned!
Little E does big job to BASIC
First off, this program is not an original work from yours truly. This utility was written by H. Allen Curtis and got printed in the April 1984 issue of The Rainbow magazine. I decided to take the information presented there and reproduce it here for the benefit of (how many?) still active MC-10 users around the world. Little E adds an EDIT command to the MC-10, a much needed feature that Tandy left out when the MC-10 was designed. How many times have you wished to just correct a typo in a fast and easy way instead of retyping the whole thing over? - this utility will save you a sizable amount of time when entering Basic listings into the MC-10.
Snap your fingers and type away the following Basic program - double check everything before you hit ENTER at every line (this is one of those moments when you wish the MC-10 had a numeric keypad!):
|MC-10 Little E Basic Editor|
40 FORZ=X TOX+265
70 IFW<>29479THENPRINT"DATA ERRO
90 DATA 198,18,58,255,66,152,134
100 DATA 126,183,66,151,198,35
110 DATA 58,255,66,170,57,189,0
120 DATA 243,129,101,38,248,122
130 DATA 66,28,189,251,212,134
140 DATA 126,183,66,169,127,0
150 DATA 181,189,0,235,126,228
160 DATA 13,254,66,128,150,166
170 DATA 167,0,57,125,0,181,38
180 DATA 17,124,0181,236,2,147
190 DATA 165,39,1,134,57,183,66
200 DATA 169,126,226,113,134,57
210 DATA 183,66,169,206,64,0,255
220 DATA 66,128,166,0,151,166
230 DATA 189,248,104,129,9,38,10
240 DATA 141,202,140,64,127,36
250 DATA 242,8,32,232,129,21,38
260 DATA 20,254,66,128,140,64
270 DATA 128,36,7,166,1,167,0,8
280 DATA 32,244,254,66,128,32
290 DATA 211,129,10,38,12,141
300 DATA 164,140,64,96,36,204
310 DATA 198,32,58,32,192,129,8
320 DATA 38,10,141,148,140,64,0
330 DATA 39,188,9,32,178,129,19
340 DATA 38,23,206,64,127,188
350 DATA 66,128,39,7,9,166,0,167
360 DATA 1,32,244,150,166,167,1
370 DATA 134,96,32,156,129,3,39
380 DATA 136,129,13,39,11,189
390 DATA 249,201,140,64,127,39,1
400 DATA 8,32,154,206,66,177,223
410 DATA 244,8,223,181,206,64,0
420 DATA 223,183,166,0,43,34,129
430 DATA 64,37,6,129,96,37,4,139
The format for the e command is:
That's a lower case E. To use the command you'll have to switch over to lowercase by doing the SHIFT-0 sequence. Once the command has been typed and [ENTER] is pressed, the line to edit will appear on top of the screen with the cursor flashing at the home position. Three arrow keys are used to move around the cursor to the position you desire (restricted to the first 128 positions of the screen):e line number
Characters can be deleted from the program line by pressing the L.DEL key in the MC-10. To insert characters you need to first insert spaces (as many as needed) using the SHIFT-@ combination. When a character is typed, the character is overstriked on what was under it before and the cursor moves one space to the right. Pressing the ENTER key twice will accept the changes and enter the modified line into the program and, if you don't want to accept changes press the BREAK at any time to abort the e command. Please note that the whole line can be modified including the line number , this allows you to transpose line numbers and comes really handy since the MC-10 doesn't have a RENUM command to help in a neat arrangement of a revised Basic program.
- RIGHT arrow - Move the cursor one position to the right without changing anything
- DOWN arrow - Move the cursor down one position without changing anything
- LEFT arrow - Move cursor to the left without changing anything
There you have it!. In case you need aditional help on this useful utility please contact me thru Delphi (user ROGELIOP).
See you all on the next update.
A small Micro Color Basic Arcade Shoot-em up
Ok, so the following program does not exploit special features of the MC-10 and is not exactly an original idea as it is based on a Basic program that appeared in a TRS-80 Graphics book Radio Shack once sold. This was one of the first TRS-80 programs I converted and the MC-10 got first crack at the conversion, being this the first computer I ever owned. The concepts applied here consist of program structure disciplines in order to get the most of speed out of the execution times and one or two examples at how to build STRING$ using FOR-NEXT loops (the MC-10 does not have a STRING$ function).
The general lay-out of the program is: subroutines first, main loop in the middle and all variable definitions and general setup at the end. Using variables instead of numeric values speeds up the interpretation time of a Basic program and setting up the most often called subroutines right on the beginning of a program also contributes to enhanced response time from the computer. The listing (formatted as 32 characters per line):
|MC-10 Laser Cannon|
|0 GOTO 100
25 IFI$<>" "THENGOSUB1:GOTO20
100 DIM ST$(15):CLEAR 2000:CLS 0
110 FOR I=1 TO 10
120 NEXT I
130 FOR I=2 TO 10
140 NEXT I
145 FOR I=1 TO 20
155 NEXT I
185 FOR I=1 TO 10
195 NEXT I
210 GOTO 5
220 GOTO 220
The screen consists of two rows of "moving" targets and a laser cannon activated by pressing the space bar. The top row of targets add 30 points and the bigger lower row of targets adds 20 points to the overall score - missing targets substracts 10 points, be careful. The movement of the targets is accomplished by printing certain portion of each of the target strings and when a target is hit its space is replaced by blanks. Due to the hurry at the time when the program was written I didn't care of taking a close look at just how many targets appear per row and how the lower row should be treated in order to have whole targets right from the start; as it is, sometimes you can end up with a halved target - fair game though. Also, if the laser beam hits two targets (same column), the lower target takes the hit and the topmost is spared.
Line 102 has the number of shots available to the player. Variable B has the score and the reward and punishment level is set in lines 5, 6 and 55; if you feel like making the game tougher or easier you should adjust the plus/minus values in those lines affecting B. The laser beam in the original TRS-80 Model I/III game was made using the built in space compression and cursor control codes available in those machines; the MC-10 doesn't have those fancy features so a FOR NEXT with SET/RESET commands takes care of printing a whole column of laser characters from bottom to top and then erases the column in the same direction - the action is fast enough to rate in the arcade variety of effects; actually, I was surprised by the speed of the game after converting it from the TRS-80 Basic where the same version of the game runs a bit slower.
So here you have it - a blast from the past. Let me know what you think of these articles. I have many MC-10 Color Basic programs to share, perhaps an idea you might have has already been implemented. See you next month!
Hi-res Text Display with the MC-10
In the Yahoo! MC-10 Group there has been lots of interest on unmentioned (at least by Radio Shack) video modes that the MC-10 can support. I found this literally stumbling into it POKEing around the MC-10's RAM and after a few trial and error tests I was able to make ends meet and produced a conversion table to help me translate TRS-80 Models I & III character block graphic screens into MC-10 format. Sadly, text is unsupported in this mode and my lack of tech info prevented me into coming out with a solution to this problem; the block graphics that result are exactly the same except for the fact that the MC-10 is limited to 32 characters per line vs. 64 characters per line in the Model I & III TRS-80s.
It is more fun to try things first so copy the following Micro Color Basic program into your MC-10 and play!. The point of this bare-bones game is to advance as much as possible dodging the incoming asteroids using the  and [-] keys to move left and right. This game is just for demonstration purposes so there are lots of things that can be improved. For your convenience, the listing is presented in 32 characters per line format:
|MC-10 Spaceship vs. Asteroids|
|0 CLEAR 2000:DIM L$(31):AI$=CHR$
AME (Y/N)";J$:IF LEFT$(J$,1)="Y"
THEN P=0:L=16:GOTO 1
20 FOR I=2 TO 31:FOR N=1 TO I-2
25 NI$=NI$+CHR$(128):NEXT N:Q=N-
30 FOR N=Q TO 29:ND$=ND$+CHR$(12
40 NI$="":ND$="":NEXT I
75 FT=50:ST=230:CN=5:Z=0:GOTO 1
It has been sooo many years... remember that saying about documenting your programs?. Ok, I'll give a somewhat vague explanation at what the program does where, and please note the following comes all from HBRAM (Human Brain Random Access Memory). In an attempt to squeeze every bit of speed from a Basic program I have always placed the vital portions of a program at the beginning of the listing and the definitions last, also, all constants are defined into variables and used as such in the core (lines 1 to 5). I am not sure if this Basic (generally speaking of the interpreter for many micros) also benefits from this setup, I know that the regular CoCos do. Most of the names I used for variables are spanish based mnemonics like IZ (IZquierda - left), DR (DeRecha - right), the breakdown being:
|L$||Dimensioned variable used to hold all the "random" asteroid positions plus blank spaces [CHR$(128)]|
|AI$, AD$||Left and right portions of the "asteroid"|
|NI$, ND$||Temporary strings used to create the whole line consisting of leading blank spaces, the two asteroid halves and blank space padding at the end|
|PP||RAM location to POKE to in order to obtain the 64x64 text graphics hi-res screen|
|SC||The SCreen code I found to cause the jump into the 64x64 grid - there's a nice table on the VDG modes with this tech info, visit the group!|
|U, DS, AT||Constants that hold a value of 1, 2 and the PRINT@ location used to put the asteroids on screen (screen position 480)|
|N$||Holds the two halves of the ship... hey! does that resemble the Enterprise?|
|KP||Used to snoop out which Key was last Pressed. See the previous month article for more info on this (below)|
|L1, L2||Hold the video RAM locations to test for impact|
|EI$, ED$||Hold the two halves of the ship needed to create the "split" effect after hitting an asteroid|
|FT, ST, CN, DS, IZ, DR....||These hold values set for a delay counter (split), sound routine... the other variables are values used for defining the ASCII codes to test for key presses and other portions of control within the core portion of the program|
The asteroids had to be created as whole 32 characters long lines because printing a regular "space" character on the hi-res screen gets garbage, and this side-effect is visible as a flashing line at the bottom of the screen due to the scrolling... I thought I could live with it just for the fun of seeing the ol' TRS-80 block graphic characters in full splendor. As I mentioned above, it has been a while. From my memories comes an almost faded fact on the colors of the characters that can be used in the MC-10 set up with this screen: only two color combinations are possible, orange and blue and I'd had to setup my MC-10 and try again at printing each ASCII code into that 64x64 screen to see which ones work and how. Try the program and let me know what your think!, and please feel free to hack it and report your findings. See you all on April.
(The following Article was featured for the February '99 edition of this page)
MC-10 interesting RAM locations
In January I posted at the MC-10 Users Club messages list some POKEs and PEEKs I had found while probing the MC-10's memory map with a rude Micro Color Basic program and the glorified monitor string of PRINT PEEK(49151) and POKE 20,0.... I got my share of MC-10 lockups due to my aimless investigation but at the end something useful came in return. I had absolutely no access to any technical data on the MC-10, and the response from the sales clerk at Radio Shack back around 1984 when I asked him about the MC-10 memory map was like: huh... memory maps?... huh... memory mapssss... hey Joe!, do you know something about memory maps for the MC-10? (Oct 2003 note: I just saw this guy working at Wal-Mart... guess things have kept level for him).
Fire up the MC-10 and try the following PEEKs:
|PEEK(17023)||This location returns the ASCII value of the last key pressed. Works like INKEY$|
|PEEK(2)||When pressing ANY key it will have decimal value 127. Returns a 0 (zero) with no key pressed|
|PEEK(49151)||Returns the following decimal codes: No keys pressed - 255, 7 key - 239, ? key - 223, SPACEBAR - 247, W key - 251, O key - 253, G key - 254.|
These two last PEEKs work in what I like to call real-time input , meaning that as long as a key is being pressed the value in RAM will change accordingly; release it and as soon as that's done the value in memory changes too. Only the first PEEK works in a latching mode, that is, you press the key and the value remains until a new key is pressed.
Using a combination of the first two PEEKs listed in a Basic program can have the effect of a real-time input with any key in the MC-10's keyboard. To the best of my knowledge, the MC-10 doesn't have a keyboard roll-over table like the CoCo does so by running the Basic lines listed below allows for such real-time input to the MC-10:
100 REM KY -> KEY CODEIn the above program the AND instruction effectively allows us to modify the value of variable VR depending on how long we press the UP and DOWN arrow keys (actually, the W and Z keys). This routine was used a lot in some arcade-type games I did in the MC-10.
110 REM HL -> FOR HOW LONG
115 CLS:PRINT@0,"USE THE W & Z KEYS"
130 IF (KY AND HL)=ASC("W") THEN VR=VR+1
140 IF (KY AND HL)=ASC("Z") THEN VR=VR-1
150 PRINT@260,"VERTICAL VALUE:";VR
160 GOTO 120
The following Pole Position styled Basic program shows how to use the routine:
100 CLS:P=16652:KY=17023:HL=2So here your "car" is a white graphics block and you must avoid smashing into the walls on both sides of the track. Variable P holds the screen memory location to test for colision, and the X loop goes on to "drawing" a senoidal track way. Pressing the A key moves your car to the left and the S key moves it to the right and as the curves get nastier the speed at which the car turns is incremented - this is controlled by the D variable.
110 FOR K=1 TO 10
140 J=8:REM J = TRACK WIDTH
150 FOR X=0 TO 6.2 STEP K/100
160 POKE P,159
180 PRINT@480+C,S$ TAB(C+J)S$
190 IF PEEK(P)=Q THEN 240
200 POKE P-32,143
210 IF (PEEK(KY) AND PEEK(HL))=ASC("A") THEN P=P-D:NEXT X,K
220 IF (PEEK(KY) AND PEEK(HL))=ASC("S") THEN P=P+D:NEXT X,K
230 NEXT X,K
240 PRINT"SECTORS PASSED:";K
Hope you enjoy this small sample of what's to be included on the full site. See you next month!
Here are the descriptions of the Projects still pursued:
MC-10 hi-res Tid-Bits
MC-10 Token Converter
MC-10 Semi-dumb Terminal setup for use on a OS9 Host
The CoCo Chronicles in Spanish
Story of the CoCo in Mexico