Page 2 of 2

Re: DHPOS, 64 bit in QB64

Posted: Fri Jan 06, 2012 5:18 pm
by daleadmin
There has actually been progress on converting DHPOS to QB64. Problems overcome since the last post.

QB64 does not have the DIR$ command that is used to read the file names from the disk so that you can choose the one you want. So I wrote a routine that does the same thing without using DIR$.

QB64 does not support the "Currency" data type and does not support the MKC$() and CVC() commands required to read / write the currency data type. I have found that the QB64 _INTEGER data type can replace the currency data type (sort of) and have found a way to read / write "currency" information from your old files anyway. Thanks to small, Clippy, DeeBee, and others for their help.

Below is a list of all the program files that comprise DHPOS. The ones followed by astericks either not require conversion (Jon's stuff). The ones with download links are new and you can download them for testing.

Some files will be combined. For example POSCONFG.EXE, CF.EXE and CF2.EXE will be combined into one file since the 640K memory limit does not apply to QB64.

TESTING
Needless to say I need these file to be tested. To do this create a new folder and copy all the current DHPOS files to it. Now copy all the the files above that have download links. You must also download and unzip the .DLL files here http://dl.dropbox.com/u/8440706/Program64.zip

The current 7.1j version of DHPOS and this new QB64 version are data file compatible. This means that both versions can read the same files. However if you try to call a QB64 program file from a DOS program file the DOS version will just shut down.


aprint6.exe *
http://keyhut.com/bigpole.exe
cf.exe
cf2.exe
http://keyhut.com/closecnt.exe
convert.exe
fileinfo.exe
fix_hist.exe
giftcard.exe
hourly.exe
http://keyhut.com/kitchen.exe
http://keyhut.com/lookup.exe
http://keyhut.com/mailex.exe
http://keyhut.com/mallfile.exe
pole.exe *
pos.exe
posconfg.exe
http://keyhut.com/programs.exe
http://keyhut.com/purchase.exe
rec2csv.exe
http://keyhut.com/receive.exe
http://keyhut.com/reconvrt.exe
http://keyhut.com/remote.exe
http://keyhut.com/sondscan.exe
stocks.exe
textread.exe
theater.exe
http://keyhut.com/timeclok.exe
timer.exe

Re: DHPOS, 64 bit in QB64

Posted: Fri Jan 06, 2012 5:46 pm
by emery
:mrgreen:

Re: DHPOS, 64 bit in QB64

Posted: Fri Jan 06, 2012 7:05 pm
by small
I wrote a program to allow you to check and see if a new version of DHPOS is available.


you can download it from: http://www.megaupload.com/?d=DXS5CMZ0


Please leave feed back.


Must be run on windows xp and above.

Download and run the self extracting file. Then read the readme.txt file.

Re: DHPOS, 64 bit in QB64

Posted: Sat Jan 07, 2012 3:35 pm
by daleadmin
On the road to 64 bits I have run into a serious problem which is being discussed here. http://www.qb64.net/forum/index.php?topic=5131.0

Dale

Re: DHPOS, 64 bit in QB64

Posted: Tue Jan 10, 2012 7:50 pm
by daleadmin
I have gotten the POS.EXE program to compile. Unfortunately with fatal bugs that need to be stomped on.

But it now looks like this can happen eventually.

Dale

Re: DHPOS, 64 bit in QB64

Posted: Tue Jan 10, 2012 8:17 pm
by emery
:mrgreen:

Re: long VAR list

Posted: Wed Jan 11, 2012 12:40 am
by brucef2112
Dale
A SUB with forty VARs seems like a visit to 'crazy town' with a good sprinkling of 'error opportunity' with each CALL. :) :-)
I'm sure you were trying to beat some short comings (of qb45 perhaps) in having to pass so many VARs. I've never qb45'd, so I don't know. Nor do I know the details of your SUB. But in general I think DeeBee has good advice about re-structuring the SUB. In all my VB programming I think i've maxed out a VAR count of 10 to 12 to a SUB or FUNCTION. And while I was coding some subs with larger VAR counts I'd said to myself there has got to be a less complicated solution. There almost always was.

As you know programmers are known to be lazy people. So there is something magical about the phrase; "I'll fix it later" when spoken by a programmer. It just doesn't happen! I think Clippy is right about 'fix it now not later'. If Galleon fixes qb64 and allows your sub to work you will most likely never look at the code again to try and restructure it. I'll admit just as Clippy; I've written spaghetti code FUNCTIONS that worked and I never went back later to fix it, only because it WORKED...(or because I said the magic phrase. I don't know...).
Anyway, I second DeeBee and Clippy advice. It will only hurt a little now.
b

Re: DHPOS, 64 bit in QB64

Posted: Wed Jan 11, 2012 4:53 pm
by daleadmin
Bruce,

Actually it has so far been quite painful.

The 3 big SUBs were originally in the MAIN part of the program. But as that module grew to over 56k in size the program would no longer compile. To solve that problem I off-loaded the code into another module as a SUB. This happened 2 more times and another big hunk of code was moved from the MAIN into a SUB of another module.

So the obvious solution is to just move the SUBs back in to the MAIN program. Unfortunately in the years that the SUBs have exsisted they have expanded to handle new functions and many of the simple variable names that are used in the SUBs are also used in the MAIN. This causes a massive conflict and fatal bugs in the program.

So now I am trying to track down these conflicts and get the program to not only compile but to actually function. This is also hampered by the compile times in QB64. In QB71 the program does not have to compile to run in the editor, it executes as soon as you press [F5]. QB64 has to compile the program into an .EXE file and it then runs that. Compiling takes about 3 minutes. This means that to test every small change in the code takes 3 minutes plus the time it takes me to make the change. NO FUN, it seems to take forever to fix every little thing.

Dale

Re: DHPOS, 64 bit in QB64

Posted: Wed Jan 11, 2012 6:36 pm
by emery
daleadmin wrote: This is also hampered by the compile times in QB64. In QB71 the program does not have to compile to run in the editor, it executes as soon as you press [F5]. QB64 has to compile the program into an .EXE file and it then runs that. Compiling takes about 3 minutes. This means that to test every small change in the code takes 3 minutes plus the time it takes me to make the change. NO FUN, it seems to take forever to fix every little thing.
Isn't it a GREAT feature? :mrgreen:

Re: DHPOS, 64 bit in QB64

Posted: Wed Jan 11, 2012 7:44 pm
by brucef2112
Dale,
Sounds like; perhaps a stay at Hoa Lo would be a more pleasant alternative to coding dhpos to qb64.

Re: DHPOS, 64 bit in QB64

Posted: Wed Jan 11, 2012 7:56 pm
by daleadmin
Bruce,

Hoa Lo would be far down my list of alternatives to programming in QB64 but it is not like I have a choice. Well there is a choice, either convert to QB64 or something similar or not be able to run DHPOS on newer computers.

Dale

Re: DHPOS, 64 bit in QB64

Posted: Fri Feb 17, 2012 1:23 pm
by small
Very long variable list in CALL statement on QB64.

Galleon says This code will work after the next update

Quote

will the problem with the number of variables in a CALL statement be fixed?

I took a look at this today. Turns out I thought QB64 was limited to 60 parameters, but as separators are included in that 60 (and commas are separators) the real limit was only about 30. Personally I don't think anyone should need more than 20 but everyone is entitled to their own coding style. Therefore I fixed the system so it would accept up to 100 parameters and give a meaningful error "SUB/FUNCTION exceeds 100 parameter limit" when you try and exceed this.
8) 8)

Re: DHPOS, 64 bit in QB64

Posted: Fri Feb 17, 2012 7:52 pm
by daleadmin
small,

This is great news. Hopefully by the time I have the rewards feature finished Galleon will have fixed this and I can get on with QB64.

Dale