Listing of file='COPY.SRC;01' on disk='vmedia/scratch-sector.ccvf'
= 271-023 0.01 UF CAPACITOR = 272-1051 2" 8-OHM SPEAKER = 40-245 THE COMPONENTS CAN BE CONNECTED IN ANY ORDER AND IT DOES NOT MATTER WHICH WAY ROUND. THE RESISTOR IS NOT ESSENTIAL, BUT ADVISABLE. 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 ROUTINE 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 THE 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 A