home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************/
- /* */
- /* GAL-Software */
- /* */
- /* Soft- and Hardware is copyright (c) 1991 */
- /* by Christian Habermann */
- /* Asamstr. 17 */
- /* W-8050 Freising (Germany) */
- /* */
- /* This is Version 1.4 of GALer. */
- /* */
- /* History: */
- /* V1.0: Testversion */
- /* V1.1: Intuition environment added */
- /* V1.2: some errors fixed */
- /* V1.3: some errors fixed */
- /* V1.4: new environment and support of A and B-GALs */
- /* */
- /* Compiler: Aztec 3.6a */
- /* */
- /* compilieren: cc GALer.c */
- /* cc sub.c */
- /* cc jedec.c */
- /* cc pruefer.c */
- /* cc GAL.c */
- /* cc GALasm.c */
- /* cc Reasm.c */
- /* cc Optimizer.c */
- /* as -n -c -d port.asm */
- /* as -n -c -d reqglue.asm */
- /* linken : ln GALer.o Sub.o Port.o Jedec.o Pruefer.o GAL.o */
- /* GAL2.o GALasm.o Reasm.o Optimizer.o */
- /* reqglue.o -lc */
- /* */
- /* Sorry for the German comments - but I was too lazzy to */
- /* translate them. */
- /* Source of GAL2.c is not included! */
- /****************************************************************/
-
- #include <devices/parallel.h>
- #include <exec/io.h>
- #include <exec/memory.h>
- #include <exec/ports.h>
- #include <exec/types.h>
- #include <graphics/gfxbase.h>
- #include <graphics/text.h>
- #include <intuition/intuition.h>
- #include <libraries/dosextens.h>
- #include <functions.h>
-
- #include "GALer.h"
- #include "reqbase.h"
-
-
-
- #define Menu_1 0
- #define Menu_2 1
- #define Menu_3 2
- #define Menu_4 3
- #define Menu_5 4
- #define Menu_6 5
-
- #define Item_1 0
- #define Item_2 1
- #define Item_3 2
- #define Item_4 3
- #define Item_5 4
- #define Item_6 5
- #define Item_7 6
- #define Item_8 7
- #define Item_9 8
-
-
-
- extern struct ReqFileRequester MyFileReqStruct;
-
-
- struct IORequest *CreateExtIO();
- struct IntuitionBase *IntuitionBase;
- struct ReqLib *ReqBase;
- struct GfxBase *GfxBase;
- struct IntuiMessage *message;
- struct Screen *screen;
- struct Window *window,*old_ReqWin;
- struct MsgPort *timeport, *parport;
- struct timerequest *timereq;
- struct IOExtPar *parreq;
- struct TextFont *txtfont;
- struct TextAttr txtattr;
-
-
-
- UWORD MyColors[4]={0xAAA,0x000,0xFFF,0x688};
-
- SHORT vector3a[] = { 0,255,639,255,639,205 };
- SHORT vector3b[] = { 0,255,0,205,639,205 };
-
- SHORT vector2a[] = { 30,195,610,195,610,160 };
- SHORT vector2b[] = { 30,195,30,160,610,160 };
-
- SHORT vector1a[] = { 0,199,639,199,639,11 };
- SHORT vector1b[] = { 0,199,0,11,639,11 };
-
-
- struct Border border3b = { 0,0,2,3,JAM1,3,(SHORT *)vector3b,NULL };
- struct Border border3a = { 0,0,1,3,JAM1,3,(SHORT *)vector3a,&border3b };
- struct Border border2b = { 0,0,2,3,JAM1,3,(SHORT *)vector2b,&border3a };
- struct Border border2a = { 0,0,1,3,JAM1,3,(SHORT *)vector2a,&border2b };
- struct Border border1b = { 0,0,2,3,JAM1,3,(SHORT *)vector1b,&border2a };
- struct Border border1a = { 0,0,1,3,JAM1,3,(SHORT *)vector1a,&border1b };
-
-
- UBYTE title[] = "GALer V1.4 (c) 1993 by Christian Habermann GAL16V8 ";
-
-
- struct IntuiText MIText1a = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Show pinnames",NULL};
-
- struct IntuiText MIText1b = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Clear pinnames",NULL};
-
- struct IntuiText MIText1d = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Optimizer",NULL};
-
- struct IntuiText MIText1c = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"GAL-Checker",NULL};
-
-
- struct IntuiText MIText3c = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Reassembler",NULL};
-
- struct IntuiText MIText3b = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"JEDEC-file parameter",NULL};
-
- struct IntuiText MIText3 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Generate JEDEC-file",NULL};
-
- struct IntuiText MIText3a = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"GAL-Info",NULL};
-
- struct IntuiText MIText4b = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Read ACW",NULL};
-
- struct IntuiText MIText4 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Read signature",NULL};
-
- struct IntuiText MIText5 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Assemble file",NULL};
-
- struct IntuiText MIText8 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Set security bit",NULL};
-
- struct IntuiText MIText8b = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Write access",NULL};
-
- struct IntuiText MIText8a = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Test security bit",NULL};
-
- struct IntuiText MIText9 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Blank test",NULL};
-
- struct IntuiText MIText9a = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Compare",NULL};
-
- struct IntuiText MIText10 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Copy",NULL};
-
- struct IntuiText MIText11 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Program",NULL};
-
- struct IntuiText MIText12 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Erase",NULL};
-
- struct IntuiText MIText21 = {0,1,JAM1,20,1,NULL,
- (UBYTE *)"A-Type",NULL};
-
- struct IntuiText MIText20a= {0,1,JAM1,20,1,NULL,
- (UBYTE *)"Auto-A-Type",NULL};
-
- struct IntuiText MIText20 = {0,1,JAM1,20,1,NULL,
- (UBYTE *)"Type-Requester",NULL};
-
- struct IntuiText MIText13 = {0,1,JAM1,20,1,NULL,
- (UBYTE *)"GAL20V8",NULL};
-
- struct IntuiText MIText14 = {0,1,JAM1,20,1,NULL,
- (UBYTE *)"GAL16V8",NULL};
-
- struct IntuiText MIText17 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Quit",NULL};
-
- struct IntuiText MIText16 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Save config.",NULL};
-
- struct IntuiText MIText15 = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"About GALer",NULL};
-
- struct IntuiText MITextP = {0,1,JAM1,0,1,NULL,
- (UBYTE *)"Exit Checker",NULL};
-
-
-
- struct MenuItem MenuItem1d= {NULL,0,35,180,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText1d,NULL,'o',NULL,MENUNULL};
-
- struct MenuItem MenuItem1c= {&MenuItem1d,0,20,180,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText1c,NULL,'m',NULL,MENUNULL};
-
- struct MenuItem MenuItem1b= {&MenuItem1c,0,10,180,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText1b,NULL,'c',NULL,MENUNULL};
-
- struct MenuItem MenuItem1a= {&MenuItem1b,0,0,180,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText1a,NULL,'n',NULL,MENUNULL};
-
- struct MenuItem MenuItem3c= {NULL,0,60,224,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText3c,NULL,'i',NULL,MENUNULL};
-
- struct MenuItem MenuItem3b= {&MenuItem3c,0,45,224,10,
- ITEMTEXT+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText3b,NULL,0,NULL,MENUNULL};
-
- struct MenuItem MenuItem3 = {&MenuItem3b,0,35,224,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText3,NULL,'j',NULL,MENUNULL};
-
- struct MenuItem MenuItem3a= {&MenuItem3,0,20,224,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText3a,NULL,'e',NULL,MENUNULL};
-
- struct MenuItem MenuItem2b= {&MenuItem3a,0,10,224,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText4b,NULL,'w',NULL,MENUNULL};
-
- struct MenuItem MenuItem2 = {&MenuItem2b,0,0,224,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText4,NULL,'r',NULL,MENUNULL};
-
- struct MenuItem MenuItem7 = {NULL,0,0,200,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText5,NULL,'a',NULL,MENUNULL};
-
-
- struct MenuItem MenuItem12b= {NULL,0,75,182,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText8b,NULL,'d',NULL,MENUNULL};
-
- struct MenuItem MenuItem12a= {&MenuItem12b,0,60,182,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText8a,NULL,'v',NULL,MENUNULL};
-
- struct MenuItem MenuItem12 = {&MenuItem12a,0,50,182,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText8,NULL,'s',NULL,MENUNULL};
-
- struct MenuItem MenuItem11 = {&MenuItem12,0,40,182,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText9,NULL,'t',NULL,MENUNULL};
-
- struct MenuItem MenuItem9c = {&MenuItem11,0,30,182,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText9a,NULL,'b',NULL,MENUNULL};
-
- struct MenuItem MenuItem8 = {&MenuItem9c,0,20,182,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText12,NULL,'l',NULL,MENUNULL};
-
- struct MenuItem MenuItem10 = {&MenuItem8,0,10,182,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText10,NULL,'k',NULL,MENUNULL};
-
- struct MenuItem MenuItem9 = {&MenuItem10,0,0,182,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText11,NULL,'p',NULL,MENUNULL};
-
- struct MenuItem MenuItem14 = {NULL,0,45,138,10,
- MENUTOGGLE+CHECKIT+ITEMTEXT+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText20,NULL,0,NULL,MENUNULL};
-
- struct MenuItem MenuItem14a= {&MenuItem14,0,35,138,10,
- MENUTOGGLE+CHECKIT+ITEMTEXT+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText20a,NULL,0,NULL,MENUNULL};
-
- struct MenuItem MenuItem14b= {&MenuItem14a,0,20,138,10,
- MENUTOGGLE+CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText21,NULL,'3',NULL,MENUNULL};
-
- struct MenuItem MenuItem13b= {&MenuItem14b,0,10,138,10,
- CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0xFFE1,(APTR)&MIText13,NULL,'2',NULL,MENUNULL};
-
- struct MenuItem MenuItem13 = {&MenuItem13b,0,0,138,10,
- CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0xFFE2,(APTR)&MIText14,NULL,'1',NULL,MENUNULL};
-
- struct MenuItem MenuItem17 = {NULL,0,25,172,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText17,NULL,'q',NULL,MENUNULL};
-
- struct MenuItem MenuItem16 = {&MenuItem17,0,10,172,10,
- ITEMTEXT+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText16,NULL,0,NULL,MENUNULL};
-
- struct MenuItem MenuItem15 = {&MenuItem16,0,0,172,10,
- ITEMTEXT+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MIText15,NULL,0,NULL,MENUNULL};
-
-
-
-
-
-
- struct Menu Menu6 = {NULL,446,0,87,0,MENUENABLED,
- "Tools",&MenuItem1a};
-
- struct Menu Menu5 = {&Menu6,304,0,135,0,MENUENABLED,
- "GAL-Disassembler",&MenuItem2};
-
- struct Menu Menu4 = {&Menu5,186,0,111,0,MENUENABLED,
- "GAL-Assembler",&MenuItem7};
-
- struct Menu Menu3 = {&Menu4,148,0,31,0,MENUENABLED,
- "GAL",&MenuItem9};
-
- struct Menu Menu2 = {&Menu3,70,0,71,0,MENUENABLED,
- "GAL-Type",&MenuItem13};
-
- struct Menu Menu1 = {&Menu2,0,0,63,0,MENUENABLED,
- "Project",&MenuItem15};
-
-
-
- struct MenuItem MenuItemP = {NULL,0,0,175,10,
- ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
- 0,(APTR)&MITextP,NULL,'x',NULL,MENUNULL};
-
- struct Menu MenuP = {NULL,0,0,95,0,MENUENABLED,
- "GAL-Checker",&MenuItemP};
-
-
-
-
-
-
-
-
- SHORT BorderVectors1[] = {0,0,17,0,17,9,0,9,0,0};
- struct Border Border1 = {-1,-1,2,3,JAM1,5,BorderVectors1,NULL};
- struct Border Border2 = {-1,-1,3,3,JAM1,5,BorderVectors1,NULL};
-
-
- struct IntuiText IText35 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText34 = {2,0,JAM2,4,0,NULL,(UBYTE *)"O",NULL};
- struct IntuiText IText33 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText32 = {2,0,JAM2,4,0,NULL,(UBYTE *)"O",NULL};
- struct IntuiText IText31 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText30 = {2,0,JAM2,4,0,NULL,(UBYTE *)"O",NULL};
- struct IntuiText IText29 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText28 = {2,0,JAM2,4,0,NULL,(UBYTE *)"O",NULL};
- struct IntuiText IText27 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText26 = {2,0,JAM2,4,0,NULL,(UBYTE *)"O",NULL};
- struct IntuiText IText25 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText24 = {2,0,JAM2,4,0,NULL,(UBYTE *)"O",NULL};
- struct IntuiText IText23 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText22 = {2,0,JAM2,4,0,NULL,(UBYTE *)"O",NULL};
- struct IntuiText IText21 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText20 = {2,0,JAM2,4,0,NULL,(UBYTE *)"O",NULL};
-
- struct IntuiText IText13 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText12 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText11 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText10 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText9 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText8 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText7 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText6 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText5 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText4 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
-
- struct IntuiText IText1c = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText3 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText2 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
- struct IntuiText IText1 = {2,0,JAM2,4,0,NULL,(UBYTE *)"L",NULL};
-
-
- struct Gadget Gadget35= {NULL,382,120,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border2,NULL,&IText35,NULL,NULL,15,NULL};
- struct Gadget Gadget34= {&Gadget35,340,120,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText34,NULL,NULL,30,NULL};
- struct Gadget Gadget33= {&Gadget34,382,110,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border2,NULL,&IText33,NULL,NULL,16,NULL};
- struct Gadget Gadget32= {&Gadget33,340,110,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText32,NULL,NULL,31,NULL};
- struct Gadget Gadget31= {&Gadget32,382,100,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border2,NULL,&IText31,NULL,NULL,17,NULL};
- struct Gadget Gadget30= {&Gadget31,340,100,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText30,NULL,NULL,32,NULL};
- struct Gadget Gadget29= {&Gadget30,382,90,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border2,NULL,&IText29,NULL,NULL,18,NULL};
- struct Gadget Gadget28= {&Gadget29,340,90,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText28,NULL,NULL,33,NULL};
- struct Gadget Gadget27= {&Gadget28,382,80,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border2,NULL,&IText27,NULL,NULL,19,NULL};
- struct Gadget Gadget26= {&Gadget27,340,80,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText26,NULL,NULL,34,NULL};
- struct Gadget Gadget25= {&Gadget26,382,70,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border2,NULL,&IText25,NULL,NULL,20,NULL};
- struct Gadget Gadget24= {&Gadget25,340,70,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText24,NULL,NULL,35,NULL};
- struct Gadget Gadget23= {&Gadget24,382,60,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border2,NULL,&IText23,NULL,NULL,21,NULL};
- struct Gadget Gadget22= {&Gadget23,340,60,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText22,NULL,NULL,36,NULL};
- struct Gadget Gadget21= {&Gadget22,382,50,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border2,NULL,&IText21,NULL,NULL,22,NULL};
- struct Gadget Gadget20= {&Gadget21,340,50,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText20,NULL,NULL,37,NULL};
-
- struct Gadget Gadget13= {&Gadget20,382,130,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText13,NULL,NULL,10,NULL};
- struct Gadget Gadget12= {&Gadget13,242,120,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText12,NULL,NULL,9,NULL};
- struct Gadget Gadget11= {&Gadget12,242,110,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText11,NULL,NULL,8,NULL};
- struct Gadget Gadget10= {&Gadget11,242,100,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText10,NULL,NULL,7,NULL};
- struct Gadget Gadget9 = {&Gadget10,242,90,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText9,NULL,NULL,6,NULL};
- struct Gadget Gadget8 = {&Gadget9,242,80,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText8,NULL,NULL,5,NULL};
- struct Gadget Gadget7 = {&Gadget8,242,70,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText7,NULL,NULL,4,NULL};
- struct Gadget Gadget6 = {&Gadget7,242,60,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText6,NULL,NULL,3,NULL};
- struct Gadget Gadget5 = {&Gadget6,242,50,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText5,NULL,NULL,2,NULL};
- struct Gadget Gadget4 = {&Gadget5,242,40,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText4,NULL,NULL,1,NULL};
-
- struct Gadget Gadget1c= {NULL,382,120,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText1c,NULL,NULL,14,NULL};
- struct Gadget Gadget3 = {&Gadget1c,242,30,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText3,NULL,NULL,13,NULL};
- struct Gadget Gadget2 = {&Gadget3,382,30,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText2,NULL,NULL,12,NULL};
- struct Gadget Gadget1 = {&Gadget2,242,20,16,8,NULL,
- GADGIMMEDIATE+RELVERIFY,BOOLGADGET,
- (APTR)&Border1,NULL,&IText1,NULL,NULL,11,NULL};
-
-
-
- struct NewScreen MyScreen={ 0,0,640,256,2,2,3,HIRES,CUSTOMSCREEN,&txtattr,
- (UBYTE *)title,
- NULL,NULL} ;
-
- struct NewWindow MyWindow={ 0,11,640,245,1,2,
- GADGETUP|MENUPICK|VANILLAKEY,
- ACTIVATE|BORDERLESS,
- NULL,NULL,NULL,NULL,NULL,0,0,0,0,CUSTOMSCREEN };
-
-
- struct Process *myproc;
-
- struct RastPort *rp;
- struct ViewPort *vp;
-
- int pruef_mode = 0;
-
-
- extern int GALType, MaxFuseAdr, SigAdr;
-
- extern struct Configuration Config;
-
-
-
- main()
- {
- ULONG class;
- USHORT code, gadID;
- struct Gadget *gad;
-
-
- OpenStuff(); /*Libs, Windows... öffnen*/
-
- rp = &(screen->RastPort);
- vp = &screen->ViewPort;
-
- LoadRGB4(vp,&MyColors,4L);
- DrawBorder(rp,&border1a,0L,0L); /*Umrandungen,... zeichnen*/
-
-
- if (GetParPort()) { /*Druckerport frei?*/
- puts("parallel port is not free!");
- CloseStuff();
- exit(0);
- }
-
- if (GetTimer()) { /*Timer holen*/
- FreeParPort();
- puts("can't find timer!");
- CloseStuff;
- exit(0);
- }
-
-
- InitGALer(); /*Ausgänge von IC3,4,5 auf*/
- EnableOutput(); /*LOW schalten*/
-
- LoadConfig(); /* Voreinstellung laden */
-
-
- for (;;) {
- Wait(1L<<window->UserPort->mp_SigBit);
- if (message=(struct IntuiMessage *)GetMsg(window->UserPort)) {
- class = message->Class;
- code = message->Code;
- if (class == GADGETUP) {
- gad = (struct Gadget *)message->IAddress;
- gadID = gad->GadgetID; }
- ReplyMsg(message);
-
- switch(class) {
- case MENUPICK: if (MENUNUM(code) != MENUNULL)
- ExecuteMenu(MENUNUM(code),ITEMNUM(code));
- break;
- case GADGETUP: if ((gadID < 100) && (pruef_mode == ON))
- Pruefer(gad,gadID);
- break;
- }
- }
- }
-
- } /*end of main*/
-
-
-
-
-
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- /* Subroutinen */
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
-
-
- /*aufgerufenes Menü ausführen*/
- void ExecuteMenu(menu,item)
- int menu,item;
- {
- if (pruef_mode==ON) {
- if ((menu == Menu_1) && (item == Item_1)) TogglePruefer();
- }
- else {
- switch (menu) {
- case Menu_1: /*Projekt*/
- switch (item) {
- case Item_1:
- About();
- break;
- case Item_2:
- SaveConfig();
- break;
- case Item_3:
- CloseStuff();
- FreeTimer();
- FreeParPort();
- exit(0);
- break;
- }
- break;
- case Menu_2: /*GAL-Typ*/
- switch (item) {
- case Item_1:
- SetGALType(GAL16V8,Config.AType);
- break;
- case Item_2:
- SetGALType(GAL20V8,Config.AType);
- break;
- case Item_3:
- SetGALType(GALType,!Config.AType);
- break;
- case Item_4:
- Config.AutoAType = !Config.AutoAType;
- if (Config.AutoAType)
- MenuItem14b.Flags &= ~ITEMENABLED; /*A-Typ-Menü*/
- else
- MenuItem14b.Flags |= ITEMENABLED; /*A-Typ-Menü*/
- break;
- case Item_5:
- Config.GALTypeReq = !Config.GALTypeReq;
- break;
- }
- break;
- case Menu_3: /*GAL*/
- switch (item) {
- case Item_1:
- ProgramGAL(); /*programmieren*/
- break;
- case Item_2: /*kopieren*/
- CopyGAL();
- break;
- case Item_3: /*löschen*/
- Loeschen();
- break;
- case Item_4: /*vergleichen*/
- Compare();
- break;
- case Item_5: /*Leertest*/
- Leertest();
- break;
- case Item_6: /*setze Sec.*/
- SetSecurity(YES);
- break;
- case Item_7:
- TestSecurity(); /*teste Sec.*/
- break;
- case Item_8:
- Schreibverhalten();
- break;
- }
- break;
- case Menu_4: /*GAL-Assembler*/
- if (item == Item_1) {
- AssembleInputFile(ASSEMBLER); /*Eingabe-Datei assemblieren*/
- break;
- }
- break;
- case Menu_5: /*GAL-Disassembler*/
- switch (item) {
- case Item_1:
- PrintSignature();
- break;
- case Item_2:
- PrintACW();
- break;
- case Item_3:
- GALInfo();
- break;
- case Item_4:
- PutJedec();
- break;
- case Item_5:
- JedecRequester();
- break;
- case Item_6:
- Reassembler();
- break;
- }
- break;
- case Menu_6: /*Tools*/
- switch (item) {
- case Item_1:
- PrintPinNames();
- break;
- case Item_2:
- ClearPinNames();
- break;
- case Item_3:
- TogglePruefer();
- break;
- case Item_4:
- Optimizer();
- break;
- }
- }
- }
- }
-
-
-
- /* PAL oder NTSC?
- */
- void PAL_NTSC()
- {
- if (GfxBase->DisplayFlags & NTSC) { /*wenn NTSC, dann anpassen*/
- MyScreen.Height = 200;
- MyWindow.Height = 189;
- border2b.NextBorder = NULL; /*unteren Kasten weglassen*/
- }
- }
-
-
-
-
- int GetParPort() /*Druckerport belegen*/
- {
-
- parport = CreatePort(0L,0L);
- if (parport == NULL)
- return(-1);
-
- parreq = (struct IOExtPar *) CreateExtIO(parport,(long)sizeof(struct IOExtPar));
- if (parreq == NULL) {
- DeletePort(parport);
- return(-1);
- }
-
- if (OpenDevice((UBYTE *)"parallel.device",0L,parreq,0L)) {
- DeleteExtIO(parreq,(long)sizeof(struct IOExtPar));
- DeletePort(parport);
- return(-1);
- }
-
- InitParPort(); /*Datenrichtungsregister der CIAs*/
- /*initialisieren*/
- return(0);
- }
-
-
- void FreeParPort() /*Druckerport wieder freigeben*/
- {
- RestoreParPort(); /*Datenrichtungsregister der CIAs restau-*/
- /*rieren, nicht aber den Zustand der Aus-*/
- /*gänge, da sonst der angeschlossene Brenner*/
- /*einen ungewollten Befehl erhalten könnte*/
- /*(Vcc on, VEdit on,...).*/
- CloseDevice(parreq); /* Port wieder freigeben */
- DeleteExtIO(parreq,(long)sizeof(struct IOExtPar));
- DeletePort(parport);
- }
-
-
- GetTimer() /*Timer holen*/
- {
-
- timeport = CreatePort(0L,0L);
- if (timeport == NULL)
- return(-1);
-
- timereq=(struct timerequest *)AllocMem(
- (long)sizeof(struct timerequest),MEMF_PUBLIC);
- if (timereq == NULL) {
- DeletePort(timeport);
- return(-1);
- }
-
- timereq->tr_node.io_Message.mn_Node.ln_Type=NT_MESSAGE;
- timereq->tr_node.io_Message.mn_Node.ln_Pri=0;
- timereq->tr_node.io_Message.mn_ReplyPort=timeport;
-
- if (OpenDevice(TIMERNAME,UNIT_MICROHZ,timereq,0L)) {
- FreeMem(&timereq,(long)sizeof(struct timerequest));
- DeletePort(timeport);
- return(-1);
- }
-
- return(0);
- }
-
-
- void FreeTimer() /*Timer wieder freigeben*/
- {
- CloseDevice(timereq);
- FreeMem(timereq,(long)sizeof(struct timerequest));
- DeletePort(timeport);
- }
-
-
- /*micro: microsec. to wait
- secs: seconds to wait
- */
- void WaitForTimer(micro)
- ULONG micro;
- {
- timereq->tr_node.io_Command=TR_ADDREQUEST;
- timereq->tr_time.tv_secs=0;
- timereq->tr_time.tv_micro=micro;
- DoIO(timereq);
- }
-
-
-
-
- void OpenStuff()
- {
-
- if ((IntuitionBase=(struct IntuitionBase *)OpenLibrary("intuition.library",0L))==NULL) {
- puts("can't open intuition.library!");
- exit(0);
- }
-
- if((GfxBase=(struct GfxBase *)OpenLibrary("graphics.library",0L))==NULL) {
- puts("can't open graphics.library!");
- CloseStuff();
- exit(0);
- }
- PAL_NTSC(); /*Fenstergröße usw. anpassen*/
-
- if ((ReqBase=(struct ReqLib *)OpenLibrary("req.library",0L))==NULL) {
- puts("can't open req.library!");
- CloseStuff();
- exit(0);
- }
-
-
- txtattr.ta_Name = (STRPTR)"topaz.font"; /*Font holen*/
- txtattr.ta_YSize = 8;
- txtattr.ta_Style = 0;
- txtattr.ta_Flags = 0;
-
- if (!(txtfont = (struct TextFont *)OpenFont(&txtattr))) {
- puts("can't find topaz.font 8!");
- CloseStuff();
- exit(0);
- }
-
-
- if (!(screen=(struct Screen *)OpenScreen(&MyScreen))) {
- puts("can't open screen!");
- CloseStuff();
- exit(0);
- }
-
- MyWindow.Screen=screen;
- if ((window=(struct Window *)OpenWindow(&MyWindow))==NULL) {
- puts("can't open window!");
- CloseStuff();
- exit(0);
- }
- SetMenuStrip(window,&Menu1);
-
- myproc = (struct Process *)FindTask(0L); /*Requester umleiten*/
- old_ReqWin = (struct Window *)myproc->pr_WindowPtr;
- myproc->pr_WindowPtr = (APTR)window;
-
- }
-
-
-
-
- void CloseStuff()
- {
-
- if (ReqBase)
- PurgeFiles(&MyFileReqStruct); /*Speicher für File-Req. freigeben*/
-
- myproc->pr_WindowPtr=(APTR)old_ReqWin; /*Req. auf ursprüngliches Window*/
-
- if (txtfont) CloseFont(txtfont);
- if (window) {
- ClearMenuStrip(window);
- CloseWindow(window);
- }
- if (screen) CloseScreen(screen);
- if (IntuitionBase) CloseLibrary (IntuitionBase);
- if (GfxBase) CloseLibrary (GfxBase);
- if (ReqBase) CloseLibrary (ReqBase);
-
- }
-
-
-