Mail Archives: djgpp/1997/05/26/05:18:01
| From: | "Michael L. Smith" <mlsmith AT vax2 DOT rainis DOT net> | 
| Newsgroups: | comp.os.msdos.djgpp,comp.lang.basic.misc,alt.lang.basic | 
| Subject: | OmniBasic/Allegro | 
| Date: | Sun, 25 May 1997 22:11:24 -0500 | 
| Organization: | Computer Design Lab | 
| Lines: | 107 | 
| Message-ID: | <3388FF5C.3FDD@vax2.rainis.net> | 
| Mime-Version: | 1.0 | 
| To: | djgpp AT delorie DOT com | 
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp | 
I have received a number of inquiries as to whether OmniBasic will work
with the Allegro package. I just down loaded it a couple hours ago and
converted the example program called 'ex2.c' from the examples directory
of the Allegro package. Allegro looks like a very nice package. I can
see why there is so much activity involving it on the newgroups.
The folowing is the program converted to OmniBasic which is followed by
a separate macro file used by the program. Enjoy!
* FILE: EX2B.B
 
* Demo of OmniBasic interfaced to Allegro
* Derived from Allegro Example Program 'EX2.C'
#USE allegro.mac
 IncludeAleggro
 SetScreenSize
;BITMAP *memory_bitmap;
 DIM x:LONG
 DIM y:LONG
#lib liballeg.a
 REM Code starts here
 Allegro_Init
 Install_Keyboard
 Set_Gfx_Mode GFX_VGA,ScreenWidth,ScreenHeight,0,0
 Set_Pallete desktop_pallete
 REM make a memory bitmap sized 20x20
;memory_bitmap = create_bitmap(20, 20);
 REM draw some circles onto it
 Clear memory_bitmap
 FOR x=1 TO 16
	Circle memory_bitmap,10,10,x,x
 NEXT x
 REM blit lots of copies of it onto the screen
 FOR y=1 TO ScreenHeight STEP 20
	FOR x=1 TO ScreenWidth STEP 20
		Blit memory_bitmap,screen,0,0,x,y,20,20
	NEXT x
 NEXT y
 REM free the memory bitmap
 Destroy_Bitmap memory_bitmap
 ReadKey\ Keeps screen on until key is struck
* FILE: ALLEGRO.MAC
 
* Macro library for Allegro graphics package
#MACRO IncludeAleggro
;#include <stdlib.h>
;#include <stdio.h>
;#include "allegro.h"
#ENDM
#MACRO Allegro_Init
;allegro_init();
#ENDM
#MACRO Install_Keyboard 
;install_keyboard(); 
#ENDM
#MACRO SetScreenSize
#SET ScreenWidth=320
#SET ScreenHeight=200
#ENDM
#MACRO Set_Gfx_Mode
;set_gfx_mode(~1,~2,~3,~4,~5);
#ENDM
#MACRO Set_Pallete
;set_pallete(~1);
#ENDM
#MACRO Clear
;clear(~1);
#ENDM
#MACRO Blit
;blit(~1,~2,~3,~4,~5,~6,~7,~8);
#ENDM
#MACRO Destroy_Bitmap
;destroy_bitmap(~1);
#ENDM
#MACRO ReadKey
;readkey();
#ENDM
#MACRO Circle
;circle(~1,~2,~3,~4,~5);
#ENDM
- Raw text -