nickerso@dalcsug.UUCP (Scott William Nickerson) (01/14/88)
This article is meant to be a companion to the article on killing wordwrap on the c-64 screen in BASIC. One of my fellow students Geoff Seeley submitted a routine which will enter programs from text files on disk as I did not include one with my original article. The routine which I am submitting here will work without requiring that the line numbers be of any particular value and is also self-destructive when it's task is completed. This article gives a short routine which reads a program from a sequential disk file and enters it into the computer's memory as if the lines were typed from the keyboard. This routine first prompts the user for a filename which should be present on the disk. For efficiency no error handling is performed so if you enter a name which is not on the disk the program will bomb. Each line of the sequential file should be numbered and these numbers must be greater than 6. As the routine loads in the program lines you will see them appearing at the top of your screen. Once the file is completely read the routine will remove itself leaving only the finished program in memory. You may then save it in a normal fashion. Here is the Dynamic Keyboard Routine: 0 input"enter seq file name";f$:open8,8,8,"0:"+f$+",s,r" 1 poke152,8:printchr$(147); 2 ifstthenclose8:goto5 3 get#8,a$:printa$;:ifa$<>chr$(13)then2 4 print"goto1":poke631,19:poke632,13:poke633,13:poke198,3:end 5 printchr$(147);:fori=0to6:printi:next:poke198,9:poke631,19:poke639,147 6 fori=632to638:pokei,13:next:end This routine works very well and can be used for entering any Basic programs exchanged as text files. You will have to check for any special format characters which may not transmit properly. This problem can be avoided if instead of using print strings such as ?"[clr]" in your programs you use ?chr$(147). If you use this 'more readable' convention you will be able to exchange Basic programs with no problem as text files through mail, news, or just over a modem to a friend. Scott Nickerson (nickerso@dalcsug)