home *** CD-ROM | disk | FTP | other *** search
-
-
- correctly, the Xmodem download(BBS) routine did not work properly. Yes,
- beacuse I remember someone having to upload me a file using the Punter code.
- Is there a working version of Xmodem out there. I would rather use it than
- Punter since Xmodem seems to be more popular.
-
- P.S. I'm also looking for a fastload program that will work with this thing.
- The BBS ML is at the bottom of BASIC.
-
- Will a fastload program work with this BBS if the ML is at the bottom of
- basic? Will any compilers work? I have been told that compilers need that area
- to stre they code. Please help. Thanks!
-
- ------------
- Category 5, Topic 33
- Message 4 Fri Aug 13, 1993
- CBM-ED [e.g.bell] at 08:44 EDT
-
- Michael:
- MS> Ok. Can this be the problem? I'm opening a file such as 'open
- MS> 2,8,2,"games,p,w"' just before calling the Xmodem
- MS> download(BBS). You stated that I need not to do this so I'm
- MS> assuming this is done automatcially.
-
- I didn't say that. I said for READing the file (when you use ,#,r)
- you don't have to add the ',p,r' for example. When you open for write,
- you absolutely MUST use those entries.
-
- In addition, you should check the source code that came in that APPEND
- file. It seems to me that the ML uses channel 5 to write to the
- disk, not channel 2. That would explain why nothing is getting written
- to the file. In other words, check the code. If I'm correct, you
- will have to ' open 5,8,5,"games,p,w" '. How do you tell from the ML?
- Look at the section that writes to disk for some code that looks like
- this:
-
- ldx #5
- jsr chkout
-
- If it is 'ldx #2' your code is correct, but check. Whatever it s for
- downloads will be the same for uploads. So if you are opening channel
- 2 for downloads, your example is probably correct. It just kind of
- sticks with me that Punter and Xmodem shells I've seen generally use
- 2 for the modem (open 2,2,2,####) and 5 for the files.
-
- MS> As far as you saying implement his code, I'm totally confused
- MS> and don't know where to start. I have to rewrite the U/d
- MS> section and if my memory serves me correctly, the Xmodem
- MS> download(BBS) routine did not work properly. Yes, beacuse I
- MS> remember someone having to upload me a file using the Punter
- MS> code. Is there a working version of Xmodem out there. I would
- MS> rather use it than Punter since Xmodem seems to be more
- MS> popular.
-
- That shell works. The bug is subtle and I believe would only affect a
- call from a BLITZ!ed program. But I have used the shell as a basis for
- my own when I was first starting out, and it does work. There is also
- a Wxmodem shell on GEnie that includes Xmodem CRC. The APPEND file you
- got only does checksum, which is kind of a dinosaur. On the down side,
- in my opinion, that code is kind of sloppy, but it does the job also, and
- I know it works too.
-
- MS> Will a fastload program work with this BBS if the ML is at the
- MS> bottom of basic? Will any compilers work? I have been told
- MS> that compilers need that
-
- Compiled programs I've seen include their own runtime package and the
- code generated is pretty much contiguous, and loads in the normal
- BASIC program space (for the 64 mode). So I would have to give a
- qualified ' I suspect it will work' when compiled. It is actually
- better than that, because there are a LOT of programs that are compiled
- that use ML.... including BBS programs. As for fast loaders, some do
- and some don't. PCG Term, which I wrote in the mid 80's, worked with
- ffastloaders until I made it support different fonts. BellTerm worked
- (works) fine with fast loaders. Since John Brown kindly uploaded the
- source to BellTerm, it might pay you to spend the time downloading and
- examining it as it is 100% ML and includes Xmodem and Punter and calling
- routines, routines to open files and check the error channel, etc.
- ------------
- Category 5, Topic 33
- Message 5 Sat Aug 14, 1993
- M.SEABRUM at 01:44 EDT
-
- Hello. The compilers that I have, all PD will not compile properly. Other
- people have told me that compilers need the BOTTOM OF BASIC to work properly.
- Hmm.. The BBS MAIN ML code is stored there as stated before. I don't program
- in ML, but from judging from other people programs I'm learning slow. Anyway,
- I don't know how to move the BBS ML from the bootom of basic to another area
- of memory because I'm recieving no hel! Does Genie have a HELP ROOM or
- something? I have compute's ML and Basic relocator on a disk, but no
- instructions came with the programs. I was thinking I could use the ML
- relocator to relocate the BBSML, but with no instrcutions I quickly got lost.
- Why would someone need to relocate Basic??
-
- As far as the Xmodem goes, I will try to download Wxmodem and get that source
- for Bellterm. I have a book for ML - ML for the ABSOLUTE BEGINNER and I must
- say it's not very well written. The book was given to me so I can't complain.
- There's typo's in it to add to the confusion of the beginner. I'm trying to
- implement a TIMEOUT routine in the BBS. I have a hardcopy of a message you
- left before, but it was abbreviated and very confusing. In order to get a
- timeout, how would I go by doing this?
-
- I kinda figure by looking at the BBS ML code that it will properly have to be
- programmed in the Kernal GETIN routine? Correct? When this routine is called,
- does it wait there until a key is pressed? That looks like the problem to me..
- How can I implement a timeout in the kernal routine if this is the case?
-
- Editing this ML seems SCARY to say the least. One mess up and that's all she
- wrote. I have 3 monitor programs, SUpermon+, X-mon, and Bugmon.
-
- Is there a monitor out there that will take the confusion out of Hexadecimal?
- I know it's the base of 16, and makes up half of a byte. But when you get into
- all of that $c000 stuff, things really begin to get confusing!! Typing
- something like LDA #25 or LDA 828 would be more simpler. I studied the ML and
- will go through a ML learning program after I leave here with the files that I
- seek. (Wxmodem, and Bellter source).
-
- Is learning to assign string values hard in ML. Something like in$=(user
- input). I still can't figure out how the guy get the user input into the
- variable in$. I know this is the first variable that must be defined after the
- open statement.
-
- As far as the filenumber goes for Append2.... The numbers are correct. 2 is
- for the disk and 5 is for the serial or modem.
-
- Hmm.. I need a ML editor. Tell me this. Can ML disk routines read files from
- any drives (1541-1581 series?) This guy has a routine in the ML to read files.
- The problem is that he has them set up as lda #08. I was wondering if I poke a
- location of the drive I intend to use in location 828 or something.
-
- This was I can say lda 828... You see. Something simple. I'm wondering would
- the routine still work if the drive being accessed is either a 1541, 1541II,
- 1571, or 1581.??
-
- That's something I will implement in the next version of this most time
- consuming project. Judging from what I said earlier about the loads of the
- BBS... I have ML at the bottom of basic but no fastloaders seems to want to
- work. Hmm.. What would you say the problem is? I have a ton of fastloaders
- that start at 2049. That's the start of basic right? I have one that starts a
- 4, and one that starts at 52480. Luckily the BBS pokes are relocatable.
-
- At the present time, the MAIN BBS takes 82 seconds to load in. That's 82
- seconds too long. Zap load took about 17 seconds and I was very impressed.
- After the main part if loaded, I can't loader anything else. If I do, all I
- get is garabage. This included all my fastloaders, including FASTLOAD.
-
- Can you suggest a cure for this problem without having to buy commercial
- equipment. I'm trying to put out a quality BBS. Believe me there's nothing
- more aggravating than downloading a BBS that does not WORK!! I have done it
- alot. This BBS is a prime example. More BUGS that a SOUTH AMERCIAN JUNGLE.
- Very unreliable. I have plans for it though. The author dropped this thing off
- in PD and I since have cared for it :). Anyway, tell me this.
-
- I have modified a Callback validator to work with this thing. The problem is
- the modem is not hanging up. I'm sending the following.
-
- po$="+++":gosub120(output to
- modem/screen):fork=1to1100:nextk:po$="ATH0":gosub120:fork=1to1100:nextk:return(
- Return to calling routine)
-
- The modem does not hang up. I wonder why? Should I pause before sending the
- "+++" also? Should I put the whole routine into a loop to insure it get
- executed? Nah... Ml looks to be fun and challenging... I'm ready to explore.
-
- Please help! Hmmm... I think that it. I know I have a big shopping list, but
- that alone makes your job as SYSOP very respected and entertaining. Any help
- with Fastloads, Relocating ML, Editing ML without too many hassels such as
- HEX, or any other of the above questions would be greatly appreciated. I'm
- making hardcopies of this entire message(s) so please be specific.
-
- By the way, did you hear about Mr. James Jordan? Michael Jordan's father. It's
- a tradegy ... I wonder who, and why?
-
- Please respond as soon as POSSIBLE>
-
- ------------
- Category 5, Topic 33
- Message 6 Sat Aug 14, 1993
- HOWIE-CBM at 06:20 EDT
-
- Michael,
-
- I can reply to a part of one question.
-
- The probable reason the ATH0 is not working is that the routine is not
- properly capturing modem control. I would recommend an ever so slight
- pause between each of the three +'s. So it would be something like:
-
- + (pause) + (pause) +
-
- After which you should be able to successfully send the ATH.
-
- Howie
- ------------
- Category 5, Topic 33
- Message 7 Sat Aug 14, 1993
- C128.JBEE at 08:17 EDT
-
- re:getting input into a string
- What you do is have a loop that constantly scans the keyboard input buffer,
- sometimes people set it to one character when using ML, when it reads the
- "empty" value (88?) it just loops until a key is pressed. Once a key is
- pressed the value is either stored or displayed. hen you have finished
- getting the string, you put a 00 after the last byte of the string
- you just received. When you want to recall the string to the screen
- you call a Kernal routine that will read the string until it finds the
- terminating zero.
-
- Jim Butterfield had a ML to string routine called "string thing" for the
- C-128. I do not know if there was one for the C-64.
-
- For a lot of general routines that could save you a LOT of time, Compute's
- "Machine Language Routines for the C-64/128" can't be beat.
-
- There are Basic routines for reading ANY disk directory uploaded by
- Ed Parry (EBBS?). About 1988.
-
- Here are a few files online you might find helpful:
- #3585 Basic Dir (EBBS^)
- #4774 disassemb.arc
- #8794 learn-ml.sfx (a few tiny mistakes in this but generally okay)
- #3297 ml/hex/bin chart
- ------------
- Category 5, Topic 33
- Message 8 Sat Aug 14, 1993
- CBM-ED [e.g.bell] at 09:10 EDT
-
- Michael:
- MS> I'm learning slow. Anyway, I don't know how to move the BBS ML
- MS> from the bootom of basic to another area of memory because I'm
- MS> recieving no help! Does Genie have a HELP ROOM or something? I
- MS> have compute's ML and Basic relocator on a disk, but no
- MS> instructions came with the programs. I was thinking I could
- MS> use the ML relocator to relocate the BBSML
-
- I don't know how you can say you are receiving no help. How many
- replies have we given you so far. The only way I can see we could
- give you more help would be to write the program for you. I told you
- you would need a disassembler and that there are at least 2 in our
- libraries. Did you search for them and download them? At some point
- you are going to have to help yourself also. I would venture to say
- that all of the ML programmers who are answering you had a lot less
- help than you are getting. You need to 1] disassemble the block of
- code you want to relocate, and 2] reassemble it in the desired location.
- If you are *lucky*, there will be no address tables used and it will be
- a straight assembly job. If not, you are simply going to have to learn
- ML and either diassemble the code you need or write your own. Did the
- guy who gave you the BBS code not give you the source code for the ML?
- Can you see where that might look suspicious?
-
- MS> get that source for Bellterm. I have a book for ML - ML for the
- MS> ABSOLUTE BEGINNER and I must say it's not very well written.
- MS> The book was given to me so I can't complain. There's typo's
- MS> in it to add to the confusion of the beginner. I'm trying to
- MS> implement a TIMEOUT routine in the BBS. I have a hardcopy of a
- MS> message you left before, but it was abbreviated and very
- MS> confusing. In order to get a timeout, how would I go by doing
- MS> this?
-
- If that message was abbreviated, you had to be the one who abbreviated
- it. I posted a perfect example of exactly what you wanted done. It
- was in ML. The GETIN routine compares more to BASIC's GET routine
- than the INPUT routine. It polls the keyboard. If nothing is there,
- it just moves on unless you loop. Therefore, as in the example code I
- gave you, you can use the jiffy timer to have a timed input. Check
- my code again. I took the time to do that for you, but I can't do that
- over and over again for the same thing. By all means, grab the source
- code we pointed you to.... look at it. Study it. I bet the ML programmers
- here spend an obscene amount of time even now poring over source code to
- learn... I know I do.
-
- MS> I kinda figure by looking at the BBS ML code that it will
- MS> properly have to be programmed in the Kernal GETIN routine?
- MS> Correct? When this routine is called, does it wait there until
- MS> a key is pressed?
-
- No, it does not wait, and yes, that is where you will have to do your
- coding call.. as I said in my previous message and in the previous
- paragraph.
-
- MS> Editing this ML seems SCARY to say the least. One mess up and
- MS> that's all she wrote. I have 3 monitor programs, SUpermon+,
- MS> X-mon, and Bugmon.
-
- MicroMon is the best one I know of for the C64, tho you cannot expect
- a monitor to do all the work, and for a large project, there is just
- no way I would even consider using one. But MicroMon is PD and the
- very best one I've evr seen.
-
- MS> Is there a monitor out there that will take the confusion out
- MS> of Hexadecimal? I know it's the base of 16, and makes up half
- MS> of a byte. But when you get into all of that $c000 stuff,
- MS> things really begin to get confusing!! Typing something like
- MS> LDA #25 or LDA 828 would be more simpler.
-
- You may be making it harder than it is, but as I suggested before, and
- even gave you the model number for, you need a calculator if you are
- going to work in 64 mode. However, I can't understand why you are
- working in 64 mode. Even if you are writing code for the C64, you will
- still be better off working in 128 mode. There is a monitor built in,
- you have the hex$ function to obviate the need for a hex calculator,
- and the operations are faster. Yes, you can write code for the 64 in
- 128 mode... and the assemblers are more powerful in 128 mode too...
- Which brings me to the rest of the answer to your question. If you were
- using an assembler, you would not have to worry about loading hex
- values as you can assign labels, etc.
-
- MS> Is learning to assign string values hard in ML. Something like
- MS> in$=(user input). I still can't figure out how the guy get the
- MS> user input into the variable in$.
-
- Study the POINTER command in BASIC. It will give you the address in
- bank 1 of the variable... you can pass that to your ML routine so that
- it can store info right in the string definition. A couple suggestions
- here though... first, define the string at the start of your BASIC
- program to equal the largest number of spaces (up to 255) of the longest
- possible input string you ever expect. Then *never* assign it a value
- in BASIC... only in ML. Always terminate it with a zero in ML, and update
- the length byte in the variable description bytes. If you don't know
- what all of this is, you need to study that too. Can you see just what
- a lot you are trying to accomplish. One of the best ways to do it is to
- get other people's source code and study study study. Many don't release
- their source code. I have released a lot. Have you got it and studied
- it.
-
- MS> Hmm.. I need a ML editor. Tell me this. Can ML disk routines
- MS> read files from any drives (1541-1581 series?) This guy has a
- MS> routine in the ML to read files. The problem is that he has
- MS> them set up as lda #08. I was wondering if I poke a location
- MS> of the drive I intend to use in location 828 or something
-
- You need to learn ML. I know you are trying, and yes, ML disk routines
- can do what you suggest if properly written or written to do what you
- ask. What you need to know is what location is used for the device
- number. If you find that, you can do just what you ask. The problem
- you may run into is that the author used a variable instead of a direct
- load. However, any ML programmer could look at the code and find that
- information just knowing what is involved in opening files from ML. A
- particularly good reference for this kind of thing is the Commodore 64
- Programmers Reference Guide.
-
- MS> po$="+++":gosub120(output to
- MS> modem/screen):fork=1to1100:nextk:po$="ATH0":gosub120:fork=1to11
- MS> Return to calling routine)
-
- Howie's answer is probably right on the money... a slight delay after
- each '+', and at LEAST a 1 second delay AFTER you send all three plus's.
- Being that you are working in BASIC you may get away w/o the delay betw.
- the + characters, tho probably not when compiled, but the 1 second delay
- BEFORE and AFTER the +++ is absolutely required by the modem. You will
- see that in the modem manual. Did you read that?
-
- MS> without too many hassels such as HEX, or any other of the above
- MS> questions
-
- There is not going to be any way to learn ML or do what you are doing
- without hassles. That is the sweat part of the job that consumes so many
- thousands of hours on the way to the glory part of a finished project.
- I have stressed reading... I know you are trying to get the info to do
- that. There is no way you can learn without it though, including the
- work of others which you *do* have access to. We'll keep on responding
- but you are going to have to write the program yourself. ;)
- ------------
- Category 5, Topic 33
- Message 9 Sat Aug 14, 1993
- C128.JBEE at 22:29 EDT
-
- I believe there is an article in the REBOCARDO database (menu option on
- page 625) about using the pointer command from C-128 mode.
- ------------
- Category 5, Topic 33
- Message 10 Sun Aug 15, 1993
- M.SEABRUM at 05:05 EDT
-
- Thanks for all the help that I recieved. I'm going on now to read and study ML
- code. I'm sorry if I offended anyone by saying that I recieved no help. That
- really was not my intentions.
-
- Any help with fastloaders for the BBS which stores ML at the bottom of basic
- will be greatly appreciated.
-
- Any suggestions? Is there a relocatable fastloader out there (PD?)?
-
- /s
- ------------
- Category 5, Topic 33
- Message 11 Sun Aug 15, 1993
- CBM-ED [e.g.bell] at 08:56 EDT
-
- Michael:
- MS> Any help with fastloaders for the BBS which stores ML at the
- MS> bottom of basic will be greatly appreciated.
-
- MS> Any suggestions? Is there a relocatable fastloader out there
- MS> (PD?)?
-
- I don't think anyone is going to be able to help you regarding the
- fastloaders and code under BASIC, but I will tell you this. BellTerm
- used not only the RAM under BASIC, but also the RAM under the I/O
- block and under the Kernal too, and it always worked with my Mach 128
- cartridge (in 64 mode) and Fast Load too. I don't know why any fast
- loader would have a problem with that unless it overwrote the fast
- loader.
-
- As for the fast relocators....
-
- There is source code around for just what you want, but it is sizable
- aand I'm not sure it would be the ideal thing for use within a program.
- The last thing I would want to do would be to devote a big chunk of
- memory to just loading files. Another problem some fast loaders do
- cause is with RS232 for some reason... probably because they change
- vectors. But here is what a search of our libraries came up with...
-
- 5926 FASTLOAD1541 X K.CARAPELLOT 880617 1260 107 5
- Desc: software fastload for 1541
-
- 1548 TURBO 1541 X MIKEW1 860713 1260 206 9
- Desc: Speeds up 128/1541 disk access!
-
- And while I was at it...
-
- 4033 D/UNASMBLE.SDA X ML-BUG 870514 6300 119 5
- Desc: Multi-disk un-assembler.
-
-
- The last may help you generate your own relocatable code from the ML progs
- available that load places you don't want them to. Of course, this all
- means you are going to have to study study study to learn how to do this
- stuff. On the bright side, the more you learn, the easier stuff becomes
- to learn.
- ------------
- Category 5, Topic 33
- Message 12 Mon Aug 16, 1993
- M.SEABRUM at 01:04 EDT
-
- thanks... how cam i make ml relocatable? that seems very difficult! but again,
- anything can be accomplished.
-
- ------------
- Category 5, Topic 33
- Message 13 Mon Aug 16, 1993
- M.SEABRUM at 01:52 EDT
-
- Ok. I have a question that need answering. Please help. We already discussed
- the Xmodem problem. I can seem to
-
- relate to what you were saying. However, I'm confused when you said implememnt
- George Hugs NMI command and things SSHOULD work if it was a TIMING PROBLEM.
-
- Well, I'm interested. Now, exactly what is a NMI and what will it do to my
- program? How do I disable them? You said I will have to disable them right
- before accessing does. So how would I enable and disable them? I need the info
- on how to implement them into the program. I will now do my part and loading
- the ML and seeing what's the starting and ending address.. Also see if there
- is docs which I seriously doubt. By the way, I really do appreciate all the
- help that you have given me so far. Thanks alot.
-
- ------------
- Category 5, Topic 33
- Message 14 Mon Aug 16, 1993
- CBM-ED [e.g.bell] at 08:56 EDT
-
- Michael:
- MS> implememnt George Hugs NMI command and things SSHOULD work if
- MS> it was a TIMING PROBLEM.
-
- I said implement George Hug's wedge code. It is a whole little NMI
- interrupt routine that corrects the weakness of the resident ROM
- routine. It will solve your problem IF you problem is a timing problem.
- However, I don't remember what your problem was at this point.
-
- MS> exactly what is a NMI and what will it do to my program? How do
- MS> I disable them? You said I will have to disable them right
- MS> before accessing does. So how would I enable and disable them?
- MS> I need the info on how to implement them into the program. I
- MS> will now do my part and loading the ML and seeing what's the
- MS> starting and ending address.. Also see if there is docs which
- MS> I seriously doubt.
-
- NMI is Non-Maskable Interrupt, which is a misnomer. They are maskable
- in that you can disable them. It doesn't do anything TO your program,
- but actually FOR your program. It processes incoming bits over the
- modem into whole, 8 bit bytes, which your code can process. George Hug's
- code starts with a JMP table that you use to access the ENABLE and
- DISABLE routines. His code also changes the CHKIN and CHKOUT vectors
- to automatically enable and disable the interrupts as I recall. Since I
- don't use CHROUT or GETIN for my modem code, but instead enter the
- routines at other points, I call DISABLE before doing any DOS access and
- ENABLE afterward.
-
- There are docs for the routine in the Transactor magazine in which it
- appeared... February 1989 I believe.
-
- Why do you need the starting and ending address of the wedge? I don't
- have it at my fingertips but don't see where it would be terribly
- useful to you. More useful would be the JMP table entry points...
- I can post those when I dig thru my mags to find the article.
-
- Just out of curiousity, you are posting elsewhere in the BB an offer
- for registered copies of your program. Is it that ready, or are you
- putting the cart before the horse. It sounds to me like you have a lot
- of plans not yet realized. And I and any of the staff here are more
- than happy to help where we can. You are what makes our time online so
- enjoyable! Keep 'em coming!
- ------------
- Category 5, Topic 33
- Message 15 Mon Aug 16, 1993
- M.SEABRUM at 22:14 EDT
-
- Hello again. The BBS is ready.. Release friday. All I'm trying to do is make
- this version better than it already is. That's why I re-wrote the transfer
- section and add new protoc.. If that does not work for me, I'll just keep the
- old transfers section.
-
- In other words, I'm doing last minute touch ups.. It's looking more and more
- like I will have to try to tackle Wxmodem. By the way, I met a guy today that
- have a # of ML books for sale. They include Compute's ML routines for C64,
- Compute's Telecomputing, Machine Lanuage for beginners Mapping the C64/and
- 128, and 64/128 Assembly Lanuage. He had a ton of them, especially for the
- C128... I'm not interested in the C128 at the moment though.. Say, will ML
- that I write for 64 mode also work in 128 mode? That is, if ML was stored in
- the correct address in 128 mode. I know the two have diffrent adresses and
- all. I kinda figured that 64 ML opcodes should work in 128 as well.
-
- Please post the JMP table of Mr. Hug's 2400 baud routine.
-
- My problem with Xmodem was that the BBS could not download files from a user,
- but it could upload them.
-
- I don't know if it was a timing problem or not... Talk to you later..
-
- ------------
- Category 5, Topic 33
- Message 16 Tue Aug 17, 1993
- CBM-ED [e.g.bell] at 08:31 EDT
-
- Michael:
- MS> have a # of ML books for sale. They include Compute's ML
- MS> routines for C64, Compute's Telecomputing, Machine Lanuage for
- MS> beginners Mapping the C64/and 128, and 64/128 Assembly
- MS> Lanuage. He had a ton of them, especially for the C128... I'm
- MS> not interested in the C128 at the moment though.. Say, will ML
- MS> that I write for 64 mode also work in 128 mode? That is, if ML
- MS> was stored in the correct address in 128 mode. I know the two
- MS> have diffrent adresses and all. I kinda figured that 64 ML
- MS> opcodes should work in 128 as well.
-
- Post this guy's phone number here. There are a lot of us scratching
- for these books, particularly the 128 Mapping book. However, if you
- have any plans ever to move to the 128, you should SNAP these books up
- before someone else sees the guy's ad!
-
- As for code written for 64 mode working in 128 mode, the answer has to
- be a posibble maybe. While the opcodes are all the same, the architectue
- is not. There is a lot of bank switching you have to learn to do in 128
- mode. It is sort of like swapping the Kernal and BASIC and I/O in and
- out on the 64, but a little more complicated. It is a bear to learn but
- kind of fun once you do.
-
- MS> Please post the JMP table of Mr. Hug's 2400 baud routine.
-
- Here it is:
-
- XX00 jmp setup; set up the timning based on the open
- XX03 jmp inable; enable modem after dos access
- XX06 jmp disable; disable modem before dos access
- XX09 jmp rsget; get a byte from the modem
- XX0C jmp rsout; send a byte to the modem
-
- The XX would be whatever page in memory you assembled the code at.
- The magaizine article usd $1a, so it would be $1a00, $1a03, $1a06, etc.
-
- Immediately after the jmp table is a table of speed settings for the
- differ ent baud rates.
-
- strt24 .word $01cb; 459 start-bit times
- strt12 .word $0442; 1090
- strt03 .word $1333; 4915
- ;
- full24 .word $01a5; 421 full-bit times
- full12 .word $034d; 845
- full03 .word $0d52; 3410
-
- These timing values set the timing for the NMI transfer routine for
- each bit. Some programs provide a means of 'tweaking' the baud rate.
- That is, allowing minor adjustments to the start-bit detection timing.
- So if you want to do this, the value in the 'strt##' tables above are
- the ones you would tweak. O, and a word table appears in memory in low
- byte high byte order, tho the source code doesn't look like that.
-
- MS> My problem with Xmodem was that the BBS could not download
- MS> files from a user, but it could upload them.
-
- That definitely sounds like timing to me IF it is not working at the
- higher baud rates. If it won't even work at 300 baud, then you probably
- have something wrong with your Xmodem protocol code. The WXModem you
- mention might be an excercise, but I don't think there are enough people
- using that to make it worthwhile, tho the code with it does include an
- Xmodem CRC shell too. You can make that decision at the menu level tho.
- (in other words, if you don't want to support Wxmodem, just don't offer
- it as an option on the menu).
- ------------
- Category 5, Topic 33
- Message 17 Tue Aug 17, 1993
- M.SEABRUM at 21:13 EDT
-
- One question. You mention source code. Why is this code so valuable? Is it
- like a BLZ program, but you can actually list it and sees what makes the
- program tick? I'm downloaded half the Bellterm source last night and will try
- to download the other half tonight. It mentioned something about protocols
- being in there.. How can I use this source code and implelemnt it into my
- program(if I'm allowed to do this)? As far as Wxmodem goes, I tested it and
- found out there's no TIMEOUT routine. It just hangs when SENDING and RECIEVING
- a file is the caller never actually uploads a file. This code will do me no
- good.
-
- It seems to me that ML is very difficult to edit. Everything seems to be so
- TIGHT! How could one go in and change things around? You were right when you
- said I should be using the 128 monitor. I picked up Compute's First/Second
- Books on the 128 at my local library. One of the books had a section talking
- about the 128 monitor and how to take the confusion out of HEX. I understand
- that now. It also said you can change the ML code by listing it some way and
- using the screen editor to change anything that you like. Ok, that's find and
- dandy.. Since everything is so TIGHT, I kinda figured another method had to be
- used. Someone told me that Monitors were better than assemblers for smaller
- applications. They also said that assemblers were very difficult to work with.
- This is the reason I was stuck on Monitors. In my opinion, symbolic assemblers
- seems to be easier to use. However, they do look very confusing for the first-
- timers. Can you point me into the right direction? I need a good symbolic
- assembler with DOCS... How do programmers get the symbolic assemblers to
- assemble code? Disassemble code?
-
- ------------
- Category 5, Topic 33
- Message 18 Tue Aug 17, 1993
- CBM-ED [e.g.bell] at 22:50 EDT
-
- Michael:
- MS> source code. Why is this code so valuable? Is it like a BLZ
- MS> program, but you can actually list it
-
- Source code is what humans work with to write ML programs. You use
- an assembler to transform it to code that the computer works with. It
- is the source code which dictates where a program loads and executes.
- With source code, you can assemble a program wherever you want it
- (within the limits of the computer)
-
- MS> downloaded half the Bellterm source last night and will try to
- MS> download the other half tonight. It mentioned something about
- MS> protocols being in there.. How can I use this source code and
- MS> implelemnt it into my program
-
- You can use it to help you learn ML and protocols. BellTerm was written
- as I write my programs... interdependent. I don't write standalone
- shell protocols. That is because I don't write them for others to use.
- Thus you can (if you get permission from JBEE) use the code after
- filling in the routines that are needed to get the protocol to run. I
- would recommend you use a shell, modifying it to get it working for
- you, using my code to learn what your code needs. My code probably would
- require someone more experienced to implement in their own program,
- tho it could be done.
-
- MS> It seems to me that ML is very difficult to edit. Everything
- MS> seems to be so TIGHT! How could one go in and change things
- MS> around?
-
- It is only difficult if you don't have the source. A good disassembler
- would help you along in this, but you have to realize that even some
- of your questions show how far you have to go. You'll get there. Just
- keep studying!
-
-
- MS> Someone told me that Monitors were better than assemblers for
- MS> smaller applications. They also said that assemblers were very
- MS> difficult to work with
-
- I think that may be true *if* you don't ever need to edit the code or
- change it. I personally will do that for VERY!!! small pieces of
- code, and I'm talking SMALL. Anything that you will ever need to do
- again is better assembled.
-
- That person who said assemblers are difficult to work with is simply
- mistaken.
-
- MS> Can you point me into the right direction? I need a good
- MS> symbolic assembler with DOCS... How do programmers get the
- MS> symbolic assemblers to assemble code? Disassemble code?
-
- Get that copy of Compute's 2nd book of ML. There is code in there for
- LADS, which I used to learn ML. It is one of the best learning tools
- available for learning ML IMO, and you get a symbolic assembler to boot.
- (that is, in addition to the book). And oodles of commented source code
- to tell you what is going on.
-
- MS> How do programmers get the symbolic assemblers to assemble
- MS> code? Disassemble code?
-
- If you get the book and read it, you will get the answer to this one.
- ------------
- Category 5, Topic 33
- Message 19 Thu Aug 19, 1993
- C128.JBEE at 04:19 EDT
-
- > M.SEABRUM at 21:13 EDT
- The reason source code is so valuable is you can easily edit it and
- recompile it to a new memory location. Also, a lot of program authors
- put comments (notes) in their source code so they can remember what the
-