home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / Information / CAT5-MSGS.ARC / 5.CAT5-930915 < prev    next >
Encoding:
Text File  |  2019-04-13  |  33.5 KB  |  709 lines

  1.  
  2.  
  3. correctly, the Xmodem download(BBS) routine did not work properly. Yes,
  4. beacuse I remember someone having to upload me a file using the Punter code.
  5. Is there a working version of Xmodem out there. I would rather use it than
  6. Punter since Xmodem seems to be more popular.
  7.  
  8. P.S. I'm also looking for a fastload program that will work with this thing.
  9. The BBS ML is at the bottom of BASIC.
  10.  
  11. Will a fastload program work with this BBS if the ML is at the bottom of
  12. basic? Will any compilers work? I have been told that compilers need that area
  13. to stre they code. Please help. Thanks!
  14.  
  15.  ------------
  16. Category 5,  Topic 33
  17. Message 4         Fri Aug 13, 1993
  18. CBM-ED [e.g.bell]            at 08:44 EDT
  19.  
  20.  Michael:
  21.   MS>  Ok. Can this be the problem? I'm opening a file such as 'open
  22.   MS> 2,8,2,"games,p,w"' just before calling the Xmodem
  23.   MS> download(BBS). You stated that I need not to do this so I'm
  24.   MS> assuming this is done automatcially.
  25.  
  26.  I didn't say that.  I said for READing the file (when  you use ,#,r) 
  27.  you don't have to add the ',p,r' for example.  When you open for write,
  28.  you absolutely MUST use those entries.
  29.  
  30.  In addition, you should check the source code that came in that APPEND
  31.  file.  It seems to me that the ML uses channel 5 to write to the 
  32.  disk, not channel 2.  That would explain why nothing is getting written
  33.  to the file.  In other words, check the code.  If I'm correct, you 
  34.  will have to '  open 5,8,5,"games,p,w"  '.  How do you tell from the ML?
  35.  Look at the section that writes to disk for some code that looks like
  36.  this:
  37.  
  38.  ldx #5
  39.  jsr chkout
  40.  
  41.  If it is 'ldx #2' your code is correct, but check.  Whatever it s for
  42.  downloads will be the same for uploads.  So if you are opening channel
  43.  2 for downloads, your example is probably correct.  It just kind of
  44.  sticks with me that Punter  and Xmodem shells I've seen generally use
  45.  2 for the modem (open 2,2,2,####) and 5 for the files.
  46.  
  47.   MS> As far as you saying implement his code, I'm totally confused
  48.   MS> and don't know where to start. I have to rewrite the U/d
  49.   MS> section and if my memory serves me correctly, the Xmodem
  50.   MS> download(BBS) routine did not work properly. Yes, beacuse I
  51.   MS> remember someone having to upload me a file using the Punter
  52.   MS> code. Is there a working version of Xmodem out there. I would
  53.   MS> rather use it than Punter since Xmodem seems to be more
  54.   MS> popular.
  55.  
  56.  That shell works.  The bug is subtle and I believe would only affect a
  57.  call from a BLITZ!ed program.  But I have used the shell as a basis for
  58.  my own when I was first starting out, and it does work.  There is also
  59.  a Wxmodem shell on GEnie that includes Xmodem CRC.  The APPEND file you
  60.  got only does checksum, which is kind of a dinosaur.  On the down side,
  61.  in my opinion, that code is kind of sloppy, but it does the job also, and
  62.  I know it works too.
  63.  
  64.   MS> Will a fastload program work with this BBS if the ML is at the
  65.   MS> bottom of basic? Will any compilers work? I have been told
  66.   MS> that compilers need that
  67.  
  68.  Compiled programs I've seen include their own runtime package and the
  69.  code generated is pretty much contiguous, and loads in the normal 
  70.  BASIC program space (for the 64 mode).  So I would have to give a 
  71.  qualified ' I suspect it will work' when compiled.  It is actually 
  72.  better than that, because there are a LOT of programs that are compiled
  73.  that use ML.... including BBS programs.  As for fast loaders, some do
  74.  and some don't.  PCG Term, which I wrote in the mid 80's, worked with
  75.  ffastloaders until I made it support different fonts.  BellTerm worked
  76.  (works) fine with fast loaders.  Since John Brown kindly uploaded the
  77.  source to BellTerm, it might pay you to spend the time downloading and
  78.  examining it as it is 100% ML and includes Xmodem and Punter and calling
  79.  routines, routines to open files and check the error channel, etc.
  80.  ------------
  81. Category 5,  Topic 33
  82. Message 5         Sat Aug 14, 1993
  83. M.SEABRUM                    at 01:44 EDT
  84.  
  85. Hello. The compilers that I have, all PD will not compile properly. Other
  86. people have told me that compilers need the BOTTOM OF BASIC to work properly.
  87. Hmm.. The BBS MAIN ML code is stored there as stated before. I don't program
  88. in ML, but from judging from other people programs I'm learning slow. Anyway,
  89. I don't know how to move the BBS ML from the bootom of basic to another area
  90. of memory because I'm recieving no hel! Does Genie have a HELP ROOM or
  91. something? I have compute's ML and Basic relocator on a disk, but no
  92. instructions came with the programs. I was thinking I could use the ML
  93. relocator to relocate the BBSML, but with no instrcutions I quickly got lost.
  94. Why would someone need to relocate Basic??
  95.  
  96. As far as the Xmodem goes, I will try to download Wxmodem and get that source
  97. for Bellterm. I have a book for ML - ML for the ABSOLUTE BEGINNER and I must
  98. say it's not very well written. The book was given to me so I can't complain.
  99. There's typo's in it to add to the confusion of the beginner. I'm trying to
  100. implement a TIMEOUT routine in the BBS. I have a hardcopy of a message you
  101. left before, but it was abbreviated and very confusing. In order to get a
  102. timeout, how would I go by doing this?
  103.  
  104. I kinda figure by looking at the BBS ML code that it will properly have to be
  105. programmed in the Kernal GETIN routine? Correct? When this routine is called,
  106. does it wait there until a key is pressed? That looks like the problem to me..
  107. How can I implement a timeout in the kernal routine if this is the case?
  108.  
  109. Editing this ML seems SCARY to say the least. One mess up and that's all she
  110. wrote. I have 3 monitor programs, SUpermon+, X-mon, and Bugmon.
  111.  
  112. Is there a monitor out there that will take the confusion out of Hexadecimal?
  113. I know it's the base of 16, and makes up half of a byte. But when you get into
  114. all of that $c000 stuff, things really begin to get confusing!! Typing
  115. something like LDA #25 or LDA 828 would be more simpler. I studied the ML and
  116. will go through a ML learning program after I leave here with the files that I
  117. seek. (Wxmodem, and Bellter source).
  118.  
  119. Is learning to assign string values hard in ML. Something like in$=(user
  120. input). I still can't figure out how the guy get the user input into the
  121. variable in$. I know this is the first variable that must be defined after the
  122. open statement.
  123.  
  124. As far as the filenumber goes for Append2.... The numbers are correct. 2 is
  125. for the disk and 5 is for the serial or modem.
  126.  
  127. Hmm.. I need a ML editor. Tell me this. Can ML disk routines read files from
  128. any drives (1541-1581 series?) This guy has a routine in the ML to read files.
  129. The problem is that he has them set up as lda #08. I was wondering if I poke a
  130. location of the drive I intend to use in location 828 or something.
  131.  
  132. This was I can say lda 828... You see. Something simple. I'm wondering would
  133. the routine still work if the drive being accessed is either a 1541, 1541II,
  134. 1571, or 1581.??
  135.  
  136. That's something I will implement in the next version of this most time
  137. consuming project. Judging from what I said earlier about the loads of the
  138. BBS... I have ML at the bottom of basic but no fastloaders seems to want to
  139. work. Hmm.. What would you say the problem is? I have a ton of fastloaders
  140. that start at 2049. That's the start of basic right? I have one that starts a
  141. 4, and one that starts at 52480. Luckily the BBS pokes are relocatable.
  142.  
  143. At the present time, the MAIN BBS takes 82 seconds to load in. That's 82
  144. seconds too long. Zap load took about 17 seconds and I was very impressed.
  145. After the main part if loaded, I can't loader anything else. If I do, all I
  146. get is garabage. This included all my fastloaders, including FASTLOAD.
  147.  
  148. Can you suggest a cure for this problem without having to buy commercial
  149. equipment. I'm trying to put out a quality BBS. Believe me there's nothing
  150. more aggravating than downloading a BBS that does not WORK!! I have done it
  151. alot. This BBS is a prime example. More BUGS that a SOUTH AMERCIAN JUNGLE.
  152. Very unreliable. I have plans for it though. The author dropped this thing off
  153. in PD and I since have cared for it :). Anyway, tell me this.
  154.  
  155. I have modified a Callback validator to work with this thing. The problem is
  156. the modem is not hanging up. I'm sending the following.
  157.  
  158. po$="+++":gosub120(output to
  159. modem/screen):fork=1to1100:nextk:po$="ATH0":gosub120:fork=1to1100:nextk:return(
  160. Return to calling routine)
  161.  
  162. The modem does not hang up. I wonder why? Should I pause before sending the
  163. "+++" also? Should I put the whole routine into a loop to insure it get
  164. executed? Nah... Ml looks to be fun and challenging... I'm ready to explore.
  165.  
  166. Please help! Hmmm... I think that it. I know I have a big shopping list, but
  167. that alone makes your job as SYSOP very respected and entertaining. Any help
  168. with Fastloads, Relocating ML, Editing ML without too many hassels such as
  169. HEX, or any other of the above questions would be greatly appreciated. I'm
  170. making hardcopies of this entire message(s) so please be specific.
  171.  
  172. By the way, did you hear about Mr. James Jordan? Michael Jordan's father. It's
  173. a tradegy ... I wonder who, and why?
  174.  
  175. Please respond as soon as POSSIBLE>
  176.  
  177.  ------------
  178. Category 5,  Topic 33
  179. Message 6         Sat Aug 14, 1993
  180. HOWIE-CBM                    at 06:20 EDT
  181.  
  182.  Michael,
  183.  
  184.  I can reply to a part of one question.
  185.  
  186.  The probable reason the ATH0 is not working is that the routine is not
  187.  properly capturing modem control.  I would recommend an ever so slight
  188.  pause between each of the three +'s.  So it would be something like:
  189.  
  190.  + (pause) + (pause) +
  191.  
  192.  After which you should be able to successfully send the ATH.
  193.  
  194.  Howie
  195.  ------------
  196. Category 5,  Topic 33
  197. Message 7         Sat Aug 14, 1993
  198. C128.JBEE                    at 08:17 EDT
  199.  
  200.  re:getting input into a string
  201.  What you do is have a loop that constantly scans the keyboard input buffer,
  202.  sometimes people set it to one character when using ML, when it reads the
  203.  "empty" value (88?) it just loops until a key is pressed.  Once a key is
  204.  pressed the value is either stored or displayed.  hen you have finished
  205.  getting the string, you put a 00 after the last byte of the string
  206.  you just received.  When you want to recall the string to the screen
  207.  you call a Kernal routine that will read the string until it finds the
  208.  terminating zero.
  209.  
  210.  Jim Butterfield had a ML to string routine called "string thing" for the
  211.  C-128.  I do not know if there was one for the C-64.
  212.  
  213.  For a lot of general routines that could save you a LOT of time, Compute's
  214.  "Machine Language Routines for the C-64/128" can't be beat.
  215.  
  216.  There are Basic routines for reading ANY disk directory uploaded by
  217.  Ed Parry (EBBS?).  About 1988.
  218.  
  219.  Here are a few files online you might find helpful:
  220.  #3585 Basic Dir   (EBBS^)
  221.  #4774 disassemb.arc
  222.  #8794 learn-ml.sfx (a few tiny mistakes in this but generally okay)
  223.  #3297 ml/hex/bin chart
  224.  ------------
  225. Category 5,  Topic 33
  226. Message 8         Sat Aug 14, 1993
  227. CBM-ED [e.g.bell]            at 09:10 EDT
  228.  
  229.  Michael:
  230.   MS> I'm learning slow. Anyway, I don't know how to move the BBS ML
  231.   MS> from the bootom of basic to another area of memory because I'm
  232.   MS> recieving no help! Does Genie have a HELP ROOM or something? I
  233.   MS> have compute's ML and Basic relocator on a disk, but no
  234.   MS> instructions came with the programs. I was thinking I could
  235.   MS> use the ML relocator to relocate the BBSML
  236.  
  237.  I don't know how you can say you are receiving no help.  How many 
  238.  replies have we given you so far.  The only way I can see we could
  239.  give you more help would be to write the program for you.  I told you
  240.  you would need a disassembler and that there are at least 2 in our 
  241.  libraries.  Did you search for them and download them?  At some point
  242.  you are going to have to help yourself also.  I would venture to say
  243.  that all of the ML programmers who are answering you had a lot less
  244.  help than you are getting.  You need to 1] disassemble the block of
  245.  code you want to relocate, and 2] reassemble it in the desired location.
  246.  If you are *lucky*, there will be no address tables used and it will be
  247.  a straight assembly job.  If not, you are simply going to have to learn
  248.  ML and either diassemble the code you need or write your own.  Did the
  249.  guy who gave you the BBS code not give you the source code for the ML?
  250.  Can you see where that might look suspicious?
  251.  
  252.   MS> get that source for Bellterm. I have a book for ML - ML for the
  253.   MS> ABSOLUTE BEGINNER and I must say it's not very well written.
  254.   MS> The book was given to me so I can't complain. There's typo's
  255.   MS> in it to add to the confusion of the beginner. I'm trying to
  256.   MS> implement a TIMEOUT routine in the BBS. I have a hardcopy of a
  257.   MS> message you left before, but it was abbreviated and very
  258.   MS> confusing. In order to get a timeout, how would I go by doing
  259.   MS> this?
  260.  
  261.  If that message was abbreviated, you had to be the one who abbreviated
  262.  it.  I posted a perfect example of exactly what you wanted done.  It
  263.  was in ML.  The GETIN routine compares more to BASIC's GET routine 
  264.  than the INPUT routine.  It polls the keyboard.  If nothing is there,
  265.  it just moves on unless you loop.  Therefore, as in the example code I
  266.  gave you, you can use the jiffy timer to have a timed input.  Check 
  267.  my code again.  I took the time to do that for you, but I can't do that
  268.  over and over again for the same thing.  By all means, grab the source
  269.  code we pointed you to.... look at it. Study it.  I bet the ML programmers
  270.  here spend an obscene amount of time even now poring over source code to
  271.  learn... I know I do.  
  272.  
  273.   MS> I kinda figure by looking at the BBS ML code that it will
  274.   MS> properly have to be programmed in the Kernal GETIN routine?
  275.   MS> Correct? When this routine is called, does it wait there until
  276.   MS> a key is pressed?
  277.  
  278.  No, it does not wait, and yes, that is where you will have to do your
  279.  coding call.. as I said in my previous message and in the previous 
  280.  paragraph.
  281.  
  282.   MS> Editing this ML seems SCARY to say the least. One mess up and
  283.   MS> that's all she wrote. I have 3 monitor programs, SUpermon+,
  284.   MS> X-mon, and Bugmon.
  285.  
  286.  MicroMon is the best one I know of for the C64, tho you cannot expect
  287.  a monitor to do all the work, and for a large project, there is just
  288.  no way I would even consider using one.  But MicroMon is PD and the
  289.  very best one I've evr seen.
  290.  
  291.   MS> Is there a monitor out there that will take the confusion out
  292.   MS> of Hexadecimal? I know it's the base of 16, and makes up half
  293.   MS> of a byte. But when you get into all of that $c000 stuff,
  294.   MS> things really begin to get confusing!! Typing something like
  295.   MS> LDA #25 or LDA 828 would be more simpler.
  296.  
  297.  You may be making it harder than it is, but as I suggested before, and
  298.  even gave you the model number for, you need a calculator if you are
  299.  going to work in 64 mode.  However, I can't understand why you are 
  300.  working in 64 mode.  Even if you are writing code for the C64, you will
  301.  still be better off working in 128 mode.  There is a monitor built in,
  302.  you have the hex$ function to obviate the need for a hex calculator,
  303.  and the operations are faster.  Yes, you can write code for the 64 in 
  304.  128 mode... and the assemblers are more powerful in 128 mode too... 
  305.  Which brings me to the rest of the answer to your question.  If you were
  306.  using an assembler, you would not have to worry about loading hex 
  307.  values as you can assign labels, etc.
  308.  
  309.   MS> Is learning to assign string values hard in ML. Something like
  310.   MS> in$=(user input). I still can't figure out how the guy get the
  311.   MS> user input into the variable in$.
  312.  
  313.  Study the POINTER command in BASIC.  It will give you the address in
  314.  bank 1 of the variable... you can pass that to your ML routine so that
  315.  it can store info right in the string definition.  A couple suggestions
  316.  here though... first, define the string at the start of your BASIC
  317.  program to equal the largest number of spaces (up to 255) of the longest
  318.  possible input string you ever expect.  Then *never* assign it a value
  319.  in BASIC... only in ML.  Always terminate it with a zero in ML, and update
  320.  the length byte in the variable description bytes.  If you don't know
  321.  what all of this is, you need to study that too.  Can you see just what
  322.  a lot you are trying to accomplish.  One of the best ways to do it is to
  323.  get other people's source code and study study study.  Many don't release
  324.  their source code.  I have released a lot.  Have you got it and studied
  325.  it.
  326.  
  327.   MS> Hmm.. I need a ML editor. Tell me this. Can ML disk routines
  328.   MS> read files from any drives (1541-1581 series?) This guy has a
  329.   MS> routine in the ML to read files. The problem is that he has
  330.   MS> them set up as lda #08. I was wondering if I poke a location
  331.   MS> of the drive I intend to use in location 828 or something
  332.  
  333.  You need to learn ML.  I know you are trying, and yes, ML disk routines
  334.  can do what you suggest if properly written or written to do what you
  335.  ask.  What you need to know is what location is  used for the device 
  336.  number.  If you find that, you can do just what you ask.  The problem
  337.  you may run into is that the author used a variable instead of a direct
  338.  load.  However, any ML programmer could look at the code and find that 
  339.  information just knowing what is involved in opening files from ML.  A
  340.  particularly good reference for this kind of thing is the Commodore 64
  341.  Programmers Reference Guide.  
  342.  
  343.   MS> po$="+++":gosub120(output to
  344.   MS> modem/screen):fork=1to1100:nextk:po$="ATH0":gosub120:fork=1to11
  345.   MS> Return to calling routine)
  346.  
  347.  Howie's answer is probably right on the money... a slight delay after
  348.  each '+', and at LEAST a 1 second delay AFTER you send all three plus's.
  349.  Being that you are working in BASIC you may get away w/o the delay betw.
  350.  the + characters, tho probably not when compiled, but the 1 second delay
  351.  BEFORE and AFTER the +++ is absolutely required by the modem.  You will
  352.  see that in the modem manual.  Did you read that?
  353.  
  354.   MS> without too many hassels such as HEX, or any other of the above
  355.   MS> questions
  356.  
  357.  There is not going to be any way to learn ML or do what you are doing
  358.  without hassles.  That is the sweat part of the job that consumes so many
  359.  thousands of hours on the way to the glory part of a finished project.
  360.  I have stressed reading... I know you are trying to get the info to do
  361.  that.  There is no way you can learn without it though, including the
  362.  work of others which you *do* have access to.  We'll keep on responding
  363.  but you are going to have to write the program yourself.  ;)
  364.  ------------
  365. Category 5,  Topic 33
  366. Message 9         Sat Aug 14, 1993
  367. C128.JBEE                    at 22:29 EDT
  368.  
  369.  I believe there is an article in the REBOCARDO database (menu option on
  370.  page 625) about using the pointer command from C-128 mode.
  371.  ------------
  372. Category 5,  Topic 33
  373. Message 10        Sun Aug 15, 1993
  374. M.SEABRUM                    at 05:05 EDT
  375.  
  376. Thanks for all the help that I recieved. I'm going on now to read and study ML
  377. code. I'm sorry if I offended anyone by saying that I recieved no help. That
  378. really was not my intentions.
  379.  
  380. Any help with fastloaders for the BBS which stores ML at the bottom of basic
  381. will be greatly appreciated.
  382.  
  383. Any suggestions? Is there a relocatable fastloader out there (PD?)?
  384.  
  385. /s
  386.  ------------
  387. Category 5,  Topic 33
  388. Message 11        Sun Aug 15, 1993
  389. CBM-ED [e.g.bell]            at 08:56 EDT
  390.  
  391.  Michael:
  392.   MS> Any help with fastloaders for the BBS which stores ML at the
  393.   MS> bottom of basic will be greatly appreciated.
  394.  
  395.   MS> Any suggestions? Is there a relocatable fastloader out there
  396.   MS> (PD?)?
  397.  
  398.  I don't think anyone is going to be able to help you regarding the 
  399.  fastloaders and code  under BASIC, but I will tell you this.  BellTerm
  400.  used not only the RAM under BASIC, but also the RAM under the I/O
  401.  block and under the Kernal too, and it always worked with my Mach 128
  402.  cartridge (in 64 mode) and Fast Load too.  I don't know why any fast
  403.  loader would have a problem with that unless it overwrote the fast
  404.  loader.
  405.  
  406.  As for the fast relocators....
  407.  
  408.  There is source code around for just what you want, but it is sizable
  409.  aand I'm not sure it would be the ideal thing for use within a program.
  410.  The last thing I would want to do would be to devote a big chunk of
  411.  memory to just loading files.  Another problem some fast loaders do
  412.  cause is with RS232 for some reason... probably because they change
  413.  vectors.  But here is what a search of our libraries came up with...
  414.  
  415.   5926 FASTLOAD1541             X K.CARAPELLOT 880617    1260    107   5
  416.        Desc: software fastload for 1541
  417.  
  418.   1548 TURBO 1541               X MIKEW1       860713    1260    206   9
  419.        Desc: Speeds up 128/1541 disk access!
  420.  
  421.  And while I was at it...
  422.  
  423.   4033 D/UNASMBLE.SDA           X ML-BUG       870514    6300    119   5
  424.        Desc: Multi-disk un-assembler.
  425.  
  426.  
  427.  The last may help you generate your own relocatable code from the ML progs
  428.  available that load places you don't want them to.  Of course, this all
  429.  means you are going to have to study study study to learn how to do this
  430.  stuff.  On the bright side, the more you learn, the easier stuff becomes
  431.  to  learn.
  432.  ------------
  433. Category 5,  Topic 33
  434. Message 12        Mon Aug 16, 1993
  435. M.SEABRUM                    at 01:04 EDT
  436.  
  437. thanks... how cam i make ml relocatable? that seems very difficult! but again,
  438. anything can be accomplished.
  439.  
  440.  ------------
  441. Category 5,  Topic 33
  442. Message 13        Mon Aug 16, 1993
  443. M.SEABRUM                    at 01:52 EDT
  444.  
  445. Ok. I have a question that need answering. Please help. We already discussed
  446. the Xmodem problem. I can seem to
  447.  
  448. relate to what you were saying. However, I'm confused when you said implememnt
  449. George Hugs NMI command and things SSHOULD work if it was a TIMING PROBLEM.
  450.  
  451. Well, I'm interested. Now, exactly what is a NMI and what will it do to my
  452. program? How do I disable them? You said I will have to disable them right
  453. before accessing does. So how would I enable and disable them? I need the info
  454. on how to implement them into the program. I will now do my part and loading
  455. the ML and seeing what's the starting and ending address.. Also see if there
  456. is docs which I seriously doubt. By the way, I really do appreciate all the
  457. help that you have given me so far. Thanks alot.
  458.  
  459.  ------------
  460. Category 5,  Topic 33
  461. Message 14        Mon Aug 16, 1993
  462. CBM-ED [e.g.bell]            at 08:56 EDT
  463.  
  464.  Michael:
  465.   MS> implememnt George Hugs NMI command and things SSHOULD work if
  466.   MS> it was a TIMING PROBLEM.
  467.  
  468.  I said implement George Hug's wedge code.  It is a whole little NMI
  469.  interrupt routine that corrects the weakness of the resident ROM 
  470.  routine.  It will solve your problem IF you problem is a timing problem.
  471.  However, I don't remember what your problem was at this point.
  472.  
  473.   MS> exactly what is a NMI and what will it do to my program? How do
  474.   MS> I disable them? You said I will have to disable them right
  475.   MS> before accessing does. So how would I enable and disable them?
  476.   MS> I need the info on how to implement them into the program. I
  477.   MS> will now do my part and loading the ML and seeing what's the
  478.   MS> starting and ending address.. Also see if there is docs which
  479.   MS> I seriously doubt.
  480.  
  481.  NMI is Non-Maskable Interrupt, which is a misnomer.  They are maskable
  482.  in that you can disable them.  It doesn't do anything TO your program,
  483.  but actually FOR your program.  It processes incoming bits over the 
  484.  modem into whole, 8 bit bytes, which your code can process.  George Hug's
  485.  code starts with a JMP table that you use to access the ENABLE and 
  486.  DISABLE routines.  His code also changes the CHKIN and CHKOUT vectors
  487.  to automatically enable and disable the interrupts as I recall.  Since I
  488.  don't use CHROUT or GETIN for my modem code, but instead enter the 
  489.  routines at other points, I call DISABLE before doing any DOS access and
  490.  ENABLE afterward.
  491.  
  492.  There are docs for the routine in the Transactor magazine in which it 
  493.  appeared... February 1989 I believe.
  494.  
  495.  Why do you need the starting and ending address of the wedge?  I don't
  496.  have it at my fingertips but don't see where it would be terribly
  497.  useful to you.  More useful would be the JMP table entry points...
  498.  I can post those when I dig thru my mags to find the article.
  499.  
  500.  Just out of curiousity, you are posting elsewhere in the BB an offer
  501.  for registered copies of your program.  Is it that ready, or are you
  502.  putting the cart before the horse.  It sounds to me like you have a lot
  503.  of plans not yet realized.  And I and any of the staff here are more
  504.  than happy to help where we can.  You are what makes our time online so
  505.  enjoyable!  Keep 'em coming!
  506.  ------------
  507. Category 5,  Topic 33
  508. Message 15        Mon Aug 16, 1993
  509. M.SEABRUM                    at 22:14 EDT
  510.  
  511. Hello again. The BBS is ready.. Release friday. All I'm trying to do is make
  512. this version better than it already is. That's why I re-wrote the transfer
  513. section and add new protoc.. If that does not work for me, I'll just keep the
  514. old transfers section.
  515.  
  516. In other words, I'm doing last minute touch ups.. It's looking more and more
  517. like I will have to try to tackle Wxmodem. By the way, I met a guy today that
  518. have a # of ML books for sale. They include Compute's ML routines for C64,
  519. Compute's Telecomputing, Machine Lanuage for beginners Mapping the C64/and
  520. 128, and 64/128 Assembly Lanuage. He had a ton of them, especially for the
  521. C128... I'm not interested in the C128 at the moment though.. Say, will ML
  522. that I write for 64 mode also work in 128 mode? That is, if ML was stored in
  523. the correct address in 128 mode. I know the two have diffrent adresses and
  524. all. I kinda figured that 64 ML opcodes should work in 128 as well.
  525.  
  526. Please post the JMP table of Mr. Hug's 2400 baud routine.
  527.  
  528. My problem with Xmodem was that the BBS could not download files from a user,
  529. but it could upload them.
  530.  
  531. I don't know if it was a timing problem or not... Talk to you later..
  532.  
  533.  ------------
  534. Category 5,  Topic 33
  535. Message 16        Tue Aug 17, 1993
  536. CBM-ED [e.g.bell]            at 08:31 EDT
  537.  
  538.  Michael:
  539.   MS> have a # of ML books for sale. They include Compute's ML
  540.   MS> routines for C64, Compute's Telecomputing, Machine Lanuage for
  541.   MS> beginners Mapping the C64/and 128, and 64/128 Assembly
  542.   MS> Lanuage. He had a ton of them, especially for the C128... I'm
  543.   MS> not interested in the C128 at the moment though.. Say, will ML
  544.   MS> that I write for 64 mode also work in 128 mode? That is, if ML
  545.   MS> was stored in the correct address in 128 mode. I know the two
  546.   MS> have diffrent adresses and all. I kinda figured that 64 ML
  547.   MS> opcodes should work in 128 as well.
  548.  
  549.  Post this guy's phone number here.  There are a lot of us scratching
  550.  for these books, particularly the 128 Mapping book.  However, if you 
  551.  have any plans ever to move to the 128, you should SNAP these books up
  552.  before someone else sees the guy's ad!
  553.  
  554.  As for code written for 64 mode working in 128 mode, the answer has to
  555.  be a posibble maybe.  While the opcodes are all the same, the architectue
  556.  is not.  There is a lot of bank switching you have to learn to do in 128
  557.  mode.  It is sort of like swapping the Kernal and BASIC and I/O in and
  558.  out on the 64, but a little more complicated.  It is a bear to learn but
  559.  kind of fun once you do.
  560.  
  561.   MS> Please post the JMP table of Mr. Hug's 2400 baud routine.
  562.  
  563.  Here it is:
  564.  
  565.  XX00 jmp setup;           set up the timning based on the open 
  566.  XX03 jmp inable;          enable modem after dos access
  567.  XX06 jmp disable;         disable modem before dos access
  568.  XX09 jmp rsget;           get a byte from the modem
  569.  XX0C jmp rsout;           send a byte to the modem
  570.  
  571.  The XX would be whatever page in memory you assembled the code at.
  572.  The magaizine article usd $1a, so it would be $1a00, $1a03, $1a06, etc.
  573.  
  574.  Immediately after the jmp table is a table of speed settings for the
  575.  differ ent baud rates.
  576.  
  577.  strt24          .word $01cb;    459 start-bit times
  578.  strt12          .word $0442;   1090
  579.  strt03          .word $1333;   4915
  580.  ;
  581.  full24          .word $01a5;    421 full-bit times
  582.  full12          .word $034d;    845 
  583.  full03          .word $0d52;   3410
  584.  
  585.  These timing values set the timing for the NMI transfer routine for 
  586.  each bit.  Some programs provide a means of 'tweaking' the baud rate.
  587.  That  is, allowing minor adjustments to the start-bit detection timing.
  588.  So if you want to do this, the value in the 'strt##' tables above are
  589.  the ones you would tweak.  O, and a word table appears in memory in low
  590.  byte high  byte order, tho the source code doesn't look like that.
  591.  
  592.   MS> My problem with Xmodem was that the BBS could not download
  593.   MS> files from a user, but it could upload them.
  594.  
  595.  That definitely sounds like timing to me IF it is not working at the
  596.  higher baud rates.  If it won't even work at  300 baud, then you probably
  597.  have something wrong with your Xmodem protocol code.  The WXModem you
  598.  mention might be an excercise, but I don't think there are enough people
  599.  using that to make it worthwhile, tho the code with it does include an
  600.  Xmodem CRC shell too.  You can make that decision at the menu level  tho.
  601.  (in other words, if you don't want to support Wxmodem, just don't offer
  602.  it as an option on the menu).
  603.  ------------
  604. Category 5,  Topic 33
  605. Message 17        Tue Aug 17, 1993
  606. M.SEABRUM                    at 21:13 EDT
  607.  
  608. One question. You mention source code. Why is this code so valuable? Is it
  609. like a BLZ program, but you can actually list it and sees what makes the
  610. program tick? I'm downloaded half the Bellterm source last night and will try
  611. to download the other half tonight. It mentioned something about protocols
  612. being in there.. How can I use this source code and  implelemnt it into my
  613. program(if I'm allowed to do this)? As far as Wxmodem goes, I tested it and
  614. found out there's no TIMEOUT routine. It just hangs when SENDING and RECIEVING
  615. a file is the caller never actually uploads a file. This code will do me no
  616. good.
  617.  
  618. It seems to me that ML is very difficult to edit. Everything seems to be so
  619. TIGHT! How could one go in and change things around? You were right when you
  620. said I should be using the 128 monitor. I picked up Compute's First/Second
  621. Books on the 128 at my local library. One of the books had a section talking
  622. about the 128 monitor and how to take the confusion out of HEX. I understand
  623. that now. It also said you can change the ML code by listing it some way and
  624. using the screen editor to change anything that you like. Ok, that's find and
  625. dandy.. Since everything is so TIGHT, I kinda figured another method had to be
  626. used. Someone told me that Monitors were better than assemblers for smaller
  627. applications. They also said that assemblers were very difficult to work with.
  628. This is the reason I was stuck on Monitors. In my opinion, symbolic assemblers
  629. seems to be easier to use. However, they do look very confusing for the first-
  630. timers. Can you point me into the right direction? I need a good symbolic
  631. assembler with DOCS... How do programmers get the symbolic assemblers to
  632. assemble code? Disassemble code?
  633.  
  634.  ------------
  635. Category 5,  Topic 33
  636. Message 18        Tue Aug 17, 1993
  637. CBM-ED [e.g.bell]            at 22:50 EDT
  638.  
  639.  Michael:
  640.   MS> source code. Why is this code so valuable? Is it like a BLZ
  641.   MS> program, but you can actually list it
  642.  
  643.  Source code is what humans work with to write ML programs.  You use
  644.  an assembler to transform it to code that the computer works with. It
  645.  is the source code which dictates where a program loads and executes.
  646.  With source code, you can assemble a program wherever you want it
  647.  (within the limits of the computer)
  648.  
  649.   MS> downloaded half the Bellterm source last night and will try to
  650.   MS> download the other half tonight. It mentioned something about
  651.   MS> protocols being in there.. How can I use this source code and 
  652.   MS> implelemnt it into my program
  653.  
  654.  You can use it to help you learn ML and protocols.  BellTerm was written
  655.  as I write my programs... interdependent.  I don't write standalone
  656.  shell protocols.  That is because I don't write them for others to use.
  657.  Thus you can (if you get permission from JBEE) use the code after 
  658.  filling in the routines that are needed to get the protocol to run.  I
  659.  would recommend you use a shell, modifying it to get it working for
  660.  you, using my code to learn what your code needs.  My code probably would
  661.  require someone more experienced to implement in their own program,
  662.  tho it could be done.
  663.  
  664.   MS> It seems to me that ML is very difficult to edit. Everything
  665.   MS> seems to be so TIGHT! How could one go in and change things
  666.   MS> around?
  667.  
  668.  It is only difficult if you don't have the source.  A good disassembler
  669.  would help you along in this, but you have to realize that even some
  670.  of your questions show how far you have to go.  You'll get there.  Just
  671.  keep studying!
  672.  
  673.  
  674.   MS> Someone told me that Monitors were better than assemblers for
  675.   MS> smaller applications. They also said that assemblers were very
  676.   MS> difficult to work with
  677.  
  678.  I think that may be true *if* you don't ever need to edit the code or
  679.  change it.  I personally will do that for VERY!!! small pieces of 
  680.  code, and I'm talking SMALL.  Anything that you will ever need to do
  681.  again is better assembled.
  682.  
  683.  That person who said assemblers are difficult to work with is simply
  684.  mistaken.
  685.  
  686.   MS> Can you point me into the right direction? I need a good
  687.   MS> symbolic assembler with DOCS... How do programmers get the
  688.   MS> symbolic assemblers to assemble code? Disassemble code?
  689.  
  690.  Get that copy of Compute's 2nd book of ML.  There is code in there for
  691.  LADS, which I used to learn ML.  It is one of the best learning tools
  692.  available for learning ML IMO, and you get a symbolic assembler to boot.
  693.  (that is, in addition to the book).  And oodles of commented source code
  694.  to tell you what is going on.
  695.  
  696.   MS> How do programmers get the symbolic assemblers to assemble
  697.   MS> code? Disassemble code?
  698.  
  699.  If you get the book and read it, you will  get the answer to this one.
  700.  ------------
  701. Category 5,  Topic 33
  702. Message 19        Thu Aug 19, 1993
  703. C128.JBEE                    at 04:19 EDT
  704.  
  705.  > M.SEABRUM at 21:13 EDT
  706.  The reason source code is so valuable is you can easily edit it and
  707.  recompile it to a new memory location.  Also, a lot of program authors
  708.  put comments (notes) in their source code so they can remember what the
  709.