Fastest (pure QB) PUT routine?

Announce and discuss the progress of your various programming-related projects...programs, games, websites, tutorials, libraries...anything!

Moderators: Pete, Mods

Post Reply
DaveUnit
Veteran
Posts: 72
Joined: Sat Oct 29, 2005 10:07 am
Contact:

Post by DaveUnit » Tue Dec 13, 2005 9:04 am

Looks sweet, I plan on using it. :D
Or taking ideas from your source to make my put routine better.

~Dave~

Plasma

Post by Plasma » Tue Dec 13, 2005 3:36 pm

Err...

First of all, I find it ironic that you ask for credit when you've got a crippled version of SetVideoSeg in there with no mention of the original author. And secondly, you're still only poking one byte at a time.

SuperPut is definitely faster. Now I suppose we'll get into a debate about what constitutes "pure QB"...

DaveUnit
Veteran
Posts: 72
Joined: Sat Oct 29, 2005 10:07 am
Contact:

Post by DaveUnit » Tue Dec 13, 2005 4:34 pm

woops, looks liked I jumped the gun praising nemisis then. Still it's a pretty good put routine.

And Plasma, where can I find SuperPut? You have me intrigued.

It's been my obsession lately to find a good PUT routine (excluding the ones in libraries).
I've even tried making my own but my limited experience in QB and ASM killed that dream quick.

~Dave~

Z!re
Veteran
Posts: 887
Joined: Wed Aug 04, 2004 11:15 am

Post by Z!re » Tue Dec 13, 2005 5:44 pm

Nemesis, I said it last time you tried to pull off some "OMG Pure QB wooo!111" crap..
Noone care.. Pure QB is stupid, it's slow, and in some way trying to hold it as something special is absurd..
Also, your routine is way too bloated, personally, I'd never use it..
I have left this dump.

Nemesis
Coder
Posts: 36
Joined: Mon Aug 16, 2004 12:54 pm
Location: Colorado Springs, Colorado

Post by Nemesis » Tue Dec 13, 2005 8:39 pm

Plasma wrote:Err...

First of all, I find it ironic that you ask for credit when you've got a crippled version of SetVideoSeg in there with no mention of the original author. And secondly, you're still only poking one byte at a time.

SuperPut is definitely faster. Now I suppose we'll get into a debate about what constitutes "pure QB"...
Crippled version?
Umm, no it's my version, I've mucked with QB's memory long before I heard of SetVideoSeg, I've wrote my own DEF SEG, DIRECTORY ROUTINES, BIOS DETECTION ROUTINES, VARIABLE POINTER ROUTINES,
(I remember when I first started scanning memory and ran into _FILE_INFO, and then it intrigued me to investigate. I then later found current screen info like, text colums and rows, and then (4BC:10 in the IDE), you had hex value of current screen modes, current graphics cursor positons (4BC:14 & :15), address segments of screen (4BC:16 & :17), and other values like how QB blits pixels accordingly to bit depths and colors, etc... When I figured it out, I scanned with different screen modes,
and seen values would change to those specifics, and so on.) That was before I even had knowledge of ASM, but knew QB was doing some type of interperting.) So it's no great mystery. I'll admit though when I first stumbled upon SetVideoSegment, I was suprised a bit. And you probablly discovered it even before me but, that doesn't mean you invented everything that involves it. So be glad I even mentioned your program. Hell everyone knows SetVideoSegment is yours, and you can have the honors for all I care. However I will not give you credit for something I wrote myself. Now think about this... nobody really knows who I am and everyone knows you, so this is a bit shocking you even jumped on the matter. It all kinda made me feel you were a greedy, (everyone has to think I'm the greatest and no one can even claim a tiny piece of the pie... It's all mine, all,all,all,all!!!)

...PLEASE...

And yes, it only pokes one byte at a time. I didn't think I had to actually cover common sense logic... I didn't dream anyone would think I somehow thought I discovered realtime multi-processing. I was just simply relaying the idea ANDXOR was like unrolling loops to 16 byte intervals.
Further more a, "What really constitutes Pure QB code?"
discussion is far from my brain, so don't worry I'm not remotely intrested in such a stupid discussion. However, I will point out that switching a memory pointer is one thing... re-writing a QB routine by poking in an ASM one is crossing the border a bit to me.
Heck, I gotta tell you, a QB programmer with no ASM experience dosen't comprehend exactly what all those POKES do in SuperPUT, but, one does see and comprehend what those POKES do in ANDXOR :wink:

P.s... You're a good programmer, probablly have even more programming knowledge than me. I don't want this to turn into enemy VS. enemy, each trying to point out every little mistake the other one made.

Laters,

Nemesis

Nemesis
Coder
Posts: 36
Joined: Mon Aug 16, 2004 12:54 pm
Location: Colorado Springs, Colorado

Post by Nemesis » Tue Dec 13, 2005 9:07 pm

Z!re wrote:Nemesis, I said it last time you tried to pull off some "OMG Pure QB wooo!111" crap..
Noone care.. Pure QB is stupid, it's slow, and in some way trying to hold it as something special is absurd..
Also, your routine is way too bloated, personally, I'd never use it..
Umm, you did? And I tried to pull of some "OMG Pure QB wooo!111" crap?
I Don't recall this moment :?
Jesus...you just don't get it! So let me explain... some people who only understand and comprehend QB might like a routine they fully understand that has special elements like speed, and less memory requirements. The reason for this might be, perhaps they can modify it or do whatever is needed with it to work into one of their projects.
So even better, faster, non-bloated, more efficient, blah, blah, blah... routine in another language might not be suitable to modify and work into their own projects, simply because they don't know what's going on.
(I'm suprised this thought never occured to you :shock: )

So I conclude... Pure QB is not stupid for some reasons as I pointed out, and non-pure QB would actually be stupid for some reasons, again as I pointed out.

P.s...

Z!re, looks to me like you do alot of talking about things that aren't true,
and never actually occured. My advice to you is to try not to make this type of thing a habit :wink:

Laters,

Nemesis

Z!re
Veteran
Posts: 887
Joined: Wed Aug 04, 2004 11:15 am

Post by Z!re » Tue Dec 13, 2005 9:54 pm

Nemesis wrote:
Z!re wrote:Nemesis, I said it last time you tried to pull off some "OMG Pure QB wooo!111" crap..
Noone care.. Pure QB is stupid, it's slow, and in some way trying to hold it as something special is absurd..
Also, your routine is way too bloated, personally, I'd never use it..
Umm, you did? And I tried to pull of some "OMG Pure QB wooo!111" crap?
I Don't recall this moment :?
Jesus...you just don't get it! So let me explain... some people who only understand and comprehend QB might like a routine they fully understand that has special elements like speed, and less memory requirements. The reason for this might be, perhaps they can modify it or do whatever is needed with it to work into one of their projects.
So even better, faster, non-bloated, more efficient, blah, blah, blah... routine in another language might not be suitable to modify and work into their own projects, simply because they don't know what's going on.
(I'm suprised this thought never occured to you :shock: )

So I conclude... Pure QB is not stupid for some reasons as I pointed out, and non-pure QB would actually be stupid for some reasons, again as I pointed out.

P.s...

Z!re, looks to me like you do alot of talking about things that aren't true,
and never actually occured. My advice to you is to try not to make this type of thing a habit :wink:

Laters,

Nemesis
Maybe I'm confusing you with some other random person who wanted to make a fast pure QB put routine.. and failed.. (well, actually it worked, after creating half a meg worth of crap on the hd :P )

And really, if people can't understand: PUT (x, y), buffer, PSET
Then they sure as hell wont understand your code either..

However, I appologize if you're not the same person as, roughly, a year ago, my bad =)
I have left this dump.

Guest

Post by Guest » Tue Dec 13, 2005 11:37 pm

I don't visit this site often, but I do see everything that is posted in the "News" section from my news feeds. That's the only reason I even saw this.

SetVideoSeg is more than 3 years old. You acknowledge in your original post that you already know about it, and yet you are just releasing "your version" now. You search for the same tag bytes, only in a very obfuscated way. To me it looks like you are just trying to make the code look different from SetVideoSeg. Can you see how this looks suspicious?

I normally don't even care about things like this, but I'm critical of anything with a copyright and a disclaimer on it, especially when it looks VERY similar to something I wrote 3 years ago.

As far as the POKE: Your "16-bytes at once" statement is misleading, and I think you know that. Of course anyone can look at your code and see what it actually does. (And FYI, yes, you can write 16 bytes at once.)

Now "pure QB": I doubt that any "newbie" will use your PUT because they fully understand it. You've got no comments and cryptic variables and labels all over the place. They will most likely use it because it's a cut-and-paste solution, like SuperPut, and they don't know how to use libraries. (Although any 3rd-party routine can be considered a "library" anyway.)

I'm not really pro/anti anything, half the stuff I do is just useless proof-of-concept. If you want to write "Pure QB" routines all day that's fine with me. And in the case that this was all original code, my apologies to you.

Plasma

Post by Plasma » Tue Dec 13, 2005 11:40 pm

^^^^^

User avatar
{Nathan}
Veteran
Posts: 1169
Joined: Thu Aug 19, 2004 6:08 pm
Location: The wetlands of central Ohio, USA
Contact:

Post by {Nathan} » Wed Dec 14, 2005 4:55 pm

OK, don't listen to Z!re. True, QB IS slow, but hey, it takes a real kick-ass programmer to be able to pull that shit off.

In other words, keep it up. Good job, *claps*, all of that good stuff. I look foreward to seeing what amazing things you can do with that old graveyard and my old laptop :lol:
Image

Optimus
Newbie
Posts: 9
Joined: Fri Dec 09, 2005 3:47 am
Location: Greece (Thessaloniki)
Contact:

Post by Optimus » Thu Dec 15, 2005 2:19 pm

Hey, come on! It's ok to do stuff in pure qb since the scene evolved in qb. It's not about whether qb is slow or not, outdated or not, that's not the matter, it's about the fact that there is a scene which has choosen to try doing teh shit in a limited oldschool compiler and that's impressive for me, even if sometimes qb is just chosen to create some silly "Wow! It's fast and it's in pure qb!!! teh 1337" hype. But I really like this shit and I am mostly interested in qb challenges. I really want to copy this code and try it at my home computer to check speed. Perhaps I'll try in the future my own version too. Or if you like it elsewhere, perhaps the scene splits in the pure quickbasic scene and the freebasic scene in the future. I'll be checking stuff from both but I think I am more hot for classic quickbasic coding in the future. I was also thinking of making a qbasic demo website with a list of classic demos and effects, trying to optimizing specific effects in pure qbasic and such "silly" stuff I personally like :lol:

Quickbasic ueber alles!!!
What is Madness? Pain.
What is Life? Madness

Have a time nevertheless :P

User avatar
Zim
Veteran
Posts: 98
Joined: Mon Dec 05, 2005 4:31 pm
Location: Wisconsin, USA
Contact:

QB is slow

Post by Zim » Mon Jan 16, 2006 12:40 pm

Qb is slow. OK, I suppose you could say that. I always assumed C/C++ was faster. I think it depends on a lot of things.

I know most of you do graphics/game programming. Not me; I just crunch numbers, and folks, that's all done in the FPU.

I saw an article in PC Magazine back in the 80's. The author was demonstrating how much faster a prime number sieve is in assembler than in interpreted basic (GW-BASIC/BASICA). I took his EXACT same BASICA code and let QB v 2.0 compile it. I ran the result on a 4.77 MHz IBM PC-XT, just like he did in his article. My QB .exe file ran faster than his assembler .com file.

That's the main reason I gave up on learning assembler. I'm not trying to push bytes, segments, addresses, and re-map memory. I'm just crunching numbers. For that, QB on a Pentium III is FAST. (So's PowerBASIC, and FreeBASIC, for that matter.)
--- Zim ---
--- Time flies like an arrow, but fruit flies like a banana ---

User avatar
matt2jones
Veteran
Posts: 80
Joined: Sat Feb 19, 2005 8:29 am
Location: elsewhere
Contact:

Post by matt2jones » Mon Jan 23, 2006 4:58 am

Noone care.. Pure QB is stupid, it's slow, and in some way trying to hold it as something special is absurd..
I enjoy pure QB programs. There great fun in the challenge department. I admit I'm unlikly to start a new project from scratch in QB anytime soon, but I do have a few I'm still finishing off, and I want to port one of my FB ones back to QB45... and maybe even QB1.1 (where routines like this would be useful) for the hell of it.

A while ago I tried to collect together a load of QB1.1 compatable routines to make a kind of DQB styled library for it... I never announced it cause I hit a wall early on with a font routine, but I'm still activly interested and involved in Qbasic...

Well done Nem...

matt notices he's a week late with this post...
Do not mistake Apathy for feeling Content.

http://www.disjointed.cjb.net - Short Storys
http://matt2jones.deviantart.com - Random Art
http://www.freewebs.com/matt2jones - WebComic

User avatar
ShadowWolf
Veteran
Posts: 56
Joined: Thu Mar 04, 2004 1:32 pm
Contact:

Post by ShadowWolf » Mon Jan 23, 2006 9:30 pm

no Z!re is right being impressed by some super fast QB bliting routine is simple pathetic it like being impress by watching some 5 year old playing hockey or some other kids sport. it interesting to see but it's by no means impressive.

i mean even back in the day this wouldn't have been truly impressive
since there where many great gaming libs and asm based blitters out there. and any thing pure QB what ever was simple taken as a novelty but not looked at as anything more.

the only people who ever took pure QB anything as incredible state of the art QB greatness where the nut ball QB zealots who had what can only be described as some form of dementia to anything non QB being mixed in with QB.

User avatar
Nodtveidt
Veteran
Posts: 826
Joined: Sun Jul 25, 2004 4:24 am
Location: Quebradillas, PR
Contact:

Post by Nodtveidt » Tue Jan 24, 2006 12:29 am

Not everyone is impressed by the same things, and we don't really have much right to judge what should or should not be impressive to anyone except ourselves.

I'll show you the fastest pure QB put routine...prepare yourself...

Code: Select all

PUT
Pretty easy, eh? :D

zanzibar
Coder
Posts: 21
Joined: Tue Feb 28, 2006 10:03 pm

Post by zanzibar » Thu Mar 02, 2006 3:23 pm

that's a really nice put routine but sometimes, you like not having anyone else's name on your work! That's why I don't always use libraries

zanzibar
Coder
Posts: 21
Joined: Tue Feb 28, 2006 10:03 pm

Post by zanzibar » Thu Mar 02, 2006 3:28 pm

oh yeah, almost forgot...

you should re-write the method with better documentation. it looks really nice but only hard core qb coders understand it.

Post Reply