keep GLOBALS **************************************************************** * ChemiGS * **************************************************************** * A Drawing Program for Chemical Structures * * (c) 1992-93 by Urs Hochstrasser * * Buendtenweg 6 * * 5105 AUENSTEIN (SWITZERLAND) * **************************************************************** * Module GLOBALS **************************************************************** * * USES ... * mcopy Globals.macros copy equates.asm **************************************************************** * * VAR * Globals data gMemID ds 2 gMyID ds 2 gToolRef ds 4 fDoAbout ds 2 fWaitForKey ds 2 fTextFlag ds 2 gMainEvt ds 16 Task Record: Event+Task (Fields by Offs) gTaskDta ds 4 gTaskMsk dc i4'$001FFB7F' @@@@ was $001FFF7F ds 4 wmLastClickTick ds 2 wmClickCount gTaskDa2 ds 4 gTaskDa3 ds 4 gTaskDa4 ds 4 ds 4 wmLastClickPt ds 2 dummy (rest of Task record ?) gDone dc i2'0' Quit flag gToolID ds 2 active tool from toolbar oldToolID ds 2 gToolErr ds 2 gDataWNum ds 2 gDefaultTool dc i2'2' Single bond tool gAboutWin ds 4 gLastWindow ds 4 gVersion dc i2'2' TBOffset dc i2'6' RulerH dc i2'18' ruler heigth SGRecord ds 14 generic Set/GetField Record gNewLink ds 4 gNewText ds 4 gNewObj ds 4 gToolWin ds 4 gEasterWin ds 4 gPrefWin ds 4 gHelpWin ds 4 gEditCursor ds 4 Pointer to Edit Cursor (1 of the following) gCrossCur ds 4 Handle gMarqueeCur ds 4 Handle gHandCur ds 4 Handle gTextCur ds 4 Handle gEraseCur ds 4 Handle gArrowCur ds 4 ChFont ds 4 SysFont ds 4 LErecH ds 4 masterSCB ds 2 fFirstFile ds 2 fCacheWins dc i2'0' Set Cache Windows to FALSE fSys5 dc i2'0' 1 -> TRUE; $8001 -> DON'T CHANGE gPenSize dc i2'1' dc i2'2' FInfoHndl ds 4 Handle to window's File Info Record *+++++++++++++++++++++ FILE INFO RECORD +++++++++++++++++++++++++++++++++++++++ FileInfo anop (100 Bytes for each file) gTheData ds 4 Handle to linked segment list gTheText ds 4 Handle to linked AtomText list gTheObj ds 4 Handle to linked object list hScrollH ds 4 handle to hor. scroll bar (ID 5) vScrollH ds 4 handle to vert. scroll bar (ID 6) MountnH ds 4 handle to display size control (ID 8) SizeBoxH ds 4 handle to size box control (ID 9) gContentRect dc i2'18,0,156,531' Window's Content Rect (own terminology) gOffPort ds 4 Pointer to Window's offscreen GrafPort! gXoffset ds 2 gYoffset ds 2 gDocW ds 2 gDocH ds 2 LEditH ds 4 handle to window's Line Edit Cntl (ID 4) TBarH ds 4 Handle to inactive ToolBar Ctrl (ID 7) *\----------------This part moved on every update---56 Bytes-------------------/ gLink ds 4 Handle to next free segment gTXLink ds 4 Handle to next free AtomText string gObjLink ds 4 Handle to next free object space gDataWin ds 4 Pointer to current Window's GrafPort wKind ds 2 Kind of Window -- unused yet fSaved dc i2'1' set to TRUE, so no 'Save' of empty Win fNamed ds 2 Is set to TRUE after a PutFile Dialog fFullAccess ds 2 TRUE if R/W access to file fOpened ds 2 TRUE if file associated to Window is open gTitleH ds 4 Handle to Title memory Block (for resizing, etc.) gTitlePtr ds 4 Pointer to title string gPrintHndl ds 4 Handle to Window's Print Record gPathPtr ds 4 Pointer to Window's file path gRefNum ds 2 File Reference Number of Window's associated File gInfoRect ds 8 Window's Info Bar Rectangle picHandle ds 4 Handle to offscreen picture! ds 4 dummy *++++++++++++++++++ END of FileInfo RECORD ++++++++++++++++++++++++++++++++++++ dumdum ds 10 nothin' FileHeader anop *----------H-E-A-D-E-R----------------* hdrLength dc i4'256' hdrVersion dc h'0001' fileKind ds 2 gPrintRec ds 140 *** Insert additional header data here *** hdrDummy ds 120 *-------E-N-D---O-F---H-E-A-D-E-R-----* locInfo anop portSCB ds 2 SCB Byte ptrToPixImage ds 4 pointer to pixel image width dc i2'160' width boundsRect dc i2'0,0,400,640' boundary rectangle NewSegment anop empty segment data for newLink ds 32 TheSegment anop sLink ds 4 actual data segment sType ds 2 sRgnHndl ds 4 sSize ds 2 sNamePtr ds 4 sColor ds 2 sPenSize ds 4 sCMD ds 2 yy ds 2 point 1 ('grided' coordinates) xx ds 2 yy2 ds 2 point 2 ('grided' coordinates) xx2 ds 2 NewText ds 8 New empty text element TheText anop Actual Text element txLink ds 4 Link to the next text element txPoint ds 4 Coordinates, where text appears txLen ds 1 Length of following text string txString ds 256 Actual text string NewObj ds 8 New empty object TheObj anop Actual object objLink ds 4 Link to next object objPoint ds 4 Coordinates, where object appears objData ds 256 Actual object data gForePat ds 32 gBackPat ds 32 teRec ds $107 outH ds 4 Handle to Key Filter Output *************** TEMPORARY SPACE FOR WINDOW DRAW ROUTINES **************** gViewW ds 2 gViewH ds 2 end *********************** INITIALIZE GLOBALS ****************************** InitGlobals start using Globals jsr SetTheFont ph4 #0 ~NewWindow2 #0,#0,#0,#0,#RefIsResource,#kAboutWID,#rWindParam1 pl4 gAboutWin lda #1 sta fWaitForKey fWaitForKey:=TRUE (About Box) stz gDone QuitFlag:=FALSE stz fSys5 System 5:=FALSE ph2 #0 ~GetMasterSCB pl2 masterSCB pha test Sys version via QD version ~QDVersion pla and #$0FFF mask off special flags cmp #$0307 Sys6's QD version bcs sys6 it IS Sys 6!!! lda #$8001 set sys5 flag (pre-sys6) sta fSys5 ('don't change') sys6 anop ph4 #0 Load Cursors into memory ~LoadResource #rCursor,#1 .. Cross tool pla plx jsr Deref sta gCrossCur stx gCrossCur+2 ph4 #0 ~LoadResource #rCursor,#2 .. Marquee cursor pla plx jsr Deref sta gMarqueeCur stx gMarqueeCur+2 ph4 #0 ~LoadResource #rCursor,#3 .. Hand cursor pla plx jsr Deref sta gHandCur stx ghandCur+2 ph4 #0 ~LoadResource #rCursor,#4 .. Text Cursor pla plx jsr Deref sta gTextCur stx gTextCur+2 ph4 #0 ~LoadResource #rCursor,#5 .. Cut cursor pla plx jsr Deref sta gEraseCur stx gEraseCur+2 ph4 #0 ~LoadResource #rCursor,#6 .. Arrow cursor pla plx jsr Deref sta gArrowCur stx gArrowCur+2 lda gDefaultTool initialize Tool on startup sta gToolID jsr doTheTool rts ph4 #0 create keyfilter I/O Handle ~NewHandle #2,gMyID,#0,#0 pl4 outH end SetTheFont start using Globals ph4 #0 ~LoadResource #rFont,#kChFontID sta gToolErr pl4 ChFont jsr Error ~AddFamily FontID,#FontName sta gToolErr jsr Error ~AddFontVar ChFont,#$002D sta gToolErr jsr Error ~FMSetsysFont FontID sta gToolErr jsr Error rts FontName dw 'Chemix' FontID dc i2'$FFFD' ** vielleicht zu verbessern... dc i1'0' style dc i1'8' size end Version data gCopyLoc dc i2'20,89' dc i2'75,98' CopyRight dw '(c) 1992 Bright Software, Switzerland' VersionStr dw ' Internal release 0.2.1 ' ;' Demo Release 0.03b' end **************************************************************************** * Data Format * * * **************************************************************************** * Single Segment * * * * 4 6 10 12 16 18 22 24 28 32 * +---------+----+---------+----+---------+----+--------+----+--------+--------+ * | link |type| rgnHndl |size| namePtr |col | psize |cmd | p1 | p2 | * +---------+----+---------+----+---------+----+--------+----+--------+--------+ * * **************************************************************************** * Object * * * * 4 6 10 12 16 * * +---------+----+---------+----+---------+ * * | link |type| rgnHndl |size| namePtr | * * +---------+----+---------+----+---------+ * * * * 2 6 8 12 16 * +----+--------+----+--------+--------+ * Line 1 |col | pSize |cmd | p1 | p2 | * +----+--------+----+--------+--------+ * Line 2 |col | pSize |cmd | p1 | p2 | * +----+--------+----+--------+--------+ * etc... * ****************************************************************************