.NLIST TTM ;=============================================================================== ; .TITLE PLOTSM .IDENT /040780/ ; ; AUTHOR: E J DARLAND ; DEPARTMENT OF CHEMISTRY ; MICHIGAN STATE UNIVERSITY ; EAST LANSING, MI 48824 ; ; DATE: 30-AUG-79 ; ; ABSTRACT(SPECIFIC): THIS ROUTINE CONTAINS A LIBRARY OF ; CENTERABLE SYMBOLS SUITABLE FOR DATA PLOTTTING ; ; 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 PLOTSM,REL,RW,I .GLOBL PLOTSM CODBEG=101 CODEND=125 ; ;----------------------------------------------------------------------------- ; ; ENTRY POINT ; ;----------------------------------------------------------------------------- ; BASADD: PLOTSM: .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 2: NUMBERS, PUNCTUATION ; ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; ; ;----------------------------------------------------------------------------- ; ; SYMBOL VECTOR LISTS ; ;----------------------------------------------------------------------------- ; ; OPEN "CIRCLE" (ACTUALLY, OCTAGON) ; COD101: .BYTE -16., 16. .BYTE 0., 32. AVECT 1., -8., 0. AVECT 2., 8., 0. AVECT 2., 16., 8. AVECT 2., 16., 24. AVECT 2., 8., 32. AVECT 2., -8., 32. AVECT 2.,-16., 24. AVECT 2.,-16., 8. AVECT 2., -8., 0. ; ; OPEN TRIANGLE ; COD102: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 0. AVECT 2., 16., 0. AVECT 2., 0., 32. AVECT 2.,-16., 0. ; ; OPEN SQUARE ; COD103: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 0. AVECT 2., 16., 0. AVECT 2., 16., 32. AVECT 2.,-16., 32. AVECT 2.,-16., 0. ; ; OPEN DIAMOND ; COD104: .BYTE -16., 16. .BYTE -8., 40. AVECT 1., 0., -8. AVECT 2., 16., 16. AVECT 2., 0., 40. AVECT 2.,-16., 16. AVECT 2., 0., -8. ; ; OPEN INVERTED TRIANGLE ; COD105: .BYTE -16., 16. .BYTE 0., 32. AVECT 1., 0., 0. AVECT 2., 16., 32. AVECT 2.,-16., 32. AVECT 2., 0., 0. ; ; PLUS ; COD106: .BYTE -16., 16. .BYTE 0., 32. AVECT 1., 0., 0. AVECT 2., 0., 32. AVECT 1.,-16., 16. AVECT 2., 16., 16. ; ; X ; COD107: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 0. AVECT 2., 16., 32. AVECT 1.,-16., 32. AVECT 2., 16., 0. ; ; FILLED "CIRCLE" (OCTAGON) ; COD110: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 24. AVECT 2., -8., 32. AVECT 2., 0., 32. AVECT 2.,-16., 16. AVECT 2.,-16., 8. AVECT 2., 8., 32. AVECT 2., 16., 24. AVECT 2., -8., 0. AVECT 2., 0., 0. AVECT 2., 16., 16. AVECT 2., 16., 8. AVECT 2., 8., 0. AVECT 1., -8., 8. AVECT 2., 8., 24. AVECT 1., 8., 8. AVECT 2., -8., 24. AVECT 1.,-16., 8. AVECT 2., -8., 0. AVECT 2., 0., 0. AVECT 2.,-16., 16. AVECT 2.,-16., 24. AVECT 2., 8., 0. AVECT 2., 16., 8. AVECT 2., -8., 32. AVECT 2., 0., 32. AVECT 2., 16., 16. AVECT 2., 16., 24. AVECT 1., -8., 0. AVECT 2., -8., 32. AVECT 2., 8., 32. AVECT 2., 8., 0. AVECT 2., 0., 0. AVECT 2., 0., 32. AVECT 1.,-16., 24. AVECT 2., 16., 24. AVECT 1.,-16., 16. AVECT 2., 16., 16. AVECT 1.,-16., 8. AVECT 2., 16., 8. ; ; FILLED TRIANGLE ; COD111: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 0. AVECT 2., 0., 32. AVECT 2., 16., 0. AVECT 2.,-16., 0. AVECT 2., -8., 8. AVECT 2., 8., 8. AVECT 2., 16., 0. AVECT 2., 0., 0. AVECT 2., 0., 32. AVECT 1., -8., 16. AVECT 2., -8., 0. AVECT 2., 8., 16. AVECT 2., 8., 0. AVECT 2., -8., 16. AVECT 2., 0., 24. AVECT 2., 8., 16. AVECT 2., -8., 16. ; ; FILLED SQUARE ; COD112: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 32. AVECT 2.,-16., 24. AVECT 2., -8., 32. AVECT 2., 0., 32. AVECT 2.,-16., 16. AVECT 2.,-16., 8. AVECT 2., 8., 32. AVECT 2., 16., 32. AVECT 2.,-16., 0. AVECT 2., -8., 0. AVECT 2., 16., 24. AVECT 2., 16., 16. AVECT 2., 0., 0. AVECT 2., 8., 0. AVECT 2., 16., 8. AVECT 2., 16., 0. AVECT 1.,-16., 0. AVECT 2.,-16., 8. AVECT 2., -8., 0. AVECT 2., 0., 0. AVECT 2.,-16., 16. AVECT 2.,-16., 24. AVECT 2., 8., 0. AVECT 2., 16., 0. AVECT 2.,-16., 32. AVECT 2., -8., 32. AVECT 2., 16., 8. AVECT 2., 16., 16. AVECT 2., 0., 32. AVECT 2., 8., 32. AVECT 2., 16., 24. AVECT 2., 16., 32. ; ; FILLED DIAMOND ; COD113: .BYTE -16., 16. .BYTE -8., 40. AVECT 1.,-16., 16. AVECT 2., 16., 16. AVECT 2., 0., 0. AVECT 2.,-16., 16. AVECT 2., 0., 32. AVECT 2., 16., 16. AVECT 1., -8., 24. AVECT 2., 8., 8. AVECT 2., -8., 8. AVECT 2., -8., 24. AVECT 2., 8., 24. AVECT 2., 8., 8. AVECT 1., 0., 40. AVECT 2., 0., -8. AVECT 2.,-16., 16. AVECT 2., 0., 40. AVECT 2., 16., 16. AVECT 2., 0., -8. AVECT 1., -8., 8. AVECT 2., 8., 24. ; ; FILLED INVERTED TRIANGLE ; COD114: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 32. AVECT 2., 0., 0. AVECT 2., 16., 32. AVECT 2.,-16., 32. AVECT 2., -8., 24. AVECT 2., 8., 24. AVECT 2., 16., 32. AVECT 1., 0., 32. AVECT 2., 0., 0. AVECT 1., 8., 16. AVECT 2., 8., 32. AVECT 2., -8., 16. AVECT 2., -8., 32. AVECT 2., 8., 16. AVECT 2., 0., 8. AVECT 2., -8., 16. AVECT 2., 8., 16. ; ; CALCOMP SQUARE ; COD115: .BYTE -16., 16. .BYTE 0., 32. AVECT 1., 0., 16. AVECT 2., 0., 32. AVECT 2., 16., 32. AVECT 2., 16., 0. AVECT 2.,-16., 0. AVECT 2.,-16., 32. AVECT 2., 0., 32. ; ; CALCOMP OCTAGON ; COD116: .BYTE -16., 16. .BYTE 0., 32. AVECT 1., 0., 16. AVECT 2., 0., 32. AVECT 2., 8., 32. AVECT 2., 16., 24. AVECT 2., 16., 8. AVECT 2., 8., 0. AVECT 2., -8., 0. AVECT 2.,-16., 8. AVECT 2.,-16., 24. AVECT 2., -8., 32. AVECT 2., 0., 32. ; ; CALCOMP TRIANGLE ; COD117: .BYTE -16., 16. .BYTE 0., 32. AVECT 1., 0., 16. AVECT 2., 0., 32. AVECT 2., 16., 0. AVECT 2.,-16., 0. AVECT 2., 0., 32. ; ; CALCOMP "SQUARE SPIDER" ; COD120: .BYTE -16., 16. .BYTE 0., 32. AVECT 1., 0., 16. AVECT 2., 8., 24. AVECT 2., -8., 24. AVECT 1.,-16., 32. AVECT 2., -8., 24. AVECT 2., -8., 8. AVECT 2.,-16., 0. AVECT 1., -8., 8. AVECT 2., 8., 8. AVECT 1., 16., 0. AVECT 2., 8., 8. AVECT 2., 8., 24. AVECT 2., 16., 32. ; ; ASTERISK ; COD121: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 0. AVECT 2., 16., 32. AVECT 1., 16., 16. AVECT 2.,-16., 16. AVECT 1.,-16., 32. AVECT 2., 16., 0. AVECT 1., 0., 0. AVECT 2., 0., 32. ; ; HOURGLASS ; COD122: .BYTE -16., 16. .BYTE 0., 32. AVECT 1.,-16., 0. AVECT 2., 16., 32. AVECT 2.,-16., 32. AVECT 2., 16., 0. AVECT 2.,-16., 0. ; ; STAR OF DAVID ; COD123: .BYTE -16., 16. .BYTE -8., 40. AVECT 1., 0., 16. AVECT 2., 0., 40. AVECT 2., 16., 0. AVECT 2.,-16., 0. AVECT 2., 0., 40. AVECT 1., 16., 32. AVECT 2., 0., -8. AVECT 2.,-16., 32. AVECT 2., 16., 32. ; ; HORIZONTAL "RAILROAD TRACKS" ; COD124: .BYTE -16., 16. .BYTE 8., 24. AVECT 1.,-16., 16. AVECT 2., 16., 16. AVECT 1., -8., 8. AVECT 2., -8., 24. AVECT 1., 0., 8. AVECT 2., 0., 24. AVECT 1., 8., 8. AVECT 2., 8., 24. ; ; VERTICAL "RAILROAD TRACKS" ; COD125: .BYTE -8., 8. .BYTE -8., 40. AVECT 1., 8., -8. AVECT 2., 8., 40. AVECT 1., 0., 0. AVECT 2., 16., 0. AVECT 1., 0., 16. AVECT 2., 16., 16. AVECT 1., 0., 32. AVECT 2., 16., 32. ; ; END OF LIBRARY ; COD126: .END