Screen launcher fixed

User projects written in or related to FreeBASIC.
Post Reply
Jerry Fielden
Posts: 165
Joined: May 27, 2005 14:14
Location: Marshall, Oklahoma, USA
Contact:

Screen launcher fixed

Post by Jerry Fielden »

If anybody was using ConASCII to make console full screens or partial screens or boxes to display in their console programs Screen mode 0, the broken Launcher has been fixed, thanks to Chaos and Victor.

It's faster than a speeding bullet. You all remember how slow a console Print is. It's slower than a 10 year itch on a slow computer.

It will store your screen right in there with your program so you can UPX it and not have a bunch of little files laying around.

This is for Windows console only.

This program displays the US flag at the start, If you are bothered by that, you may not want to download it.

http://fieldens.tripod.com/


I put all my screens, boxes, buttons raised and buttons sunken in their own subs in an Include file with the one launcher. I probably have about 180 to 200 subs that works all of EzeeGUI's Menus, sub Menus, buttons, help ....etc. If it wasn't for this program, I would still be working on them things.


Later.........Jerry Fielden
Last edited by Jerry Fielden on Apr 23, 2006 13:02, edited 1 time in total.
cha0s
Site Admin
Posts: 5319
Joined: May 27, 2005 6:42
Location: USA
Contact:

Post by cha0s »

nice. did you see the example i posted in tips and tricks about console? it allows get/put, so you could simply store 'sprites' of your menu at load them at runtime =) just a thought
Antoni
Posts: 1393
Joined: May 27, 2005 15:40
Location: Barcelona, Spain

Post by Antoni »

Looks great! Show it to ASCIIWorld people..

BTW: If you make optional the displaying of the religious message, why do you display at first page your patriotism?

I bet both feelings are equally strong on you, but you hide one of the messages to be politically correct ...in the US. If you made both messages optional, the program would be politically correct worldwide.

And if you don't care, put both messages in the first page! :D

My poor english may make it sound harsh, but it is not my intention..Just wanted to share my thougths.
Jerry Fielden
Posts: 165
Joined: May 27, 2005 14:14
Location: Marshall, Oklahoma, USA
Contact:

Post by Jerry Fielden »

This is an old program, it was written in 1987, nobody have mentioned the opening screen yet. It was just a form of ascii art, using mostly extended ascii characters. It started out in QB and ended up in windows console.

I wouldn't be upset if people from other countries would display their flag and claimed that God loved it. They should be proud of their country. I wouldn't think nothing of it.

I'll take if off if to many is bothered by it.

After I wrote it, the only place it went to was the local BBS in the US.

It's been on that one web page for several years and nobody seemed to mind yet.

Chaos,:

I saw it on there but I haven't looked much at it yet. I did look at WriteConsoleOutput API. I don't know very much about Sprites, I've never used them. Are they ran in screen modes other than 0.
cha0s
Site Admin
Posts: 5319
Joined: May 27, 2005 6:42
Location: USA
Contact:

Post by cha0s »

a sprite is basically a 'rectangle' of pixels under normal circumstances. in this case a sprite would be a rectangle of chars. you see how the box follows the mouse cursor in that demo? that box is not printed constantly, it was stored into a special format i wrote to store rectangles of console screens in. its just like fb. you do a "thing = create( 5, 5 )", then you can go like "get 0, 0, 4, 4, thing" (gets 5x5 char rect starting at upperleft into thing. then you can directly blit that rectangle anywhere using the accompanying "put 0, 0, thing" (it works in character cells, not pixel x/y )

its called con_Get, con_Put, con_ChunkCreate, con_ChunkDestroy, but the concept is exactly the same.
Jerry Fielden
Posts: 165
Joined: May 27, 2005 14:14
Location: Marshall, Oklahoma, USA
Contact:

Post by Jerry Fielden »

I think I get it. You are using ReadConsoleOutput to get the screen characters and then you are using WriteConsoleOutput to put them back when you need to. Is that correct? I'll go there now and copy the code to find out.

I'm doing the same thing in Conascii, but I'm storing the screens in a String. I used to put them in DATA, but I couldn't in FB because Data wasn't allowed in SUBs when I wrote that part.

My console compiler has Pcopy and mouse support in screen mode 0, but I use Read/WriteConsoleOut api to do all my screen work because of the it being so flexible.

Later.......Jerry Fielden
cha0s
Site Admin
Posts: 5319
Joined: May 27, 2005 6:42
Location: USA
Contact:

Post by cha0s »

I actually store screens in memory buffers. when you call con_Buffer() you can specify the number of pages created. (this is probably only limited to the numbers in an integer...) when the screen is ready to be blitted, you cann con_Blit() and the selected 'page' is blitted to the console. the API for switching / copying screens is true to the QB/FB syntax. (con_ScreenSet(), con_Pcopy()) hope it helps
Jerry Fielden
Posts: 165
Joined: May 27, 2005 14:14
Location: Marshall, Oklahoma, USA
Contact:

Post by Jerry Fielden »

I read through it and I see that you are not using Read/WriteConsoleOutput api to get and put the screens like I do.

I haven't tried that method, it looks kind of strange to me, but I don't program all that much and there's a lot of stuff I don't know.
Jerry Fielden
Posts: 165
Joined: May 27, 2005 14:14
Location: Marshall, Oklahoma, USA
Contact:

Post by Jerry Fielden »

cha0s wrote: it allows get/put, so you could simply store 'sprites' of your menu at load them at runtime =) just a thought
I didn't know what you were talking about here. But I think I do now. If you are talking about how slow the Menu drops, I did that on purpose. I put in a delay after it prints each selection when it's doing its drop..

If it's dropping to slow, I can always take it out, then it'll be instant, I think.

Later
cha0s
Site Admin
Posts: 5319
Joined: May 27, 2005 6:42
Location: USA
Contact:

Post by cha0s »

well, what i was talking about with the sprite thing is, so you don't have to 'print' it a bajillion times, sometimes with gfx, sprites are a better interface. not necessarily saying it's slow =) but maybe "put" could replace some number of those hundreds of blitter subs you talk about? that was the point ;)

about the buffer routines just think of it as a 2d array that covers the x, y of the screen. any operation on a buiffer deals with that array, and when it's time to blit, a function arranges that 2d array into a structure win can understand, then calls writeconsole with a full rect to copy it all in at once. so by doing this you could have any number of offscreen "arrays" and copy them into the console by setting them as the active page, and con_Blit()ting, or by passing a specific page number to con_Blit.

i should add, and it may clear it up fo you a bit, you can't print using fb's print onto a console, and get it using my method. you can only 'get' data which was already printed to an offscreen buffer, but that buffer didn't have to be blitted yet.
MystikShadows
Posts: 612
Joined: Jun 15, 2005 13:22
Location: Upstate NY
Contact:

Post by MystikShadows »

Antoni wrote:Looks great! Show it to ASCIIWorld people..
The ASCII-World people have seen it ;-)....The ASCII-World People are gonne email Jerry in the next few minutes ;-) hehe.
Post Reply