BBS: Inland Empire Archive Date: 05-02-92 (13:47) Number: 62 From: TOM HAMMOND Refer#: NONE To: SCOTT WUNSCH Recvd: NO Subj: Hello, Fix for DTR! Conf: (2) Quik_Bas
SW>I think most of us probably have that already. What I need is SW>one (a dtr PATCH) for PDS! No sooner done than said... compliments of Donn Bly a couple months ago. Hope this helps Scott. Tom Hammond N0SS ====================================================================== BBS: The Wildcat Modem Zone BBS Date: 02-18-92 (06:13) Number: 6292 From: DONN BLY Refer#: NONE To: JOHN SNEERINGER Recvd: NO Subj: PDS 7.1 DTR PATCH Conf: (13) QuickBasic > I asked a while ago if anyone had a PDS DTR patch, I > guess either no one has ever attempted communications > with PDS, no one owns PDS, or perhaps no one cares (g). > Probably the latter, but anyway, if anyone knows of a > way to patch the DTR problem in PDS, let me know. . . . I have a DTR patch for 7.0, but the critical information should be the same for 7.1 (if it doesn't work for you, let me know (preferably via NetMail since I usually don't frequent this echo) and I will track it down for you). As you know, to increase the efficiency of the compiled code, several different libraries are used, and the patch should be applied to all of the following: BCL7xAFR.LIB, BCL7xANR.LIB, BCL7xEFR.LIB, BCL7xENR.LIB. Search for the sequence of: B8 07 0C CD 21 and patch it to read: B8 07 0C 90 90 ^^ ^^ Basically, you are just NOPing out the interrupt 21 call. > I can get past this problem *IF* anyone out there has a > piece of code that will LOCK the DTR up. I noticed that > QBser 2.0 has some function called DTRcontrol x which is > supposed to do just that. I don't want to use QBser, but > I'd sure give my left nut for the source. The CLOSE statement _without_ the DTR patch will still lower DTR. However, if all you are trying to do is control DTR without doing serial I/O, you can accomplish your task by talking directly to the Modem Control Register (MCR) on the UART chip. The MCR is located at an offset of 4 off to the base address, and DTR is the lowest-order bit in that register. The following code segment should get you pointed in the right direction. CONST MCR = 4 BaseAddress% = &H3f8 'To RAISE DTR without disturbing the other flags in the register OUT BaseAddress% + MCR, INP(BaseAddress% + MCR) OR 1 'To LOWER DTR without disturbing the other flags in the register OUT BaseAddress% + MCR, INP(BaseAddress% + MCR) AND &Hfe Good luck with your project, Donn Bly --- WM v2.00/91-0231 * Origin: The Modem Zone BBS (314) 893-5106 (1:289/2)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET