.NLIST TTM .LIST MEB ;=============================================================================== ; .TITLE ARROWH .IDENT /102879/ ; ; AUTHOR: T V ATKINSON ; DEPARTMENT OF CHEMISTRY ; MICHIGAN STATE UNIVERSITY ; EAST LANSING, MI 48824 ; ; DATE: 29-APR-80 ; ; ABSTRACT(SPECIFIC): THIS ROUTINE CONTAINS A LIBRARY OF SYMBOLS FOR ; DRAWING ARROW HEADS. ; ; ABSTRACT(GENERAL): THIS AND OTHER ROUTINES OF THIS TYPE ARE LIBRARIES ; OF VECTOR LISTS. EACH ENTRY CONSISTS OF A SET OF VECTORS ; WHICH WHEN DRAWN DEPICT ONE SYMBOL (CHARACTERS, NUMBERS, ; PUNCTUATION MARKS, AND OTHER SYMBOLS). EACH VECTOR ; CONTAINS A MODE(IM), A X COORDINATE(IX), AND A Y COORDINATE(IY). ; THE VECTORS MAY BE WRITTEN(IM=2) OR UNWRITTEN(IM=1). THE ; LIBRARY IS CONSTRUCTED UNDER THE ASSUMPTION THAT EACH VECTOR ; WILL BE DRAWN FROM THE CURRENT POSITION TO THE POINT (IX,IY). ; THE POINTS (IX,IY) SPAN AN INTEGER SPACE (-64.LE.IX.LE.63, ; -128.LE.IY.LE.127). THE COORDINATES IX,IY ARE RELATIVE TO ; THE ORIGIN OF THE SYMBOL. ; ; THIS LIBRARY IS STRUCTURED TO BE USED IN CONJUNCTION ; WITH SYMGET.MAC AND SYMPLT.FTN. ; ;=============================================================================== .PAGE .SBTTL MACRO DEFINITIONS ; ;----------------------------------------------------------------------------- ; ; MACROS TO GENERATE POINTER TABLE ; ;----------------------------------------------------------------------------- ; .MACRO MPNT1,NUM .WORD COD'NUM-BASADD .ENDM ; .MACRO MPNT2,NUM1 MPNT1 NUM1 .ENDM ; ;----------------------------------------------------------------------------- ; ; AVECT: MACRO TO PACK VECTORS INTO SINGLE WORD ; ;----------------------------------------------------------------------------- ; ; PACKED VECTOR FORMAT (ONE 16 BIT WORD): ; ; BIT15 IM = MODE OF DRAWING VECTOR ; =0 -> UNWRITTEN VECTOR ; =1 -> WRITTEN VECTOR ; ; BIT14-BIT08 IX = 7 BIT SIGNED TWO'S COMPLEMENT X COORD. ; ; BIT07-BIT00 IY = 8 BIT SIGNED TWO'S COMPLEMENT Y COORD. ; ;----------------------------------------------------------------------------- ; .MACRO AVECT,IM,IX,IY .WORD <&100000>!<&77400>! .ENDM AVECT .PAGE .SBTTL LIBRARY .PSECT ARROWH,REL,RW,I .GLOBL ARROWH CODBEG=101 CODEND=102 ; ;----------------------------------------------------------------------------- ; ; ENTRY POINT ; ;----------------------------------------------------------------------------- ; BASADD: ARROWH: .WORD CODBEG .WORD CODEND .WORD 32. ; HORIZONTAL RASTER SIZE .WORD 32. ; VERTICAL RASTER SIZE ; ;----------------------------------------------------------------------------- ; ; POINTER TABLE ; ;----------------------------------------------------------------------------- ; ; POINTER TABLE FORMAT: ; ; .WORD CODNNN ; ADDRESS OF FIRST VECTOR OF THE SYMBOL ; ; WITH CODE NNN = CODBEG ; .WORD CODNN1 ; ADDRESS OF FIRST VECTOR OF THE SYMBOL ; ; WITH CODE NNN + 1 ; ; . ; . ; . ; ; .WORD CODMMM ; ADDRESS OF FIRST VECTOR OF THE SYMBOL ; ; WITH CODE MMM = CODEND ; .WORD CODMM1 ; ADDRESS OF THE FIRST WORD AFTER LIB. ; ;----------------------------------------------------------------------------- ; NUMENT=CODEND-CODBEG + 2 ; NUMBER OF ENTRIES IN TABLE + 1 CODNUM=CODBEG .REPT NUMENT MPNT2 \CODNUM CODNUM=CODNUM+1 .ENDM .PAGE ; ;----------------------------------------------------------------------------- ; ; SYMBOL VECTOR LISTS ; ;----------------------------------------------------------------------------- ; ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; ; COLUMN 3: UPPER CASE ; ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; ; ; A: SIMPLE ARROW HEAD ; COD101: .BYTE 0., 32. ; XMIN,XMAX .BYTE -32., 32. ; YMIN,YMAX AVECT 1., 0., 0. AVECT 2., 32., 32. AVECT 1., 32.,-32. AVECT 2., 0., 0. ; ; B: ARROW WITH FOLD BACK ; COD102: .BYTE 0., 32. ; XMIN,XMAX .BYTE -32., 32. ; YMIN,YMAX AVECT 1., 0., 0. AVECT 2., 32., 32. AVECT 2., 24., 0. AVECT 2., 32.,-32. AVECT 2., 0., 0. AVECT 1., 24., 0. ; ; END OF THE LIBRARY ; COD103: COD104: .END