the CPU to the number 1 and put the result back in the Bregister". The "#" sign defines a decimal value in EDTASM+.Other assemblers may use a different designation.The above description is a bit simplistic, as any A/L programmerwill readily testify. A full discussion on M/L and A/L programming is beyond the scope of this book. Check the"Library" section for recommended texts.As for assemblers, several were available for <strong>Color</strong> BASIC.<strong>Tandy's</strong> own EDTASM, EDTASM+, and Disk EDTASMwere naturally popular. So was MicroWare's MACRO<strong>80</strong>C,which for a time was even more popular than the Tandyproduct! Used copies of these are likely to show up with usedCoCo systems. If the manuals are intact, they are still goodproducts to have. There are many enhancements available forthe Tandy product available from Delphi or FARNA <strong>Systems</strong>.FARNA also sells an enhancement that adds supportfor the Hitachi 6309 CPU. Versions for all CoCo modelsare shipped on the same patch disk.The only currently supported <strong>Color</strong> BASIC editor/assembleris Cer-Comp's EDT/ASM III. It is designed to takeadvantage of the added features of the CoCo 3, but versionsare available for the CoCo 1/2 as well. Cer-Comp also sellsa "disassembler", which breaks machine language programsdown into opcode and operands. A skilled A/L programmercould use a disassembler to break down an existing program,make modifications to the code, and then reassemble amodified version. This takes quite a bit of practice andpatience! Although A/L programs are much faster thanBASIC, debugging is harder and more time consuming.The only OS-9 assembler came with OS-9 Level I and theOS-9 Level II Developers Pack. The assembler was shippedwith Level I instead of Basic09, which was sold separately.Tandy wised up when Level II came out and included Basic09instead of the assembler, which was relegated to theDevelopement Pack. The Level I assembler works fine withLevel II- in fact, the Level I and Level II assemblers arevirtually the same.Binary and Hexadecimal Conversions - Wes RatcliffRegardless of programming language used, there will cometimes when hexadecimal and binary numbers will beneeded. The following method works well and is rathersimple. Most other methods require tables of numbers.These work, but require looking up each "nibble" (4-bit halfof an 8- bit byte) separately. Wes’ method is a bit easier,especially if one needs to do conversions without tables.0 to 16. If you have the number &HF2, for instance, think ofit as "F" and "2". Each character in hex is represented by 4digits in binary. "F" in binary is 1111, and "2" represented inbinary is 0010. So that &HF2 (hex) is the same as 11110010binary. A little practice and it will come naturally. All youhave to remember is the values from 0 to 15. 16 bit values areinterpreted the same way, as four nibbles.DECIMAL HEX BINARY0 0 00001 1 00012 2 00103 3 00114 4 01005 5 01016 6 01107 7 01118 8 10009 9 100110 A 101011 B 101112 C 110013 D 110114 E 111015 F 1111If you want to convert a decimal number, you can start at theleft. If you’re working with an 8-bit number, bit 7 represents128 decimal (bits numbered 0-7, right to left). So if yournumber is greater than 128, write a 1. If not, write a 0. If youwrote a 1, subtract 128 from your decimal number. Move tobit 6. Here a bit represents 64. Repeat the above exercise,writing a 1 if the number is greater than 64, then subtract 64from the number and go on to the next bit, which represents32. Each lesser bit represents half the bit before it. Continueuntil you’re at bit 0. The opposite is also true. In the binaryrepresentation above, we have a 128,64,32,16, no 8, no 4, a2, and no 1. Add ’em up and you’ve got your decimal number.To convert a decimal number to hexadecimal, convert it tobinary first then break it down into nibbles. Write the valuesof the nibbles down in binary from the sixteen values above.For an eight bit number add the values together. For a 16 bitnumber, add the first two and the last two nibbles (two eightbit bytes) and write those values down. Multiply the first byte(on the left) by 256, then add to the value of the second.As an old assembly language programmer, hexadecimal(hex) is second nature. But anyone can calculate hex in theirhead without resorting to tables. Just break a number intonibbles. That is, each hex character represents a value from<strong>Tandy's</strong> <strong>Little</strong> <strong>Wonder</strong> page 47
Microware's OS-9... a heavy-dutyDOS for CoCo...An Introduction to OS-9 Rick UllandDo you need OS-9? Maybe not! Many users view theircomputer as an appliance. Any good appliance should performit’s job as easily as possible, without much muss orfuss. For this type of use, DECB cannot be equalled. Youcram is a disk, type run, and away it goes. The only problemwith 'computer as appliance' is, they just aren't that good yet!Making it simple usually means leaving things out. Individualprogrammers can write any capability into any program, andsometimes do, but this approach to upgrading has provenless than impressive, resulting in giant, expensive programsthat each do things their own way. OS-9 attempts to put manyof the most wanted features of modern computers wherethey belong- in the operating system. Of course you onlyhave to learn everything once, but sometimes it seems youhave to learn everything first! The natural tendency is to asksomebody what the heck is going on. Those fortunate fewwho know a fellow OS-9 user who lives nearby enjoy a prettypainless introduction. The rest of the world has to settle forhurried conversations carried out over telephone or modem,and even though the other person is really trying to help,there is just too much information to pass on in a fewminutes. In an attempt to cover as much ground as possible,the helper may lapse into that dreaded variant of technobabbleknow as the buzz-word.A Very Buzzy BeeOS-9 promises (and delivers) quite a lot of capability in avery small package- watching Level II run on a 6<strong>80</strong>9 is anawesome sight to folks familiar with the chips' limitations inmemory space and speed. You may well ask, why worryabout memory? After all, there are 2 megabyte RAM upgradesavailable. Well, the rub is the 6<strong>80</strong>9 can only address64K at a time. DECB users are quite familiar with thislimitation. Even a 512K CoCo only shows 24K free (the restof it’s 64K ate up by the basic ROMs and some data space).BASIC does gain some use of the extra ram by moving thegraphics screens out of the base 64K area, but all of theprogram code still has to fit there. OS-9 Level II doesn’tremove this barrier, but does work around it nicely, bysplitting the whole into separate groups.A process is up to 64K of code and data. The difference isunder OS-9 you can have as many processes as you havememory for, while under DECB you have one. This is thereason some OS-9 programs are split into two parts, forexample word processors will be divided into a separateeditor and print formatter. This way the whole package canuse 128K (2 processes) instead of 64K (one process).Processes can be connected together from the commandline as well.When someone speaks of pipes, they are talking aboutconnecting one process' output directly to another ones'input. On the command line, a pipe looks like an exclamationpoint- proc1 ! proc2. There are two reasons to do thiseitherto get around the memory problem, or to make a singleutility more useful. We’ll get into this more later.There is still a problem with the total RAM available. Thepractical problem is fitting the operating system into themachine. There are 3 ways to do this. The DOS can be keptsmall and simple, or simply demand the machine grow largerand larger, so the whole thing will fit. (the disk drives alsohave to get faster and faster, so the thing can be loaded thesame day, and larger so the thing will fit on a decent numberof disks... in other words, it can be like MS-DOS). Microwaretook the third tack. OS-9 (and OS-9 programs) are splitinto modules, which can be loaded as needed, or unlinked tofree up memory. You’ll see this in action when runningconfig or os9gen- out of all the things that could go into OS-9, the user picks the ones he needs. OS9gen packs them intoa small, quickly loaded boot file.There are a few additional space saving tricks. First all ofthese modules are reentrant. One copy in memory can be ranmany times simultaneously. Each separate iteration gets it’sown block of data space, but uses the same copy of the code.The other trick involves how a module is run. For example,the OS-9 prompt you see on screen doesn’t come from OS-9 itself, but a special program called shell. When you typea command, shell reads it, then runs that module. It doesn’tgo away, but waits in the background for the new process tofinish. This is called forking a process. The old process(known as the parent) is still around, just hidden in the otherfork of the road waiting for the new process (the child) tofinish. Now, if you really need every byte of RAM, you canchain the new process, using the ex command. The parentshell is killed, freeing up the memory it used, but if the childprocess ends, the window seems to lock up! It hasn't reallycrashed, but there is nothing for it to run.To keep track of all these modules, OS-9 has a specialdirectory. Mdir (module directory) lists all the modules ismemory, and keeps track how many times each one is beingused. The link count starts at one if a module is loaded, or0 if it’s just called, and goes up one each time it is executed,then down by one when it’s finished. If it hits 0, that moduleis dropped and you get the RAM back. So a module that wasrun from the command line, and not loaded first, disappearswhen it’s finished. There are two special commands to dealwith this- link bumps the number up one so a module willnever be dropped, while unlink reduces it one. Enoughunlinks and it disappears!page 48<strong>Tandy's</strong> <strong>Little</strong> <strong>Wonder</strong>
- Page 1: Tandy's Little Wonder,The Color Com
- Page 6: Introduction...Alfredo Santos, Dece
- Page 9 and 10: The Micro Works had its CBUG, 80C d
- Page 11 and 12: Washington state. The computers wer
- Page 13 and 14: ticle describing the installation o
- Page 15 and 16: A new CoCo magazine, 68 Color Micro
- Page 17 and 18: pitched carrier tone but by a "disc
- Page 19 and 20: With desktop publishing so popular,
- Page 21 and 22: What better time to advertise new p
- Page 23 and 24: plugged into the CoCo. A separate p
- Page 25 and 26: ceived 20 hours of on-line time. It
- Page 27: Technologies. This computer had bee
- Page 30 and 31: issue (sore spot!) for many adverti
- Page 32 and 33: the missing September OS-9 Undergro
- Page 34 and 35: 1985 (continued)26-1275 - $299.00 -
- Page 38 and 39: Operating Environments and Programm
- Page 40 and 41: The CoCo 3 DOES NOT support the fir
- Page 42 and 43: ADOS... Arts' Disk Operating System
- Page 44 and 45: Compiled BASIC...BASIC is normally
- Page 46 and 47: When you LOAD and RUN a BASIC progr
- Page 50: With all these modules and processe
- Page 54 and 55: * Connecticut -NAME: South Eastern
- Page 56 and 57: * Texas -NAME: CoCoNautsADDRESS: 16
- Page 58 and 59: NAME: Rick's Computer EnterpriseADD
- Page 60 and 61: National Bulletin Board/Database Sy
- Page 63 and 64: Current PublicationsThere are still
- Page 65 and 66: Past MagazinesThe Color Computer de
- Page 67 and 68: The next video type to consider is
- Page 69 and 70: Co., 4300 West 62nd Street, Indiana
- Page 71 and 72: Tape I/O for the CoCo normally occu
- Page 73 and 74: SCS line activates the controller,
- Page 75 and 76: uilt in controller boards and were
- Page 77: Most laser and ink-jet printers als
- Page 80 and 81: Modem Pak that you wish to be inter
- Page 83 and 84: RAM UpgradesEach of the various CoC
- Page 85 and 86: Beyond 64K in the CoCo 1 & 2There w
- Page 87 and 88: functions, the PLAY and SOUND comma
- Page 89 and 90: 5) I cut a piece of sheet metal to
- Page 91 and 92: lows as 0V. A pulse should read as
- Page 93 and 94: MC6883 and 74LS783/785 SAM Chip (Co
- Page 95 and 96: on. CTRL-ALT-RESET may not clear ev
- Page 97: E board CoCo, the zener is a 1N4735
- Page 100 and 101:
When it seemed that the CoCo was ag
- Page 102 and 103:
Around the same time as the demise
- Page 104 and 105:
into the upgradable TC9 and then in
- Page 106 and 107:
I completed my second book, a compl
- Page 108 and 109:
The CoCo is capable of using up to
- Page 110:
BASIC/Extended/Disk Error CodesCode
- Page 124:
POWER JOYSTICK JOYSTICK SERIAL CASS
- Page 132 and 133:
IndexSymbols and Numbers128K upgrad
- Page 134 and 135:
DigiSector DS-69(B) 20, 21, 80Digit
- Page 136 and 137:
MediaLink Software 56Olaf Meding 44
- Page 138:
Snake Mountain Software 11Soft Sect