home *** CD-ROM | disk | FTP | other *** search
/ Old Hackers Atari User Group Newsletter / Old_Hackers_Atari_User_Group_Newsletter_OHMA95A.atr / ibasicpy.txt < prev    next >
Text File  |  2023-02-26  |  4KB  |  1 lines

  1.                 *+*+*¢             BASICCOPY.BAS¢¢       This 9 Sector program is on this¢ OL' HACKERS NEWSLETTER DISK.¢¢ ANOTHER COPY PROGRAM?¢¢       First, we're NOT talking        ¢ DUPLICATE FILE here..this is  a  clone¢ of  Option  C  in the DUP.SYS menu, so¢ disk swaps aren't supported.  I  wrote¢ it  specifically  for loading external¢ files to D8 (and back.) But thanks  to¢ the  Wonders  Of  CIO  it does all the¢ other stuff too.¢¢ WHAT WE GOT HERE?¢¢      First, there's The  String.  LIST¢ lines  20-40 out for later use in your¢ Basic   programs.   NEVER,   EVER  try¢ running string based ML outside  of  a¢ program!  However,  THIS program POKES¢ the   ML  to  Page  Six,  so  you  can¢ experiment.   Not  incidentally,  this¢ also means that you  have  a  Resident¢ Utility  that you can use in Immediate¢ Mode. If you have 151 spare, protected¢ bytes  somewhere else, change the 1536¢ in line 90 to wherever you'd like  the¢ ML to live.¢¢ HOW TO:¢¢      Press  a  key  at the prompt, and¢ you'll see the Test Module  listed  on¢ the  screen.  (Once the code is POKEd,¢ you can LIST  100,160  to  disk,  NEW,¢ then  ENTER   it   back   in   as   an¢ independent  program.)  Use the cursor¢ keys  to  edit  the  Basic  lines  for¢ different  filenames,  channels,  etc.¢ Then scoot  the  cursor  down  to  the¢ 'GOTO  120', and hit RETURN to run the¢ routine. Once you've done this  a  few¢ times,  you  should have a pretty good¢ idea of what you can do with your  New¢ Utility.¢¢ PROTECTION¢¢      PLEASE:  Write  Protect  tabs are¢ NEVER a bad idea for  valuable  files,¢ so use them, specially when trying new¢ files!¢¢ SO, HOW DOES IT WORK?¢¢      The first thing you need to do is¢ OPEN  the  channels  that will be used¢ for READ and WRITE. You DO have to  do¢ this  from  Basic. (Sorry, no miracles¢ in   Small  Routines.)  ANY  available¢ channel (1 to 7) is OK. The READ  will¢ probably be something dull like:¢          OPEN #1,4,0,"D:FILE"¢¢       Things    get    slightly   more¢ interesting with  the  WRITE  options.¢ For instance:¢            OPEN #2,8,0,"D8:NEWFILE"¢ will do a simple copy. Want to APPEND?¢ Try:¢            OPEN #2,9,0,"D:OLDFILE"¢ which will tack the READ file  to  the¢ end  of  OLDFILE. And then there's the¢ dumps:¢            OPEN #2,8,0,"P:"¢ for typing a file on the printer,¢¢ For a dump to the screen. Right  handy¢ for DOC files.¢            OPEN #2,8,0,"E:"¢¢ HOW ABOUT POKE'ing A CHANGE?¢¢      (If  you're  fussy like me, POKEs¢ to 709 and 710  will  zap  that  tired¢ GR.0  blue.)  Again,  you  can use any¢ available I/O channel for the OPENs.¢¢ THE USR ROUTINE¢¢      Once the files are set, call  the¢ USR    routine.   3   parameters   are¢ required. (Ugh!)  First,  the  channel¢ numbers that have been OPENed for READ¢ and WRITE, respectively. Then  FRE(0).¢ Why?  Free  Memory is the file buffer,¢ and the routine needs to know just how¢ much  RAM  it  has to work with. Don't¢ worry about running short. It'll  work¢ in  chunks  if  it  has to. The format¢ is:¢¢    X=USR(ADR(COPY$),READ CHANNEL,¢    WRITE CHANNEL, FRE(0))¢¢ WANT MORE?¢¢      Error Checking? Okay,  check  the¢ value  returned to the USR function. 1¢ is   the   All   Clear,  indicating  a¢ successful Copy.  255  indicates  that¢ the  wrong  number  of parameters were¢ passed.   (I   have   a  Serious  Typo¢ Problem.) In the event  of  a  regular¢ I/O  error (say 162 for a Full Disk or¢ 133 'cause you tried to WRITE to #79),¢ the  regular  number will be returned.¢ Errors   of   course,   terminate  the¢ routine.¢¢ A FINAL NOTE:¢¢      In ALL cases, BOTH channels  that¢ were  OPENed will be CLOSEd before the¢ program returns to  Basic,  so  you'll¢ need to OPEN them again if needed.¢                 ** End **¢¢