Listing of file='CCUE.TXT;01' on disk='vmedia/scratch-sector.ccvf'
200A FOXRIDGE APTS., BLACKSBURG, VA. 24060 10 MAY, 1980 DEAR CATHY, IT'S BEEN A LONG TIME SINCE I'VE WRITTEN, SO I THOUGHT I WOULD SEND YOU A COUPLE OF ARTICLES. ACTUALLY, WE HAVE BEEN "OFF THE AIR" FOR A WHILE BECAUSE OF PROBLEMS WITH OUR CCII. I THOUGHT I WOULD TRY SENDING EVERYTHING ON DISKETTE THIS TIME. YOU MUST LET ME KNOW IF YOU HAVE LOWER CASE, BECAUSE I HATE ALL THIS UPPER CASE (BUT I DIDN'T WANT YOU TO BE UNABLE TO READ IT). THE FIRST ITEM, ABOUT SOUNDWARE, IS PROBABLY NOT SUFFICIENT FOR AN ARTICLE, BUT MIGHT MAKE A NICE LETTER TO THE EDITOR. (NOTE THAT PART OF THE DIAGRAM IS HAND-DRAWN.) THE SECOND ONE IS A BIT TOO LONG FOR THIS. I WROTE THIS ROUTINE FOR TRANSFERRING BASIC PROGRAMS IN RESPONSE TO A QUESTION FROM SOMEBODY WHO WROTE FOR OUR STAR TREK. I THINK IT IS A VERY HANDY ROUTINE TO HAVE, AND SURPRISINGLY SHORT. ALSO ENCLOSED IS SOME LITERATURE FROM INTEGRAL DATA SYSTEMS ABOUT THEIR "PAPER TIGER" PRINTER. IT IS ONE OF THE BEST VALUE PRINTERS ON THE MARKET, AND HAS THE CAPABILITY FOR GRAPHICS. I HAVE WRITTEN AN ASSEMBLY LANGUAGE ROUTINE THAT COPIES THE SCREEN TO THE PRINTER VERBATIM. SOME EXAMPLES ARE ENCLOSED, BUT THE PROGRAM STILL NEEDS A LITTLE WORK BECAUSE IT IS VERY DIFFICULT TO HANDLE THE DIFFERENT COLORS WELL. I ALSO PLAN TO WRITE ANOTHER PROGRAM TO PRINT THE PICTURE FROM THE SCREEN THE CORRECT WAY AROUND (INSTEAD OF SIDEWAYS), BUT IT WAS EASIER TO IMPLEMENT THIS WAY INITIALLY. I DON'T KNOW IF COMPUCOLOR IS LOOKING FOR A PRINTER TO SUPPORT, BUT I THOUGHT YOU MIGHT BE INTERESTED. I WILL BE WRITING TO YOU AGAIN SHORTLY. I HAVE A LOT MORE STUFF YOU MAY BE INTERESTED IN, BUT IT IS A MATTER OF GETTING THE TIME TO WHIP THEM INTO SOME PRESENTABLE FORM. BY THE WAY, IF I HAVE ANY MORE ARTICLES PUBLISHED IN THE FUTURE, WE WOULD PREFER TO HAVE SOF-DISKS. I'M NOT SO SURE THAT THE FILE TRANSFER ROUTINE IS WORTH PUBLISHING, BUT I THOUGHT I SHOULD SEND IT ANYWAY. IF YOU HAVE ANY IDEAS FOR ARTICLES YOU WOULD LIKE TO SEE, JUST LET ME KNOW - THE BALL'S IN YOUR COURT. ACTUALLY, YOU MIGHT LET ME KNOW WHAT TYPE OF ARTICLES THE READERS SEEM TO PREFER THE MOST. SINCERELY, A POOR MAN'S SOUNDWARE THE RS-232 PORT ON THE CCII CAN BE USED TO PRODUCE A WIDE VARIETY OF SOUNDS WITH A LITTLE ASSEMBLY LANGUAGE PROGRAMMING. CAP ELECTRONICS HAVE TAKEN ADVANTAGE OF THIS WITH THEIR "SOUNDWARE", AND IN FACT THEY HAVE A WHOLE LINE OF GAMES WHICH INCORPORATE SOUND. (I MIGHT ADD THAT THE DEMO DISK THAT COMES WITH SOUNDWARE CONTAINS SOME OF THE BEST- WRITTEN SOFTWARE I HAVE SEEN.) WHAT MANY PEOPLE DO NOT KNOW IS THAT IT IS NOT REALLY NECESSARY TO BUY THE SOUNDWARE TO PLAY GAMES THAT USE SOUNDS. THIS SIMPLE CIRCUIT BELOW ALLOWS YOU TO RUN PROGRAMS THAT ARE WRITTEN TO USE SOUNDWARE AND GET THE SAME SOUNDS. THE WHOLE THING COSTS LESS THAN $4 THIS WAY, BUT OF COURSE, YOU DO NOT GET THE DEMO DISKETTE AND THE SOUND OUTPUT IS NOT VERY LOUD. (YOU CAN REPLACE THE SPEAKER WITH A STEREO AMP IN THE CIRCUIT BELOW IF YOU REALLY WANT TO BLOW YOUR NEIGHBOURS AWAY WITH FLYING SAUCERS, LASERS, ETC.) THE COMPONENTS MAY BE CONNECTED IN ANY ORDER, AND IT DOES NOT MATTER WHICH WAY ROUND. EDGE CONNECTOR MODEM PLUG (J2) PIN # 1K 0.01UF 3 ----------> 2 8-OHM SPEAKER 1 ----------> 1 RADIO SHACK PART NUMBERS: 1K RESISTOR = 271-023 0.01 UF CAPACITOR = 272-1051 2" 8-OHM SPEAKER = 40-245 NOTE: CATHY - YOU MAY WANT TO LEAVE THIS OUT, AT YOUR DISCRETION, BECAUSE IT MAKES COMPUCOLOR LOOK BAD. CAP ELECTRONICS SELLS SOUNDWARE FOR $39.95, BUT IT COSTS $49.95 FROM COMPUCOLOR. THE ADDRESS IS: CAP ELECTRONICS 1884 SHULMAN AVE., SAN JOSE, CA 95124 PHONE (408) 371-4120 TRANSFERRING BASIC FILES FROM OTHER COMPUTERS THE PROGRAM BELOW IS A HANDY LITTLE ROUTINE THAT WILL ALLOW YOU TO TRANSFER BASIC PROGRAMS FROM ANY OTHER COMPUTER THROUGH THE RS-232 PORT. THE OTHER COMPUTER SIMPLY SENDS THE FILE AS ASCII TEXT E.G. BY "LIST"ING THE PROGRAM WITH THE OUTPUT GOING TO THE RS-232 PORT IF THE OTHER MACHINE IS A COMPUCOLOR FOR EXAMPLE. I HAVE USED THIS ROUTINE TO TRANSFER FILES OVER THE PHONE FROM AN IBM 370/158 AND A HONEYWELL 68/60. IF YOU ARE INTERESTED IN TRANSFERRING FILES IN THIS FASHION, YOU WILL NEED A MODEM. IN ORDER TO TRANSFER FILES FROM ANOTHER HOBBY COMPUTER USING THE PHONE E.G. A TRS-80, IT IS ESSENTIAL THAT EITHER YOU OR THE OTHER PERSON HAVE A MODEM WHICH CAN BOTH ANSWER AND ORIGINATE. (RADIO SHACK PART NO. 26-1171 FOR EXAMPLE.) THIS IS BECAUSE ONE OF YOU MUST ACT AS THE "COMPUTER" WHILE THE OTHER PRETENDS TO BE A "TERMINAL". TO TRANSFER FILES FROM ANOTHER HOBBY COMPUTER WHICH YOU PLAN TO CONNECT DIRECTLY TO THE COMPUCOLOR, YOU HAVE TO MAKE AN INTERCONNECTING CABLE. REMEMBER TO SWITCH THE WIRES TO PINS 2 AND 3 ON ONE OF THE PLUGS ON THIS CABLE. (THE "COMPUTER" VERSUS "TERMINAL" PROBLEM AGAIN.) TO USE THE PROGRAM, DIAL-UP (OR PLUG IN TO) THE OTHER COMPUTER AND ESTABLISH COMMUNICATIONS. HIT CPU RESET AND TYPE: ESC R 3 ESC F (FOR FULL DUPLEX) OR H (HALF DUPLEX) THIS SETS UP FOR 300 BAUD, AND THE ROUTINE WILL NOT WORK ABOVE THIS BECAUSE BASIC CANNOT ACCEPT THE FILE FAST ENOUGH. YOU CAN HIT CONTROL-SHIFT CPU RESET AT ANY TIME AND GET INTO BASIC. THE OTHER COMPUTER WILL STAY CONNECTED, AND YOU CAN GET BACK TO IT LATER BY HITTING CPU RESET AGAIN AND ENTERING THE BAUD RATE AS ABOVE. ONCE CONNECTED OK, GET INTO BASIC AND LOAD THE TRANSFER PROGRAM BELOW. RUN THE PROGRAM, AND SIT BACK AND WATCH AS THE FILE IS TRANSFERRED (IT APPEARS ON THE SCREEN). WHEN IT IS FINISHED, SAVE IT ON DISK THEN GET BACK INTO TERMINAL COMMUN- ICATIONS MODE AS EXPLAINED ABOVE. ANYTHING THAT THE OTHER COMPUTER SENDS WHICH BASIC DOES NOT UNDERSTAND WILL SIMPLY CAUSE A SN (SYNTAX) ERROR. FOR EXAMPLE, I GET AN "EOF" FROM THE TEXT EDITOR ON THE IBM MACHINE AT THE END OF THE FILE. THE PROGRAM WILL ASK YOU FOR A COMMAND LINE, WHICH IS SENT TO THE OTHER COMPUTER TO INITIATE THE TRANSFER. I USUALLY GET INTO THE TEXT EDITOR ON THE OTHER MACHINE, SO THE COMMAND IS SOMETHING LIKE "T 100" WHICH TYPES OUT 100 LINES OF THE BASIC FILE I WANT TO TRANSFER. THIS PART IS VERY DEPENDENT ON THE OTHER MACHINE YOU ARE CONNECTED TO. IF IT IS A HOBBY COMPUTER, YOU MAY WANT TO SAY "OK FRED, SEND THE FILE", OR SOMETHING LIKE THAT. NOTE THAT THE QUOTES ARE REQUIRED IF THE COMMAND LINE CONTAINS SPACES. THERE IS ONE SLIGHT BUG IN THE ROUTINE, WHICH IS A PROPERTY OF BASIC ON THE COMPUCOLOR. IF THERE ARE MORE THAN FOUR (4) VARIABLE NAMES IN A LINE AS IT IS TRANSFERRED, THE LINE-FEED AT THE END OF THE LINE WILL BE INSERTED INTO THE PROGRAM IN MEMORY. THIS IS BECAUSE BASIC TAKES TOO LONG WORKING OUT THE ADDRESSES OF THE VARIABLES, AND MEANWHILE THE LINE-FEED ARRIVES. NORMALLY BASIC IGNORES LINE-FEEDS, BUT IT IS PREOCCUPIED AND DOESN'T SEE IT SLIP BY. THERE ARE TWO SOLUTIONS TO THIS PROBLEM: EITHER USE FREDI AND EDIT THEM OUT (THEY APPEAR IN RED, SO THIS IS EASY); OR WRITE A PROGRAM ON THE OTHER MACHINE THAT WILL WAIT A WHILE AFTER A LINE IS SENT BETWEEN SENDING THE CARRIAGE-RETURN AND LINE-FEED. THIS CAN BE DONE EASILY IN FORTRAN AND PASCAL. BETTER STILL, DO NOT SEND A LINE-FEED (SEND NULLS IF NECESSARY). HOWEVER, THIS MAY REQUIRE AN ASSEMBLY LANGUAGE PROGRAM ON THE OTHER MACHINE. THE PROGRAM ILLUSTRATES THE USE OF THE USER INPUT FLAG, NUMBER 31 AND THE BASIC INPUT FLAG, NUMBER 23. THE ASSEMBLY LANGUAGE CODE WHICH IT STORES IN MEMORY IS AS FOLLOWS: XFER: MOV A,E ;CHR IS IN E ANI 7FH ;MASK OUT PARITY MOV E,A ;SAVE THE CHR LXI H,FLAG ;GET BASIC INPUT FLAG JMP 398CH ;INDEX INTO I/O JUMP TABLE FLAG: DB 23 IT MASKS OUT THE PARITY BIT ON CHARACTERS RECEIVED FROM THE RS-232 PORT, AND CALLS A ROUTINE INSIDE FCS. THE ADDRESS OF THIS ROUTINE IS FOR VERSION 6.78 OF FCS, AND I DO NOT KNOW THE EQUIVALENT FOR VERSION 8.79, BUT I SUSPECT IT IS DIFFERENT. OTHER "FILTERING" CAN BE DONE BY XFER, SUCH AS REMOVING CONTROL CHARACTERS. (IF THE OTHER MACHINE IS A CCII YOU WILL LOSE COLOR CODES IF YOU CHOP OUT ALL CONTROL CHAR- ACTERS.) ALSO, IF THE HOST (SENDING) COMPUTER SENDS ONLY ZEROS FOR PARITY BITS, THEN THIS ASSEMBLY LANGUAGE IS NOT NECESSARY, AND THE WHOLE ROUTINE REDUCES TO THREE LINES - 65170, 65180, AND 65190 - WITH THE 31 REPLACED BY 23 IN LINE 65190. HOWEVER, NEITHER OF THE MACHINES I USE ARE THIS CO-OPERATIVE. LINES 65100 TO 65140 ARE THE USUAL METHOD OF LOADING A MACHINE CODE ROUTINE. IN LINE 65160 A JUMP TO XFER IS SET UP AT THE USER INPUT FLAG JUMP VECTOR, 33221 (81C5H). THEN INTERRUPTS ARE ENABLED, THE BAUD RATE SET AND OUTPUT IS DIRECTED TO THE RS-232 PORT IN LINE 65180. NOTE THE USE OF 'CHR$(13);' TO OUTPUT A CARRIAGE RETURN, BUT NO LINE-FEED, AFTER THE COMMAND IS SENT IN LINE 65190. PRINTED OUTPUT IS RETURNED TO THE DISPLAY, THE INPUT FROM THE RS-232 PORT IS DIRECTED THROUGH THE USER INPUT VECTOR, AND THE PROGRAM EXITS. BASIC IS NOW IN THE NORMAL "READY" MODE, AND THE TRANSFER TAKES PLACE VIA INTERRUPTS. THE END OF BASIC GETS MOVED BACK EACH TIME THE PROGRAM IS RUN, SO IT IS NECESSARY TO RE-INITIALIZE BASIC BETWEEN SUCCESSIVE FILE TRANSFERS. IN FACT, YOU CAN MERGE TWO FILES (EVEN WITH SOME LINE NUMBERS IN COMMON - THE SECOND FILE WINS) BY TRANSFERRING THEM ONE AFTER THE OTHER WITHOUT RE- INITALIZING BASIC. ALSO, THE TRANSFER ROUTINE WILL BE TACKED ON THE END OF THE TRANSFERRED FILE, UNLESS THERE ARE DUPLICATE LINE NUMBERS IN THE FILE (65000 AND UP). IT IS ALRIGHT TO HAVE DUPLICATE LINE NUMBERS, BECAUSE THE PROGRAM'S WORK IS DONE AS SOON AS IT HAS EXECUTED, WHICH IS BEFORE THE TRANSFER STARTS I.E. THE PROGRAM ONLY LOADS AN ASSEMBLY LANGUAGE INTERRUPT ROUTINE, BUT DOES NOT PERFORM THE ACTUAL TRANSFER. PROBABLY THE HARDEST PART OF THE WHOLE THING WILL BE WORKING OUT A COMMAND LINE TO INITIATE THE TRANSFER. OF COURSE, YOU MAY ALSO HAVE TO TRANSLATE FROM THE DIALECT OF BASIC USED ON THE OTHER MACHINE INTO COMPUCOLOR BASIC. THERE ARE MUCH NEATER METHODS OF TRANSFERRING FILES, BUT THIS ONE IS NICE JUST BECAUSE IT IS SO COMPACT. ANY SUGGESTIONS ARE WELCOMED, AND IT SHOULD BE POINTED OUT THAT COMPUCOLOR IS WORKING ON A COMMUNICATIONS SOF-DISK WHICH WILL PROBABLY OBSOLETE THIS ROUTINE.