home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / apps / dtp / pgsmodst / atariimp / aegis.s < prev    next >
Text File  |  1991-05-23  |  27KB  |  1,550 lines

  1.  Include "equ.h"
  2.  Include "impequ.h"
  3.  
  4. QUOTE    equ    "\""
  5. BACK    equ    "\\"
  6.  
  7.  SECTION aegis,CODE,PUBLIC
  8.  
  9. *******************************************
  10. ***  object format            ***
  11. *******************************************
  12. dummy:    clr.l    d0
  13.     rts
  14.  
  15.     dc.l    "IMPO"
  16.     dc.w    201
  17.     dc.l    0
  18.  
  19. table:    dc.l    0
  20.     dc.l    name,special,check,aegis
  21.  
  22. *
  23. * Aegis Draw File
  24. *
  25. check:    move.l    table,a0
  26.     move.l    buff1(a0),a1
  27.     move.l    (a1),a1
  28.     cmp.b    #"8",(a1)+
  29.     bne    never
  30.     cmp.b    #"1",(a1)+
  31.     bne    never
  32.     cmp.b    #"0",(a1)+
  33.     bne    never
  34.     cmp.b    #"8",(a1)+
  35.     bne    never
  36.     cmp.b    #"6",(a1)+
  37.     bne    never
  38.     moveq    #2,d0
  39. rrts:    rts
  40. *
  41. *
  42. *
  43. aegis:    move.l    sp,savesp
  44.  
  45.     lea    object,a0
  46.     clr.b    ob_Flag(a0)
  47.     clr.w    ob_Slant(a0)
  48.     clr.w    ob_Twist(a0)
  49.     move.b    #1,ob_LColor(a0)        ;black line
  50.     move.b    #1,ob_FColor(a0)        ;black fill
  51.     clr.b    ob_LBegin(a0)
  52.     clr.b    ob_LEnd(a0)
  53.     clr.w    ob_HStandOff(a0)
  54.     clr.w    ob_VStandOff(a0)
  55.  
  56.     lea    colormap,a0
  57. ;    move.w    #0,(a0)+        ;white
  58. ;    move.w    #1,(a0)+        ;black
  59.     moveq    #29,d0
  60. dcmap1:    move.w    #-1,(a0)+        ;undefined
  61.     dbf    d0,dcmap1
  62.  
  63. ;    lea    clrnm0,a0
  64. ;    move.l    table,a1
  65. ;    move.l    findcolorname(a1),a1
  66. ;    jsr    (a1)
  67. ;    tst.w    d0
  68. ;    bmi    dcmap2
  69. ;    move.w    d0,colormap+0
  70. ;
  71. ;dcmap2:    lea    clrnm1,a0
  72. ;    move.l    table,a1
  73. ;    move.l    findcolorname(a1),a1
  74. ;    jsr    (a1)
  75. ;    tst.w    d0
  76. ;    bmi    dcmap3
  77. ;    move.w    d0,colormap+2
  78.  
  79.  
  80. dcmap3:    move.l    table,a0
  81.     move.l    f_openr(a0),a0
  82.     jsr    (a0)
  83.  
  84.     move.l    table,a0
  85.     move.l    o_open(a0),a0
  86.     jsr    (a0)
  87.  
  88.     move.l    table,a0
  89.     move.l    o_begingroup(a0),a0
  90.     jsr    (a0)
  91.     beq    ofail
  92.  
  93.     clr.l    partlist
  94.  
  95.     bsr    integer            ;magic number
  96.     cmp.l    #81086,d0
  97.     bne    ofail
  98.  
  99.     bsr    float            ;left edge of drawing
  100.     move.l    d0,dxoff
  101.     bsr    float            ;bottom edge of drawing
  102.     move.l    d0,dyoff
  103.     bsr    float            ;width of drawing
  104.     move.l    d0,dwidth
  105.     bsr    float            ;height of drawing
  106.     move.l    d0,dheight
  107.     bsr    integer            ;unused flags
  108.     bsr    float            ;scale
  109.     move.w    d0,dscale
  110.     bsr    string            ;name of the drawing
  111. *
  112. * get the parts definition
  113. *
  114. define:    bsr    integer
  115.     cmp.w    #-1,d0
  116.     beq    nopart
  117.  
  118.     move.w    dscale,cscale
  119.     bsr    integer
  120.     bsr    string
  121.     bsr    float
  122.     move.l    d0,cxoff
  123.     move.l    d0,e_minx
  124.     bsr    float
  125.     move.l    d0,cyoff
  126.     move.l    d0,e_miny
  127.     bsr    float
  128.     move.l    d0,e_maxx
  129.     sub.l    e_minx,d0
  130.     move.l    d0,cwidth
  131.     bsr    float
  132.     move.l    d0,e_maxy
  133.     sub.l    e_miny,d0
  134.     move.l    d0,cheight
  135.  
  136.     move.l    #122,d0
  137.     clr.w    d1
  138.     clr.w    d2
  139.     move.l    table,a1
  140.     move.l    m_alloc(a1),a1
  141.     jsr    (a1)
  142.     beq    ofail
  143.     move.l    partlist,a1
  144.     move.l    a0,partlist
  145.     move.l    a0,curpart
  146.     move.l    #122,curlength
  147.  
  148.     move.l    (a0),a0
  149.     move.l    a1,(a0)+
  150.     clr.w    (a0)+
  151.     move.l    e_minx,(a0)+
  152.     move.l    e_miny,(a0)+
  153.     move.l    e_maxx,(a0)+
  154.     move.l    e_maxy,(a0)+
  155.     lea    strng,a1
  156. prtnm1:    move.b    (a1)+,(a0)+
  157.     bne    prtnm1
  158.  
  159. prtnm2:    bsr    integer
  160.     cmp.w    #-1,d0
  161.     beq    define
  162.     move.w    d0,e_id
  163.     move.b    #1,partflag
  164.     bsr    getobject
  165.     bra    prtnm2
  166.  
  167. *
  168. * now get the drawing
  169. *
  170. nopart:    move.l    dxoff,cxoff
  171.     move.l    dyoff,cyoff
  172.     move.l    dwidth,cwidth
  173.     move.l    dheight,cheight
  174.     move.w    dscale,cscale
  175. drawing:
  176.     bsr    integer
  177.     cmp.w    #-1,d0
  178.     beq    done
  179.     move.w    d0,e_id
  180.     clr.b    partflag
  181.     bsr    getobject
  182.     bra    drawing
  183.  
  184. *
  185. * end of input file.  close and flush buffer
  186. *
  187. done:    bsr    removepart
  188.  
  189.  
  190.     move.l    table,a0
  191.     move.l    o_endgroup(a0),a0
  192.     jsr    (a0)
  193.     beq    ofail
  194.  
  195.     move.l    table,a0
  196.     move.l    o_close(a0),a0
  197.     jsr    (a0)
  198.  
  199.     move.l    table,a0
  200.     move.l    f_closer(a0),a0
  201.     jmp    (a0)
  202. *
  203. *
  204. *
  205. ofail:    move.l    savesp,sp
  206.  
  207.     bsr    removepart
  208.  
  209.     move.l    table,a0
  210.     move.l    o_abort(a0),a0
  211.     jsr    (a0)
  212.  
  213.     move.l    table,a0
  214.     move.l    f_closer(a0),a0
  215.     jmp    (a0)
  216.  
  217.  
  218. removepart:
  219.     tst.l    partlist
  220.     beq    rrts
  221.     move.l    partlist,a0
  222.     move.l    (a0),a1
  223.     move.l    (a1),partlist
  224.     move.l    table,a1
  225.     move.l    m_delete(a1),a1
  226.     jsr    (a1)
  227.     bra    removepart
  228.  
  229.  
  230. getobject:
  231.     bsr    integer
  232.     move.w    d0,e_size
  233.     bsr    coord
  234.     move.l    d0,e_minx
  235.     move.l    d1,e_miny
  236.     bsr    coord
  237.     move.l    d0,e_maxx
  238.     move.l    d1,e_maxy
  239. *
  240. * get the color
  241. *
  242.     bsr    integer
  243.     move.w    d0,e_color
  244.     lsl.w    #1,d0
  245.     lea    colormap,a0
  246.     move.w    0(a0,d0.w),d0
  247.     bpl    cmap9
  248.     lea    color+cl_Name,a0
  249.     lea    clrnm,a1
  250. cmap1:    move.b    (a1)+,(a0)+
  251.     bne    cmap1
  252.     subq.l    #1,a0
  253.  
  254.     moveq    #0,d0
  255.     move.w    e_color,d0
  256.     divu    #10,d0
  257.     tst.w    d0
  258.     beq    cmap2
  259.     or.b    #"0",d0
  260.     move.b    d0,(a0)+
  261. cmap2:    swap    d0
  262.     or.b    #"0",d0
  263.     move.b    d0,(a0)+
  264.     clr.b    (a0)
  265.  
  266.     lea    color,a0
  267.     move.w    #0,cl_Cyan(a0)
  268.     move.w    #0,cl_Magenta(a0)
  269.     move.w    #0,cl_Yellow(a0)
  270.     move.w    #10000,cl_Black(a0)
  271.     clr.w    cl_Map(a0)
  272.     clr.w    cl_Type(a0)
  273.     move.l    table,a1
  274.     move.l    newcolor(a1),a1
  275.     jsr    (a1)
  276.     tst.w    d0
  277.     bmi    cmap7
  278.  
  279.     lea    color,a0
  280.     move.l    table,a1
  281.     move.l    findcolorname(a1),a1
  282.     jsr    (a1)
  283.     tst.w    d0
  284.     bpl    cmap8
  285.  
  286. cmap7:    moveq    #1,d0
  287. cmap8:    lea    colormap,a0
  288.     move.w    e_color,d1
  289.     lsl.w    #1,d1
  290.     move.w    d0,0(a0,d1.w)
  291. cmap9:    move.b    d0,object+ob_LColor
  292.     move.b    d0,object+ob_FColor
  293. *
  294. *
  295. *
  296.     bsr    integer
  297.     move.w    d0,e_layer
  298.     bsr    integer
  299.     move.w    d0,e_pattern
  300.     bsr    integer
  301.     move.w    d0,e_weight
  302.     bsr    integer
  303.     move.w    d0,e_flags
  304.     move.w    e_id,d0
  305.     cmp.w    #8,d0
  306.     bcc    rrts
  307.     lsl.w    #2,d0
  308.     jmp    etable(pc,d0.w)
  309.  
  310. *
  311. *
  312. *
  313. etable:    bra.w    rrts
  314.     bra.w    polygon
  315.     bra.w    circle
  316.     bra.w    text
  317.     bra.w    dimension
  318.     bra.w    part
  319.     bra.w    arc
  320.     bra.w    arc
  321.  
  322.  
  323. *******************************************
  324. ***                    ***
  325. *******************************************
  326. polygon:
  327.     move.l    e_minx,object+ob_Left
  328.     move.l    e_maxy,object+ob_Top
  329.     move.l    e_maxx,object+ob_Right
  330.     move.l    e_miny,object+ob_Bottom
  331.     move.b    #tpoly,object+ob_Type
  332.     bsr    settypes
  333.     clr.w    object+ob_Slant
  334.     clr.w    object+ob_Twist
  335.  
  336. * length,width,height,xscl,yscl,cnt
  337. * newpath
  338. *  moveto x,y
  339. *  lineto x,y
  340. * stroke
  341.  
  342.     move.l    table,a0
  343.     move.l    m_alloc(a0),a0
  344.     tst.b    object+ob_FType
  345.     beq    ply00
  346.     move.l    #24,d0
  347.     bra    ply0
  348. ply00:    move.l    #22,d0
  349. ply0:    clr.w    d1
  350.     clr.w    d2
  351.     jsr    (a0)
  352.     move.l    a0,mptr
  353.     move.l    #20,moff
  354.     clr.w    count
  355.  
  356. ply1:    bsr    integer
  357.     cmp.w    #0,d0
  358.     beq    ply5
  359.  
  360.     move.l    table,a1
  361.     move.l    m_grow(a1),a1
  362.     move.l    #10,d0
  363.     move.l    mptr,a0
  364.     jsr    (a1)
  365.  
  366.     bsr    coord
  367.     sub.l    object+ob_Left,d0
  368.     sub.l    object+ob_Top,d1
  369.  
  370.     move.l    mptr,a0
  371.     move.l    (a0),a0
  372.     add.l    moff,a0
  373.     tst.w    count
  374.     bne    ply2
  375.     move.w    #MOVETO,(a0)+
  376.     bra    ply3
  377. ply2:    move.w    #LINETO,(a0)+
  378. ply3:    move.l    d0,(a0)+
  379.     move.l    d1,(a0)+
  380.  
  381.     addq.w    #1,count
  382.     add.l    #10,moff
  383.     bra    ply1
  384.  
  385. ply5:    move.l    mptr,a0
  386.     move.l    (a0),a0
  387.     move.w    count,d0
  388.     mulu    #10,d0        ;* bytes per line
  389.     tst.b    object+ob_FType
  390.     beq    ply6
  391.     add.l    #24,d0        ;length,width,height,xscl,yscl,cnt,newpath,closepath,fillpath
  392.     bra    ply7
  393. ply6:    add.l    #22,d0        ;length,width,height,xscl,yscl,cnt,newpath,strokepath
  394. ply7:    move.l    d0,(a0)+
  395.     move.l    object+ob_Right,d1
  396.     sub.l    object+ob_Left,d1
  397.     move.l    d1,(a0)+
  398.     move.l    object+ob_Bottom,d1
  399.     sub.l    object+ob_Top,d1
  400.     move.l    d1,(a0)+
  401.     move.w    #100,(a0)+
  402.     move.w    #100,(a0)+
  403.     move.w    count,d1
  404.     addq.w    #2,d1            ;+ newpath,stroke
  405.     tst.b    object+ob_FType
  406.     beq    ply8
  407.     addq.w    #1,d1
  408. ply8:    move.w    d1,(a0)+
  409.     move.w    #NEWPATH,(a0)+
  410.  
  411.     move.l    mptr,a0
  412.     move.l    (a0),a0
  413.     add.l    moff,a0
  414.     tst.b    object+ob_FType
  415.     beq    ply9
  416.     move.w    #CLOSEPATH,(a0)+
  417.     move.w    #FILLPATH,(a0)+
  418.     bra    ply10
  419. ply9:    move.w    #STROKEPATH,(a0)+
  420. *
  421. ply10:    cmp.w    #2,count
  422.     beq    plyline
  423.     cmp.w    #5,count
  424.     bne    notbox
  425.     move.l    mptr,a0
  426.     move.l    (a0),a0
  427.     lea    20(a0),a0
  428.     move.l    2+0(a0),d0
  429.     move.l    2+4(a0),d1
  430.     move.l    22+0(a0),d2
  431.     move.l    22+4(a0),d3
  432.     cmp.l    12+0(a0),d0
  433.     bne    notbox
  434.     cmp.l    12+4(a0),d3
  435.     bne    notbox
  436.     cmp.l    32+0(a0),d2
  437.     bne    notbox
  438.     cmp.l    32+4(a0),d1
  439.     bne    notbox
  440.     cmp.l    42+0(a0),d0
  441.     bne    notbox
  442.     cmp.l    42+4(a0),d1
  443.     bne    notbox
  444.     bra    plybox
  445. notbox:    bsr    putobj
  446.     move.l    mptr,a0
  447.     move.l    (a0),a1
  448.     move.l    (a1),d0
  449.     bsr    copyhandle
  450.  
  451.     move.l    table,a1
  452.     move.l    m_delete(a1),a1
  453.     move.l    mptr,a0
  454.     jmp    (a1)
  455.  
  456. plybox:
  457.     move.b    #tbox,object+ob_Type
  458.     bsr    putobj
  459.     moveq    #0,d0
  460.     bsr    oputw
  461.     moveq    #0,d0
  462.     bsr    oputw
  463.  
  464.     move.l    table,a1
  465.     move.l    m_delete(a1),a1
  466.     move.l    mptr,a0
  467.     jmp    (a1)
  468.  
  469. plyline:
  470.     move.b    #tdln,object+ob_Type
  471.     move.l    mptr,a0
  472.     move.l    (a0),a0
  473.     lea    20(a0),a0
  474.     move.l    2+0(a0),d0
  475.     move.l    2+4(a0),d1
  476.     move.l    12+0(a0),d2
  477.     move.l    12+4(a0),d3
  478.     add.l    object+ob_Left,d0
  479.     add.l    object+ob_Top,d1
  480.     add.l    object+ob_Left,d2
  481.     add.l    object+ob_Top,d3
  482.     move.l    d0,object+ob_Left
  483.     move.l    d1,object+ob_Top
  484.     move.l    d2,object+ob_Right
  485.     move.l    d3,object+ob_Bottom
  486.  
  487.     bsr    putobj
  488.  
  489.     move.l    table,a1
  490.     move.l    m_delete(a1),a1
  491.     move.l    mptr,a0
  492.     jmp    (a1)
  493.  
  494. *******************************************
  495. ***                    ***
  496. *******************************************
  497. circle:    bsr    coord        ;center x,y
  498.     move.l    d0,object+ob_Left
  499.     move.l    d1,object+ob_Top
  500.     move.l    d0,object+ob_Right
  501.     move.l    d1,object+ob_Bottom
  502.     bsr    delta        ;radius
  503.     sub.l    d0,object+ob_Left
  504.     sub.l    d0,object+ob_Top
  505.     add.l    d0,object+ob_Right
  506.     add.l    d0,object+ob_Bottom
  507.     move.b    #tcir,object+ob_Type
  508.     bsr    settypes
  509.     clr.w    object+ob_Slant
  510.     clr.w    object+ob_Twist
  511.     bsr    putobj
  512.     move.w    #0,d0
  513.     bsr    oputw
  514.     move.w    #36000,d0
  515.     bra    oputw
  516.  
  517.  
  518. *******************************************
  519. ***                    ***
  520. *******************************************
  521. arc:    bsr    coord        ;center x,y
  522.     move.l    d0,object+ob_Left
  523.     move.l    d1,object+ob_Top
  524.     move.l    d0,object+ob_Right
  525.     move.l    d1,object+ob_Bottom
  526.     bsr    delta        ;radius
  527.     sub.l    d0,object+ob_Left
  528.     sub.l    d0,object+ob_Top
  529.     add.l    d0,object+ob_Right
  530.     add.l    d0,object+ob_Bottom
  531.     move.b    #tcir,object+ob_Type
  532.     bsr    settypes
  533.     clr.w    object+ob_Slant
  534.     clr.w    object+ob_Twist
  535.     bsr    putobj
  536.     bsr    getangle
  537.     bsr    oputw
  538.     bsr    getangle
  539.     bra    oputw
  540.  
  541. getangle:
  542.     bsr    float        ;start angle in radians
  543.     move.w    #18000,d1
  544.     jsr    Muls1632
  545.     move.w    #3142,d2    ;in degree
  546.     jsr    Divs1648
  547. getan1:    tst.l    d0
  548.     bpl    getan2
  549.     add.l    #36000,d0
  550.     bra    getan1
  551. getan2:    cmp.l    #36000,d0
  552.     bcs    rrts
  553.     sub.l    #36000,d0
  554.     bra    getan2
  555.  
  556. *******************************************
  557. ***                    ***
  558. *******************************************
  559. text:    bsr    coord        ;x,y text origin
  560.     move.l    d0,object+ob_Left
  561.     move.l    d1,object+ob_Top
  562.     move.l    d0,object+ob_Right
  563.     move.l    d1,object+ob_Bottom
  564.     bsr    delta        ;character width
  565.     add.l    d0,object+ob_Right
  566.     bsr    delta        ;character height
  567.     add.l    d0,object+ob_Bottom
  568.     bsr    getangle    ;rotation in radians
  569.     move.w    d0,object+ob_Slant
  570.     move.w    d0,object+ob_Twist
  571.     clr.b    object+ob_LType
  572.     move.w    #25,object+ob_LWidth
  573.     clr.b    object+ob_FType
  574.     move.b    #ttxt,object+ob_Type
  575.     bsr    putobj
  576.  
  577.     lea    column,a0
  578.     move.b    #1,cm_LCalc(a0)
  579.     move.b    #1,cm_QCalc(a0)
  580.     move.l    object+ob_Left,cm_Left(a0)
  581.     move.l    object+ob_Top,cm_Top(a0)
  582.     move.l    #$7fffff,cm_Right(a0)
  583.     move.l    #$7fffff,cm_Bottom(a0)
  584.     clr.w    cm_Flag(a0)
  585.  
  586.     move.l    #5000,cm_Font(a0)
  587.     clr.l    cm_Attrb(a0)
  588.     move.l    object+ob_Right,d0
  589.     sub.l    object+ob_Left,d0
  590.     move.l    d0,cm_XPoint(a0)
  591.     move.l    object+ob_Bottom,d0
  592.     sub.l    object+ob_Top,d0
  593.     move.l    d0,cm_YPoint(a0)
  594.     clr.w    cm_Spacing(a0)
  595.     move.w    #$8000,cm_Lead(a0)
  596.     clr.w    cm_BMod(a0)
  597.     clr.w    cm_PIndent(a0)
  598.     clr.w    cm_LIndent(a0)
  599.     clr.w    cm_RIndent(a0)
  600.     clr.b    cm_Tag(a0)
  601.     clr.b    cm_Justify(a0)        ;block left
  602.     move.b    #9,cm_CFStyle(a0)
  603.     move.b    object+ob_FColor,cm_CFColor(a0)
  604.     move.b    #0,cm_CLStyle(a0)
  605.     move.b    object+ob_LColor,cm_CLColor(a0)
  606.     move.w    #100,cm_CLWidth(a0)
  607.     clr.l    cm_Tabs(a0)
  608.  
  609.     lea    column,a0
  610.     move.l    #cm_Sizeof,d0
  611.     jsr    copypointer
  612.  
  613.     bsr    string
  614.     lea    strng,a0
  615.     moveq    #0,d0
  616. txt1:    tst.b    (a0)+
  617.     beq    txt2
  618.     addq.l    #1,d0
  619.     bra    txt1
  620. txt2:    move.l    d0,-(sp)
  621.     jsr    oputl
  622.     move.l    (sp)+,d0
  623.     addq.l    #1,d0
  624.     bclr    #0,d0
  625.     lea    strng,a0
  626.     jsr    copypointer
  627.     rts
  628.  
  629.  
  630. *******************************************
  631. ***                    ***
  632. *******************************************
  633. dimension:
  634.     bsr    coord        ;x,y starting point
  635.     bsr    coord        ;x,y ending point
  636.     bsr    delta        ;character width
  637.     bsr    delta        ;character height
  638.     rts
  639.  
  640.  
  641. *******************************************
  642. ***                    ***
  643. *******************************************
  644. part:    tst.b    partflag    ;can't have a part in a part definition
  645.     bne    ofail
  646.  
  647.     bsr    string        ;part name
  648.  
  649.     bsr    float
  650.     move.l    d0,pxoffset
  651.     bsr    float
  652.     move.l    d0,pyoffset
  653.  
  654.     bsr    float        ;x-scale
  655.     move.w    d0,pxscale
  656.     bsr    float        ;y-scale
  657.     move.w    d0,pyscale
  658.     bsr    getangle    ;part angle in radians
  659.     move.w    d0,protate
  660.     bsr    integer        ;flags (unused)
  661.  
  662.     lea    partlist,a0
  663. part1:    tst.l    (a0)
  664.     beq    ofail        ;no part found matching name
  665.     move.l    (a0),a0
  666.     move.l    a0,a3
  667.     move.l    (a0),a0
  668.     lea    22(a0),a1
  669.     lea    strng,a2
  670. part2:    cmp.b    (a1)+,(a2)+
  671.     bne    part1
  672.     tst.b    -1(a1)
  673.     bne    part2
  674.  
  675.     move.w    4(a0),count
  676.     move.l    6(a0),e_minx
  677.     move.l    10(a0),e_miny
  678.     move.l    14(a0),e_maxx
  679.     move.l    18(a0),e_maxy
  680.  
  681.     move.l    pxoffset,d0
  682.     sub.l    cxoff,d0
  683.     add.l    e_minx,d0
  684.     move.w    #7200,d1
  685.     bsr    Muls1632
  686.     move.w    cscale,d2
  687.     bsr    Divs1648
  688.     move.l    d0,pxoffset
  689.  
  690.     move.l    pyoffset,d0
  691.     sub.l    cyoff,d0
  692.     add.l    e_miny,d0
  693.     neg.l    d0
  694.     add.l    cheight,d0
  695.     move.w    #7200,d1
  696.     bsr    Muls1632
  697.     move.w    cscale,d2
  698.     bsr    Divs1648
  699.     move.l    d0,pyoffset
  700.  
  701.     move.l    e_maxx,d0
  702.     sub.l    e_minx,d0
  703.     asr.l    #1,d0
  704.     move.w    #7200,d1
  705.     bsr    Muls1632
  706.     move.w    cscale,d2
  707.     bsr    Divs1648
  708.     move.l    d0,e_ctrx
  709.  
  710.     move.l    e_maxy,d0
  711.     sub.l    e_miny,d0
  712.     asr.l    #1,d0
  713.     move.w    #7200,d1
  714.     bsr    Muls1632
  715.     move.w    cscale,d2
  716.     bsr    Divs1648
  717.     move.l    d0,e_ctry
  718.  
  719.     move.w    protate,d0
  720.     bsr    sincos
  721.     move.w    d0,pcos
  722.     move.w    d1,psin
  723.  
  724.     move.l    a3,curpart
  725.     move.l    #122,curlength
  726.  
  727.     bra    part9
  728. part3:    move.l    curpart,a0
  729.     move.l    (a0),a0
  730.     add.l    curlength,a0
  731.     moveq    #ob_SizeOf/2-1,d7
  732.     lea    object,a1
  733. part4:    move.w    (a0)+,(a1)+
  734.     dbf    d7,part4
  735.     add.l    #ob_SizeOf,curlength
  736.  
  737.  
  738.     move.w    protate,object+ob_Slant
  739.     move.w    protate,object+ob_Twist
  740.  
  741.     move.l    object+ob_Left,d0
  742.     sub.l    e_ctrx,d0
  743.     move.w    pxscale,d1
  744.     bsr    Muls1632
  745.     move.w    #1000,d2
  746.     bsr    Divs1648
  747.     add.l    e_ctrx,d0
  748.     move.l    d0,object+ob_Left
  749.  
  750.     move.l    object+ob_Top,d0
  751.     sub.l    e_ctry,d0
  752.     move.w    pyscale,d1
  753.     bsr    Muls1632
  754.     move.w    #1000,d2
  755.     bsr    Divs1648
  756.     add.l    e_ctry,d0
  757.     move.l    d0,object+ob_Top
  758.  
  759.     move.l    object+ob_Right,d0
  760.     sub.l    e_ctrx,d0
  761.     move.w    pxscale,d1
  762.     bsr    Muls1632
  763.     move.w    #1000,d2
  764.     bsr    Divs1648
  765.     add.l    e_ctrx,d0
  766.     move.l    d0,object+ob_Right
  767.  
  768.     move.l    object+ob_Bottom,d0
  769.     sub.l    e_ctry,d0
  770.     move.w    pyscale,d1
  771.     bsr    Muls1632
  772.     move.w    #1000,d2
  773.     bsr    Divs1648
  774.     add.l    e_ctry,d0
  775.     move.l    d0,object+ob_Bottom
  776.  
  777.     move.l    object+ob_Left,d0
  778.     add.l    object+ob_Right,d0
  779.     asr.l    #1,d0
  780.     sub.l    e_ctrx,d0
  781.     move.l    d0,temp
  782.     move.w    pcos,d1
  783.     bsr    Muls1632
  784.     move.w    d1,-(sp)
  785.     move.l    d0,-(sp)
  786.  
  787.     move.l    object+ob_Top,d0
  788.     add.l    object+ob_Bottom,d0
  789.     asr.l    #1,d0
  790.     sub.l    e_ctry,d0
  791.     move.l    d0,temp+4
  792.     move.w    psin,d1
  793.     bsr    Muls1632
  794.     add.l    (sp)+,d0
  795.     move.w    (sp)+,d2
  796.     addx.w    d2,d1
  797.     lsl.l    #1,d0
  798.     roxl.w    #1,d1
  799.     move.w    d1,d0
  800.     swap    d0
  801.     sub.l    temp,d0
  802.     move.l    d0,-(sp)
  803.  
  804.  
  805.     move.l    temp,d0
  806.     move.w    psin,d1
  807.     bsr    Muls1632
  808.     move.w    d1,-(sp)
  809.     move.l    d0,-(sp)
  810.  
  811.     move.l    temp+4,d0
  812.     move.w    pcos,d1
  813.     bsr    Muls1632
  814.     sub.l    (sp)+,d0
  815.     move.w    (sp)+,d2
  816.     subx.w    d2,d1
  817.     lsl.l    #1,d0
  818.     roxl.w    #1,d1
  819.     move.w    d1,d0
  820.     swap    d0
  821.     sub.l    temp+4,d0
  822.     move.l    d0,-(sp)
  823.  
  824.     move.l    object+ob_Left,d0
  825.     move.l    object+ob_Top,d1
  826.     move.l    object+ob_Right,d2
  827.     move.l    object+ob_Bottom,d3
  828.     add.l    (sp),d1
  829.     add.l    (sp)+,d3
  830.     add.l    (sp),d0
  831.     add.l    (sp)+,d2
  832.     add.l    pxoffset,d0
  833.     add.l    pyoffset,d1
  834.     add.l    pxoffset,d2
  835.     add.l    pyoffset,d3
  836.     move.l    d0,object+ob_Left
  837.     move.l    d1,object+ob_Top
  838.     move.l    d2,object+ob_Right
  839.     move.l    d3,object+ob_Bottom
  840.  
  841.     moveq    #0,d0
  842.     move.b    object+ob_Type,d0
  843.     jsr    partobj(pc,d0.w)
  844.  
  845. part9:    subq.w    #1,count
  846.     bcc    part3
  847.  
  848.     rts
  849.  
  850.  
  851. partobj:
  852.     bra.w    ofail
  853.     bra.w    parttxt
  854.     bra.w    parttxt
  855.     bra.w    ofail
  856.     bra.w    partply
  857.     bra.w    partply
  858.     bra.w    partbox
  859.     bra.w    partbox
  860.     bra.w    partln
  861.     bra.w    partln
  862.     bra.w    partcir
  863.     bra.w    partcir
  864.     bra.w    ofail
  865.  
  866.  
  867. *******************************************
  868. ***                    ***
  869. *******************************************
  870. partply:
  871.     bsr    putobj
  872.  
  873. * length,width,height,xscl,yscl,cnt
  874. * newpath
  875. *  moveto x,y
  876. *  lineto x,y
  877. * stroke
  878.  
  879.     move.l    curpart,a0
  880.     move.l    (a0),a0
  881.     add.l    curlength,a0
  882.     move.l    (a0)+,d0        ;length
  883.     move.l    (a0)+,d0        ;width
  884.     move.l    (a0)+,d0        ;height
  885.     moveq    #0,d0
  886.     move.w    pxscale,d0
  887.     divu    #10,d0
  888.     move.w    d0,(a0)+        ;xscl
  889.     moveq    #0,d0
  890.     move.w    pyscale,d0
  891.     divu    #10,d0
  892.     move.w    d0,(a0)+        ;yscl
  893.     move.w    (a0)+,d0        ;count
  894.  
  895.     move.l    curpart,a0
  896.     move.l    (a0),a0
  897.     add.l    curlength,a0
  898.     move.l    (a0),d0
  899.  
  900.     move.l    table,a0
  901.     move.l    o_malloc(a0),a0
  902.     jsr    (a0)
  903.     beq    ofail
  904.  
  905.     move.l    curpart,a1
  906.     move.l    (a1),a1
  907.     add.l    curlength,a1
  908.     move.l    (a1),d0
  909.     add.l    d0,curlength
  910.  
  911.     lsr.l    #1,d0
  912.     move.l    d0,d1
  913.     swap    d1
  914.     bra    pply2
  915. pply1:    move.w    (a1)+,(a0)+
  916. pply2:    dbf    d0,pply1
  917.     dbf    d1,pply1
  918.  
  919.     rts
  920.  
  921. *******************************************
  922. ***                    ***
  923. *******************************************
  924. partcir:
  925.     bsr    putobj
  926.  
  927.     move.l    curpart,a0
  928.     move.l    (a0),a0
  929.     add.l    curlength,a0
  930.     move.l    (a0),d0
  931.     addq.l    #4,curlength
  932.     bra    oputl
  933.  
  934.  
  935. *******************************************
  936. ***                    ***
  937. *******************************************
  938. partbox:
  939.     bsr    putobj
  940.  
  941.     move.l    curpart,a0
  942.     move.l    (a0),a0
  943.     add.l    curlength,a0
  944.     move.l    (a0),d0
  945.     addq.l    #4,curlength
  946.     bra    oputl
  947.  
  948.  
  949. *******************************************
  950. ***                    ***
  951. *******************************************
  952. partln:
  953.     bra    putobj
  954.  
  955.  
  956. *******************************************
  957. ***                    ***
  958. *******************************************
  959. parttxt:
  960.     bsr    putobj
  961.  
  962.     move.l    curpart,a0
  963.     move.l    (a0),a0
  964.     add.l    curlength,a0
  965.     move.l    cm_Sizeof(a0),d0
  966.     add.l    #cm_Sizeof+5,d0
  967.     bclr    #0,d0
  968.  
  969.     move.l    d0,-(sp)
  970.     move.l    table,a0
  971.     move.l    o_malloc(a0),a0
  972.     jsr    (a0)
  973.     beq    ofail
  974.     move.l    (sp)+,d0
  975.  
  976.     move.l    curpart,a1
  977.     move.l    (a1),a1
  978.     add.l    curlength,a1
  979.     add.l    d0,curlength
  980.  
  981.     lsr.l    #1,d0
  982.     move.l    d0,d1
  983.     swap    d1
  984.     bra    ptxt2
  985. ptxt1:    move.w    (a1)+,(a0)+
  986. ptxt2:    dbf    d0,ptxt1
  987.     dbf    d1,ptxt1
  988.  
  989.     rts
  990.  
  991.  
  992.  
  993. *******************************************
  994. ***                    ***
  995. *******************************************
  996. settypes:
  997.     move.w    e_flags,d0
  998.     btst    #0,d0
  999.     bne    filled
  1000.  
  1001.     move.w    e_pattern,d0
  1002.     addq.w    #1,d0
  1003.     cmp.w    #6,d0
  1004.     bcs    setyp1
  1005.     moveq    #6,d0
  1006. setyp1:    move.b    d0,object+ob_LType
  1007.     move.w    e_weight,d0
  1008.     addq.w    #1,d0
  1009.     mulu    #50,d0
  1010.     move.w    d0,object+ob_LWidth        ;5$ point line
  1011.     clr.b    object+ob_FType            ;no fill
  1012.     rts
  1013.  
  1014. filled:
  1015.     lea    filltype,a0
  1016.     move.w    e_pattern,d0
  1017.     move.b    0(a0,d0.w),object+ob_FType
  1018.     move.b    #1,object+ob_LType
  1019.     move.w    #25,object+ob_LWidth
  1020.     rts
  1021.  
  1022. *******************************************
  1023. ***                    ***
  1024. *******************************************
  1025. integer:
  1026.     clr.b    sign
  1027.     bsr    fget            ;strip off leading non-digits
  1028.     beq    ofail
  1029.     cmp.b    #"-",d0
  1030.     beq    negint
  1031.     cmp.b    #"9",d0
  1032.     bhi    integer
  1033.     sub.b    #"0",d0
  1034.     bcs    integer
  1035.     moveq    #0,d1
  1036.     move.b    d0,d1
  1037.     moveq    #1,d4
  1038.     bra    int1
  1039.  
  1040. negint:    move.b    #1,sign
  1041.     moveq    #0,d1
  1042.     moveq    #0,d4
  1043.     bsr    int1
  1044.     neg.l    d0
  1045.     rts
  1046.  
  1047. int1:    move.l    d1,-(sp)
  1048.     jsr    fget
  1049.     beq    ofail
  1050.     move.b    d0,d3
  1051.     move.l    (sp)+,d1
  1052.     cmp.b    #"9",d0
  1053.     bhi    int2
  1054.     sub.b    #"0",d0
  1055.     bcs    int2
  1056.     addq.w    #1,d4
  1057.     move.l    d1,d2            ;*10
  1058.     lsl.l    #2,d1
  1059.     add.l    d2,d1
  1060.     lsl.l    #1,d1
  1061.     and.l    #$ff,d0
  1062.     add.l    d0,d1
  1063.     bra    int1
  1064. int2:    move.l    d1,d0
  1065.     rts
  1066.  
  1067.  
  1068.  
  1069. coord:    bsr    float
  1070.     move.l    d0,-(sp)
  1071.     bsr    float
  1072.     move.l    d0,d1
  1073.     move.l    (sp)+,d0
  1074.  
  1075. sclcoord:
  1076.     move.l    d1,-(sp)
  1077.  
  1078.     sub.l    cxoff,d0
  1079.     move.w    #7200,d1
  1080.     bsr    Muls1632
  1081.     move.w    cscale,d2
  1082.     bsr    Divs1648
  1083.  
  1084.     move.l    (sp)+,d1
  1085.     move.l    d0,-(sp)
  1086.     move.l    d1,d0
  1087.  
  1088.     sub.l    cyoff,d0
  1089.     neg.l    d0
  1090.     add.l    cheight,d0
  1091.     move.w    #7200,d1
  1092.     bsr    Muls1632
  1093.     move.w    cscale,d2
  1094.     bsr    Divs1648
  1095.     move.l    d0,d1
  1096.     move.l    (sp)+,d0
  1097.     rts
  1098.  
  1099. delta:    bsr    float
  1100.     move.w    #7200,d1
  1101.     bsr    Muls1632
  1102.     move.w    cscale,d2
  1103.     bra    Divs1648
  1104.  
  1105. float:    clr.l    finteger
  1106.     clr.l    fdecimal
  1107.     clr.l    fdplace
  1108.     clr.l    fexponent
  1109.  
  1110.     bsr    integer
  1111.     move.b    sign,sign1
  1112.     move.l    d0,finteger
  1113.     cmp.b    #".",d3
  1114.     bne    rtrnfloat
  1115.     bsr    integer
  1116.     move.l    d0,fdecimal
  1117.     move.l    d4,fdplace
  1118.     cmp.b    #"e",d3
  1119.     bne    rtrnfloat
  1120.     bsr    integer
  1121.     move.b    sign,sign2        ;worthless
  1122.     move.l    d0,fexponent
  1123.  
  1124. rtrnfloat:
  1125.     move.l    finteger,d0
  1126.     move.l    fdplace,d2
  1127.     bra    rtft2
  1128. rtft1:    move.l    d0,d1            ;*10
  1129.     asl.l    #2,d0
  1130.     add.l    d1,d0
  1131.     asl.l    #1,d0
  1132. rtft2:    dbf    d2,rtft1
  1133.     move.l    fdecimal,d1
  1134.     tst.b    sign1
  1135.     beq    rtft3
  1136.     neg.l    d1
  1137. rtft3:    add.l    d1,d0
  1138.     move.l    fexponent,d3
  1139.     sub.l    fdplace,d3
  1140.     addq.l    #3,d3
  1141.     tst.l    d3
  1142.     beq    rrts
  1143.     bmi    divft
  1144.     bra    rtft5
  1145. rtft4:    move.l    d0,d1            ;*10
  1146.     asl.l    #2,d0
  1147.     add.l    d1,d0
  1148.     asl.l    #1,d0
  1149. rtft5:    dbf    d3,rtft4
  1150.     rts
  1151.  
  1152. divft:    neg.l    d3
  1153.     moveq    #1,d2
  1154.     bra    rtft9
  1155. rtft8:    move.l    d2,d1
  1156.     lsl.l    #2,d2
  1157.     add.l    d1,d2
  1158.     lsl.l    #1,d2
  1159. rtft9:    dbf    d3,rtft8
  1160.     moveq    #0,d1
  1161.     tst.l    d0
  1162.     bpl    rtft10
  1163.     move.l    #-1,d1
  1164. rtft10:    move.l    table,a0
  1165.     move.l    divs3248(a0),a0
  1166.     jmp    (a0)
  1167.  
  1168.  
  1169. string:
  1170.     bsr    fget
  1171.     beq    ofail
  1172.     cmp.b    #QUOTE,d0
  1173.     bne    string
  1174.     lea    strng,a0
  1175. str1:    move.l    a0,-(sp)
  1176.     bsr    fget
  1177.     beq    ofail
  1178.     cmp.b    #QUOTE,d0
  1179.     beq    str3
  1180.     cmp.b    #BACK,d0
  1181.     bne    str2
  1182.     bsr    fget
  1183.     beq    ofail
  1184. str2:    move.l    (sp)+,a0
  1185.     move.b    d0,(a0)+
  1186.     bra    str1
  1187. str3:    move.l    (sp)+,a0
  1188.     clr.b    (a0)
  1189.     lea    strng,a0
  1190.     rts
  1191.  
  1192.  
  1193. *******************************************
  1194. ***                    ***
  1195. *******************************************
  1196. putobj:    tst.b    partflag
  1197.     bne    putobj1
  1198.     move.l    table,a1
  1199.     move.l    o_obj(a1),a1
  1200.     lea    object,a0
  1201.     jsr    (a1)
  1202.     beq    ofail
  1203.     rts
  1204.  
  1205. putobj1:
  1206.     move.l    curpart,a0
  1207.     move.l    #ob_SizeOf,d0
  1208.     move.l    table,a1
  1209.     move.l    m_grow(a1),a1
  1210.     jsr    (a1)
  1211.     beq    ofail
  1212.  
  1213.     move.l    curpart,a1
  1214.     move.l    (a1),a1
  1215.     addq.w    #1,4(a1)
  1216.     add.l    curlength,a1
  1217.     lea    object,a0
  1218.     moveq    #ob_SizeOf/2-1,d0
  1219. po1:    move.w    (a0)+,(a1)+
  1220.     dbf    d0,po1
  1221.     add.l    #ob_SizeOf,curlength
  1222.     rts
  1223.  
  1224. *******************************************
  1225. ***                    ***
  1226. *******************************************
  1227. oputw:    tst.b    partflag
  1228.     bne    oputw1
  1229.     move.l    table,a0
  1230.     move.l    o_putw(a0),a0
  1231.     jsr    (a0)
  1232.     beq    ofail
  1233.     rts
  1234.  
  1235. oputw1:    move.w    d0,-(sp)
  1236.     move.l    curpart,a0
  1237.     move.l    #2,d0
  1238.     move.l    table,a1
  1239.     move.l    m_grow(a1),a1
  1240.     jsr    (a1)
  1241.     beq    ofail
  1242.  
  1243.     move.l    curpart,a1
  1244.     move.l    (a1),a1
  1245.     add.l    curlength,a1
  1246.     move.w    (sp)+,(a1)+
  1247.     add.l    #2,curlength
  1248.     rts
  1249.  
  1250.  
  1251. oputl:    tst.b    partflag
  1252.     bne    oputl1
  1253.     move.l    table,a0
  1254.     move.l    o_putl(a0),a0
  1255.     jsr    (a0)
  1256.     beq    ofail
  1257.     rts
  1258.  
  1259. oputl1:    move.l    d0,-(sp)
  1260.     move.l    curpart,a0
  1261.     move.l    #4,d0
  1262.     move.l    table,a1
  1263.     move.l    m_grow(a1),a1
  1264.     jsr    (a1)
  1265.     beq    ofail
  1266.  
  1267.     move.l    curpart,a1
  1268.     move.l    (a1),a1
  1269.     add.l    curlength,a1
  1270.     move.l    (sp)+,(a1)+
  1271.     add.l    #4,curlength
  1272.     rts
  1273.  
  1274. *******************************************
  1275. ***                    ***
  1276. *******************************************
  1277. copyhandle:
  1278.     tst.b    partflag
  1279.     bne    copyh1
  1280.  
  1281.     move.l    a0,-(sp)
  1282.     move.l    d0,-(sp)
  1283.  
  1284.     move.l    table,a0
  1285.     move.l    o_malloc(a0),a0
  1286.     jsr    (a0)
  1287.     beq    ofail
  1288.  
  1289.     move.l    (sp)+,d0
  1290.     move.l    (sp)+,a1
  1291.     move.l    (a1),a1
  1292.  
  1293.     lsr.l    #1,d0
  1294.     move.l    d0,d1
  1295.     swap    d1
  1296.     bra    cphdl2
  1297. cphdl1:    move.w    (a1)+,(a0)+
  1298. cphdl2:    dbf    d0,cphdl1
  1299.     dbf    d1,cphdl1
  1300.     rts
  1301.  
  1302. copyh1:    move.l    a0,-(sp)
  1303.     move.l    d0,-(sp)
  1304.  
  1305.     move.l    curpart,a0
  1306.     move.l    table,a1
  1307.     move.l    m_grow(a1),a1
  1308.     jsr    (a1)
  1309.     beq    ofail
  1310.     move.l    curpart,a0
  1311.     move.l    (a0),a0
  1312.     add.l    curlength,a0
  1313.     move.l    (sp)+,d0
  1314.     add.l    d0,curlength
  1315.     move.l    (sp)+,a1
  1316.     move.l    (a1),a1
  1317.  
  1318.     lsr.l    #1,d0
  1319.     move.l    d0,d1
  1320.     swap    d1
  1321.     bra    cphdl4
  1322. cphdl3:    move.w    (a1)+,(a0)+
  1323. cphdl4:    dbf    d0,cphdl3
  1324.     dbf    d1,cphdl3
  1325.     rts
  1326.  
  1327. *******************************************
  1328. ***                    ***
  1329. *******************************************
  1330. copypointer:
  1331.     tst.b    partflag
  1332.     bne    copyp1
  1333.  
  1334.     move.l    a0,-(sp)
  1335.     move.l    d0,-(sp)
  1336.  
  1337.     move.l    table,a0
  1338.     move.l    o_malloc(a0),a0
  1339.     jsr    (a0)
  1340.     beq    ofail
  1341.  
  1342.     move.l    (sp)+,d0
  1343.     move.l    (sp)+,a1
  1344.  
  1345.     lsr.l    #1,d0
  1346.     move.l    d0,d1
  1347.     swap    d1
  1348.     bra    cpptr2
  1349. cpptr1:    move.w    (a1)+,(a0)+
  1350. cpptr2:    dbf    d0,cpptr1
  1351.     dbf    d1,cpptr1
  1352.     rts
  1353.  
  1354. copyp1:    move.l    a0,-(sp)
  1355.     move.l    d0,-(sp)
  1356.  
  1357.     move.l    curpart,a0
  1358.     move.l    table,a1
  1359.     move.l    m_grow(a1),a1
  1360.     jsr    (a1)
  1361.     beq    ofail
  1362.     move.l    curpart,a0
  1363.     move.l    (a0),a0
  1364.     add.l    curlength,a0
  1365.     move.l    (sp)+,d0
  1366.     add.l    d0,curlength
  1367.     move.l    (sp)+,a1
  1368.  
  1369.     lsr.l    #1,d0
  1370.     move.l    d0,d1
  1371.     swap    d1
  1372.     bra    cpptr4
  1373. cpptr3:    move.w    (a1)+,(a0)+
  1374. cpptr4:    dbf    d0,cpptr3
  1375.     dbf    d1,cpptr3
  1376.     rts
  1377.  
  1378. *******************************************
  1379. ***                    ***
  1380. *******************************************
  1381. fget:    move.l    table,a0
  1382.     move.l    f_get(a0),a0
  1383.     jmp    (a0)
  1384.  
  1385.  
  1386. Mulu1632:
  1387.     move.l    table,a0
  1388.     move.l    mulu1632(a0),a0
  1389.     jmp    (a0)
  1390.  
  1391. Divu1648:
  1392.     move.l    table,a0
  1393.     move.l    divu1648(a0),a0
  1394.     jmp    (a0)
  1395.  
  1396. Muls1632:
  1397.     move.l    table,a0
  1398.     move.l    muls1632(a0),a0
  1399.     jmp    (a0)
  1400.  
  1401. Divs1648:
  1402.     move.l    table,a0
  1403.     move.l    divs1648(a0),a0
  1404.     jmp    (a0)
  1405.  
  1406.  
  1407. sincos:    and.l    #$ffff,d0
  1408.     divu    #100,d0
  1409.     move.w    d0,-(sp)
  1410.     bsr    getang
  1411.     move.w    d0,d1
  1412.     move.w    (sp)+,d0
  1413.     add.w    #90,d0        ;cos(ang) = sin (ang+90)
  1414.  
  1415. * and fall into getang
  1416.  
  1417. getang:    cmp.w    #360,d0
  1418.     bcs    geta1
  1419.     sub.w    #360,d0
  1420.     bra    getang
  1421. geta1:    moveq    #0,d2            ;is it negative?
  1422.     cmp.w    #180,d0
  1423.     bcs    geta2
  1424.     sub.w    #180,d0
  1425.     moveq    #1,d2            ;set negate bit
  1426. geta2:    cmp.w    #90,d0
  1427.     bcs    geta3
  1428.     sub.w    #180,d0
  1429.     neg.w    d0
  1430. geta3:    lsl.w    #1,d0
  1431.     lea    sintbl,a0
  1432.     move.w    0(a0,d0.w),d0
  1433.     tst.b    d2
  1434.     beq    rrts
  1435.     neg.w    d0
  1436.     rts
  1437.  
  1438. sintbl:
  1439.     dc.w    0,571,1143,1714,2285
  1440.     dc.w    2855,3425,3993,4560,5126
  1441.     dc.w    5690,6252,6812,7371,7927
  1442.     dc.w    8480,9032,9580,10125,10688
  1443.     dc.w    11207,11743,12275,12803,13327
  1444.     dc.w    13848,14364,14876,15383,15886
  1445.     dc.w    16383,16876,17364,17846,18323
  1446.     dc.w    18794,19260,19720,20173,20621
  1447.     dc.w    21062,21497,21926,22347,22762
  1448.     dc.w    23170,23571,23964,24351,24730
  1449.     dc.w    25101,25465,25821,26169,26509
  1450.     dc.w    26841,27165,27481,27788,28087
  1451.     dc.w    28377,28659,28932,29196,29451
  1452.     dc.w    29697,29935,30163,30381,30591
  1453.     dc.w    30791,30982,31164,31336,31498
  1454.     dc.w    31651,31794,31928,32051,32165
  1455.     dc.w    32270,32364,32449,32523,32588
  1456.     dc.w    32643,32688,32723,32748,32763
  1457.     dc.w    32767
  1458.  
  1459. *******************************************************************
  1460. ***    called when the import routine choosen finds something    ***
  1461. ***    wrong with the file loaded.                ***
  1462. *******************************************************************
  1463. notright:
  1464.     rts
  1465.  
  1466. never:    moveq    #0,d0
  1467.     rts
  1468.  
  1469. maybe:    moveq    #1,d0
  1470.     rts
  1471.  
  1472. right:    moveq    #2,d0
  1473.     rts
  1474.  
  1475. *************************************************************
  1476. *************************************************************
  1477.  SECTION aegis,DATA,PUBLIC
  1478.  
  1479.  
  1480. special:
  1481.     dc.w    1
  1482.     dc.l    spcl1
  1483.  
  1484. spcl1:    dc.b    "Object",0
  1485. name:    dc.b    "AegisDraw  v2.1.1",0
  1486.  
  1487. clrnm0:    dc.b    "AegisDraw#0",0
  1488. clrnm1:    dc.b    "AegisDraw#1",0
  1489. clrnm:    dc.b    "AegisDraw#",0
  1490.  
  1491. filltype:    dc.b    9,30,29,31,26,26,28,31
  1492.  
  1493.  SECTION aegis,BSS,PUBLIC
  1494.  
  1495. finteger:    ds.l    1
  1496. fdecimal:    ds.l    1
  1497. fdplace:    ds.l    1
  1498. fexponent:    ds.l    1
  1499.  
  1500. partlist:    ds.l    1
  1501. curpart:    ds.l    1
  1502. curlength:    ds.l    1
  1503.  
  1504. cxoff:        ds.l    1
  1505. cyoff:        ds.l    1
  1506. cwidth:        ds.l    1
  1507. cheight:    ds.l    1
  1508. cscale:        ds.w    1
  1509. dxoff:        ds.l    1
  1510. dyoff:        ds.l    1
  1511. dwidth:        ds.l    1
  1512. dheight:    ds.l    1
  1513. dscale:        ds.w    1
  1514. pxoffset:    ds.l    1
  1515. pyoffset:    ds.l    1
  1516. pxscale:    ds.w    1
  1517. pyscale:    ds.w    1
  1518. protate:    ds.w    1
  1519. pcos:        ds.w    1
  1520. psin:        ds.w    1
  1521. e_id:        ds.w    1
  1522. e_size:        ds.w    1
  1523. e_minx:        ds.l    1
  1524. e_miny:        ds.l    1
  1525. e_maxx:        ds.l    1
  1526. e_maxy:        ds.l    1
  1527. e_ctrx:        ds.l    1
  1528. e_ctry:        ds.l    1
  1529. e_color:    ds.w    1
  1530. e_layer:    ds.w    1
  1531. e_pattern:    ds.w    1
  1532. e_weight:    ds.w    1
  1533. e_flags:    ds.w    1
  1534.  
  1535. object:        ds.w    ob_SizeOf/2
  1536. column:        ds.w    cm_Sizeof/2
  1537. color:        ds.w    cl_Sizeof/2
  1538.  
  1539. strng:        ds.b    100
  1540. mptr:        ds.l    1
  1541. moff:        ds.l    1
  1542. count:        ds.w    1
  1543. savesp:        ds.l    1
  1544. partflag:    ds.b    1
  1545. sign:        ds.b    1
  1546. sign1:        ds.b    1
  1547. sign2:        ds.b    1
  1548. temp:        ds.l    2
  1549. colormap:    ds.w    32
  1550.