home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / GEOSApps / RPN128-SRC.SFX / rpntables (.txt) < prev    next >
GEOS ConVerT  |  1990-02-12  |  25KB  |  691 lines

  1. RPNtables
  2. SEQ formatted GEOS file V1.0
  3. Star NX-10
  4. OP V2.0 or higher
  5. ;"RPNconst
  6. BLASTER'S CONVERTER V2.5
  7. geosSym.RPN
  8. geosMac
  9. Write Image V2.1
  10. geoWrite    V1.1
  11. Initialization, Icon definitions, key handler for RPN 64
  12. ; *****************************************************************
  13. ;        RPN 128
  14. ;    initialization routine, icon definitions
  15. ; by Robert A Knop Jr.
  16. ; based very strongly on RPN 64
  17. ;Using SamDA code from GeoProgrammer by Berkeley Softworks.
  18. ; ***************************************************************
  19. .noeqin            ;during assembler's first pass.
  20.      @.include    geosSym
  21.         ;get GEOS definitions
  22.      @.include    geosMac    
  23.     ;get GEOS macro definitions
  24.      @.include    RPNconst
  25. config    ==    $ff00    
  26. ;A couple of defs. for the 128
  27. graphicsMode ==    $003f
  28. .eqin
  29. ; The source code for 
  30.      @RPN 128
  31.  is broken into 7 files:
  32. ; RPN128.lnk        Linker Command File
  33. ; RPNHdr        Header Record
  34. ; RPNtables        Icon Definition, Key Handler, Init. Routine
  35. ; RPNroutines    Routines called by Icons et. al.
  36. ; RPNsupport        More routines, of a "supporteseque" nature
  37. ; RPNram        .ramsect
  38. ; RPNconst        Equates included into several of the above
  39. ;This code also includes the files geosSym and geosMac, which come with geoProgrammer
  40. ; Hopefully, this source will serve as an example of how one may call BASIC's floating  
  41. ; point routines from GEOS.  An indispensable reference for the 128 version of the
  42. ; program was Otis Cowper's book, below.  Thanks also to Jim Collette and Dave
  43. ; Ferguson for random help with and suggestions about debugging problems.
  44. REFERENCES
  45. ; Andrews, Mark, 
  46. Commodore 128 Assembly Language Programming
  47. .  Sams, 1986.
  48. ; Berkeley Softworks, 
  49. The Official GEOS Programmer's Reference Guide
  50. .  Bantam, 1987.
  51. ; CBM, 
  52. Commodore 64 Programmer's Reference Guide
  53. .  Commodore, 1982.
  54. ; Cowper, Otis, 
  55. Mapping the Commodore 128
  56. .  COMPUTE! Books, 1986.
  57. ; Heeb, Dan, 
  58. COMPUTE!'s Vic-20 and C-64 Tool Kit: BASIC
  59. .  COMPUTE! Books, 1984.
  60. ; Leemon, Sheldon, 
  61. Mapping The Commodore 64 & 64C
  62. .  COMPUTE! Books, 1987.
  63. ;**********************************************************************; ; 
  64. Initialization routine
  65. ; Save application's foreground sreen
  66. ; Draw RPN screen
  67. ; Initialize icons
  68. ;**********************************************************************    
  69.      @.psect
  70.         ;Beginning of program
  71. DAStart:
  72.     LoadB    dispBufferOn,#(ST_WR_FORE)       ;allow writes to FG only
  73.     LoadW    keyVector,Keypress       ;Set up keypress handling routine
  74.     LoadW    r0,(DAEnd-F_ENTRY)       ;Clear all of .ramsect after GEOSzero
  75.     LoadW    r1,F_ENTRY
  76.     jsr    ClearRam
  77.     LoadW    leftMargin,#$00
  78.     jsr    i_MoveData    ;Save Applications zero page space so I can use it
  79.     .word    $0061    ;(also GEOS space under the FAC's)
  80.     .word    appzpage
  81.     .word    $009e
  82.     LoadW    r0,#DrawBox    ;point to graphics string to draw RPN screen
  83.     jsr    GraphicsString
  84.     bit    graphicsMode    ;Check bit 7 of graphicsMode; if set, we are in 80
  85.     bmi    20$    ; columns, so don't do colors
  86.     LoadW    r0,COLOR_MATRIX+(DA_TOP*40)
  87.     lda    COLOR_MATRIX+$27        ;Pick color from upper right card
  88.     ldx    #$00
  89. 5$    ldy    #(DA_LEFT)    ;Fill DA with this color
  90. 10$    sta    (r0),y
  91.     cpy    #(DA_LEFT+DA_WIDTH)
  92.     bne    10$
  93.     cpx    #(DA_HEIGHT)
  94.     beq    20$
  95.     AddVW    $28,r0
  96.     bra    5$
  97. 20$    LoadW    r0,#IconTable    ;point to icon definition table
  98.     jsr    DoIcons
  99.     jsr    Welcome    ;Print opening message on screen
  100.      @rts        
  101. ;Jump to GEOS main loop
  102.      @DrawBox:
  103.         ;graphics string table to clear screen
  104.     .byte    NEWPATTERN,0    ;set new pattern value (white)
  105.     .byte    MOVEPENTO    ;move pen to:
  106.      @DrawBox:
  107.         ;graphics string table to clear screen
  108.     .byte    NEWPATTERN,0    ;set new pattern value (white)
  109.     .byte    MOVEPENTO    ;move pen to:
  110.     .word    $8000+DA_LEFT*8    ;top left corner of DB (in pixels)
  111.     .byte    DA_TOP*8
  112.     .byte    RECTANGLETO    ;draw filled rectangle to bottom right corner
  113.     .word    $8000+(DA_LEFT+DA_WIDTH)*8 - 1
  114.     .byte    (DA_TOP+DA_HEIGHT)*8 - 1
  115.             ;bottom right corner of DB (in pixels)
  116.     .byte    NEWPATTERN,1    ;set new pattern value (black)
  117.     .byte    FRAME_RECTO    ;draw frame to...
  118.     .word    $8000+DA_LEFT*8    ;top left corner of DB (in pixels)
  119.     .byte    DA_TOP*8
  120.     .byte    MOVEPENTO
  121.     .word    $8000+(DA_LEFT+1)*8
  122.     .byte    (DA_TOP+2)*8
  123.     .byte    FRAME_RECTO    ;Data Screen
  124.     .word    $8000+(DA_LEFT+12)*8-1
  125.     .byte    (DA_TOP+DA_HEIGHT-2)*8
  126.     .byte    LINETO
  127.     .word    $8000+(DA_LEFT+12)*8-1
  128.     .byte    DA_TOP*8
  129.     .byte    MOVEPENTO
  130.     .word    $8000+(DA_LEFT+12)*8-1
  131.     .byte    (DA_TOP+DA_HEIGHT-2)*8
  132.     .byte    FRAME_RECTO    ;Entry line
  133.     .word    $8000+(DA_LEFT+1)*8
  134.     .byte    (DA_TOP+DA_HEIGHT)*8-1
  135.     .byte    NULL    ;End of graphic string
  136.      @Welcome:
  137.     LoadW    leftMargin,$8000+DATA_LEFT*8+4
  138.     LoadW    r0,HiThere
  139.     LoadB    r1H,DATA_TOP*8+12
  140.     LoadW    r11,$8000+DATA_LEFT*8+4
  141.     jsr    PutString
  142. 10$    CmpBI    mouseData,%10000000        ;Wait for click
  143.     bne    20$
  144.     bra    10$
  145. 20$    LoadW    leftMargin,#$00
  146.     jsr    ClearData
  147.     jsr    PrintRegs
  148.      @    rts
  149. HiThere:    .byte    26,"RPN 128",27,13,13,"by",13,24,"Robert Knop Jr.",27
  150.     .byte    13,13,"For useful info.,"
  151.     .byte    13,"hit INV-Enter",13,13
  152.     .byte    "(Click to begin)",0
  153. Keypress:
  154.     lda    keyData    ;first, check if i
  155. Keypress:
  156.     lda    keyData    ;first, check if it is a number
  157.     cmp    #'0'
  158.     bcc    5$    ;If ASCII is < '0'    , go to normal handler
  159.     cmp    #('9'+1)
  160.     bcs    5$    ;If ASCII is > '9', go to normal handler
  161.     sub    #$30
  162.     jsr    FlashIcon    ;Flash this Icon
  163.     sta    r0L    ;Stick "icon" number in r0L to select icon
  164.      @jmp    Number
  165. 5$    sta    temp    ;Put ASCII of keypress to temp
  166.     ldy    #$00
  167. 10$    lda    keytable,y
  168.     cmp    temp    ;Compare keytable entry to key pressed
  169.     beq    20$    ;If match, jump to pointed routine
  170.     cmp    #$00
  171.     beq    90$    ;If zero, there was no match
  172.     iny        ;set y to point to next entry
  173.     bra    10$    ;End of Loop
  174. 20$    iny        ;Number of the icon this key corresponds to
  175.     lda    keytable,y
  176.     sty    temp
  177.     jsr    FlashIcon    ;Flash this Icon
  178.     ldy    temp
  179.     lda    keytable,y    ;put routine vector @ temp (lb) & temp2 (hb)
  180.     sta    temp
  181.     lda    keytable,y
  182.     sta    temp2
  183.      @jmp    (temp)
  184.     ;Jump to appropriate routine
  185.      @rts
  186. look4key:    .byte    "looking for key",0
  187. abt2flash:    .byte    "about to flash",0
  188. ;didFlash:    
  189.      @FlashIcon:
  190.     sta    r0L
  191.     LoadB    r0H,$00
  192.     ldx    #r0
  193.     ldy    #$03
  194.     jsr    DShiftLeft    ;Multiply by 8
  195.     AddVW    $06,r0
  196.     clc        ;Add IconTable to r0
  197.     lda    #<IconTable
  198.     adc    r0L
  199.     sta    r0L
  200.     lda    #>IconTable
  201.     adc    r0H
  202.     sta    r0H    ;Now r0 points to Left
  203.     ldy    #$00
  204.     lda    (r0),y    ;Left in Bytes
  205.     and    #%01111111    ;(Turn off high bit)
  206.     sta    r3L
  207.     LoadB    r3H,$00
  208.     ldx    #r3
  209.     ldy    #$03
  210.     jsr    DShiftLeft        ;Multiply by 8 to get pixels
  211.     ldy    #$02
  212.     lda    (r0),y    ;Width in Bytes -- multiplty this by 8 too
  213.     and    #%01111111    ;(After turning off high bit)
  214.     sta    r4L
  215.     LoadB    r4H,$00
  216.     ldx    #r4
  217.     ldy    #$03
  218.     jsr    DShiftLeft
  219.     AddW    r3,r4    ;Add left to width -> right
  220.     AddVW    $8000,r3    ;Set high bit of left and right
  221.     AddVW    $8000,r4
  222.     ldy    #$01
  223.     lda    (r0),y    ;Top in Scanlines
  224.     sta    r2L
  225.     ldy    #$03
  226.     lda    (r0),y    ;Height in Scanlines
  227.     add    r2L
  228.     sta    r2H    ;Bottom in scanlines
  229.     jsr    InvertRectangle
  230.     ldx    #$00
  231.     ldy    #$00
  232. 10$    inx        ;Count to 16*256 as a pause
  233.     cpx    #$00
  234.     bne    10$
  235.     cpy    #$10
  236.     bne    10$
  237.     jsr    InvertRectangle
  238.      @rts
  239. ; table of keys (byte), icons to flash (byte),  and routines which should be called when
  240. ; said key is pressed (word)
  241.      @keytable:
  242.     .byte    $0d,17    ;Return
  243.     .word    Enter
  244.     .byte    11,17    ;ENTER-- same as return (or vica versa)
  245.     .word    Enter
  246.     .byte    ".",10
  247.     .word    DecimalPoint
  248.     .byte    "e",11
  249.     .word    Scinot
  250.     .byte    KEY_DELETE,16
  251.     .word    Delete
  252.     .byte    "+",12
  253.     .word    AddNums
  254.     .byte    "-",13
  255.     .word    SubNums
  256.     .byte    "*",14
  257.     .word    MultNums
  258.     .byte    "/",15
  259.     .word    DivNums
  260.     .byte    "^",19
  261.     .word    Expo
  262.     .byte    "s",23
  263.     .word    Sin
  264.     .byte    "c",24
  265.     .word    Cos
  266.     .byte    "t",25
  267.     .word    Tan
  268.     .byte    "r",20    ;Reciprocal
  269.     .word    Recip
  270.     .byte    "l",21
  271.     .word    Ln
  272.     .byte    "m",26
  273.     .word    Memin
  274.     .byte    "v",18    ;"v" is Square Root for lack of anything better
  275.     .word    Sqrt
  276.     .byte    KEY_F1,29    ;f1 is Inverse
  277.     .word    Inverse
  278.     .byte    KEY_F3,27    ;f3 is Swap
  279.     .word    Swap
  280.     .byte    KEY_F5,28    ;f5 is Drop
  281.     .word    Drop
  282.     .byte    KEY_F7,22    ;f7 is +/-
  283.     .word    SignChange
  284.     .byte    "q",30
  285.     .word    QuitRPN
  286.      @.byte    0
  287.     ;End of table
  288. ;icon definition table
  289. PADLEFT    = DA_LEFT+12    ;left edge of keypad    
  290.             ;(in cards)
  291. IconTable:
  292.     .byte    31    ;number of icons
  293.     .word    $8000+PADLEFT*8    ;x position to place mouse at when done
  294.     .byte    DA_TOP*8    ;y position to place mouse at when done
  295. ; *** 
  296.      @ICON 0 - 0
  297.     .word    Pic0    ;pointer to compacted bitmap for icon
  298.     .byte    $80+PADLEFT+3    ;x position in bytes
  299.     .byte    (DA_TOP+16)*8    ;y position in scanlines
  300.     .byte    $80+ICON0_WIDTH    ;width of icon in bytes
  301.     .byte    ICON0_HEIGHT    ;height of icon in scanlines
  302.     .word    Number    ;pointer to handler routine
  303. ; *** 
  304.      @ICON 1 - 1
  305.     .word    Pic1
  306.     .byte    $80+PADLEFT+1
  307.     .byte    (DA_TOP+14)*8
  308.     .byte    $80+ICON1_WIDTH
  309.     .byte    ICON1_HEIGHT
  310.     .word    Number
  311. ; *** 
  312.      @ICON 2 - 2
  313.     .word    Pic2
  314.     .byte    $80+PADLEFT+3
  315.     .byte    (DA_TOP+14)*8
  316.     .byte    $80+ICON2_WIDTH
  317.     .byte    ICON2_HEIGHT
  318.     .word    Number
  319. ; *** 
  320.      @ICON 3 - 3
  321.     .word    Pic3
  322.     .byte    $80+PADLEFT+5
  323.     .byte    (DA_TOP+14)*8
  324.     .byte    $80+ICON3_WIDTH
  325.     .byte    ICON3_HEIGHT
  326.     .word    Number
  327. ; *** 
  328.      @ICON 4 - 4
  329.     .word    Pic4
  330.     .byte    $80+PADLEFT+1
  331.     .byte    (DA_TOP+12)*8
  332.     .byte    $80+ICON4_WIDTH
  333.     .byte    ICON4_HEIGHT
  334.     .word    Number
  335. ; *** 
  336.      @ICON 5 - 5
  337.     .word    Pic5
  338.     .byte    $80+PADLEFT+3
  339.     .byte    (DA_TOP+12)*8
  340.     .byte    $80+ICON5_WIDTH
  341.     .byte    ICON5_HEIGHT
  342.     .word    Number
  343. ; *** 
  344.      @ICON 6 - 6
  345. .word    Pic6
  346.     .byte    $80+PADLEFT+5
  347.     .byte    (DA_TOP+12)*8
  348.     .byte    $80+ICON6_WIDTH
  349.     .byte    ICON6_HEIGHT
  350.     .word    Number
  351. ; *** 
  352.      @ICON 7 -7
  353.     .word    Pic7
  354.     .byte    $80+PADLEFT+1
  355.     .byte    (DA_TOP+10)*8
  356.     .byte    $80+ICON7_
  357. ; *** 
  358.      @ICON 7 -7
  359.     .word    Pic7
  360.     .byte    $80+PADLEFT+1
  361.     .byte    (DA_TOP+10)*8
  362.     .byte    $80+ICON7_WIDTH
  363.     .byte    ICON7_HEIGHT
  364.     .word    Number
  365. ; *** 
  366.      @ICON 8 - 8
  367.     .word    Pic8
  368.     .byte    $80+PADLEFT+3
  369.     .byte    (DA_TOP+10)*8
  370.     .byte    $80+ICON8_WIDTH
  371.     .byte    ICON8_HEIGHT
  372.     .word    Number
  373. ; *** 
  374.      @ICON 9 - 9
  375.     .word    Pic9
  376.     .byte    $80+PADLEFT+5
  377.     .byte    (DA_TOP+10)*8
  378.     .byte    $80+ICON9_WIDTH
  379.     .byte    ICON9_HEIGHT
  380.     .word    Number
  381. ; *** 
  382.      @ICON 10 - DECIMAL POINT
  383.     .word    PicPoint
  384.     .byte    $80+PADLEFT+5
  385.     .byte    (DA_TOP+16)*8
  386.     .byte    $80+ICON10_WIDTH
  387.     .byte    ICON10_HEIGHT
  388.     .word    DecimalPoint
  389. ; *** 
  390.      @ICON 11 - SCINOT
  391.     .word    PicE
  392.     .byte    $80+PADLEFT+1
  393.     .byte    (DA_TOP+16)*8
  394.     .byte    $80+ICON11_WIDTH
  395.     .byte    ICON11_HEIGHT
  396.     .word    Scinot
  397. ; *** 
  398.      @ICON 12 - PLUS
  399.     .word    PicPlus
  400.     .byte    $80+PADLEFT+7
  401.     .byte    (DA_TOP+10)*8
  402.     .byte    $80+ICON12_WIDTH
  403.     .byte    ICON12_HEIGHT
  404.     .word    AddNums
  405. ; *** 
  406.      @ICON 13 - MINUS
  407.     .word    PicMinus
  408.     .byte    $80+PADLEFT+7
  409.     .byte    (DA_TOP+12)*8
  410.     .byte    $80+ICON13_WIDTH
  411.     .byte    ICON13_HEIGHT
  412.     .word    SubNums
  413. ; *** 
  414.      @ICON 14 - MULTIPLY
  415.     .word    PicMult
  416.     .byte    $80+PADLEFT+7
  417.     .byte    (DA_TOP+14)*8
  418.     .byte    $80+ICON14_WIDTH
  419.     .byte    ICON14_HEIGHT
  420.     .word    MultNums
  421. ; *** 
  422.      @ICON 15 - DIVIDE
  423.     .word    P
  424. ; *** 
  425.      @ICON 15 - DIVIDE
  426.     .word    PicDiv
  427.     .byte    $80+PADLEFT+7
  428.     .byte    (DA_TOP+16)*8
  429.     .byte    $80+ICON15_WIDTH
  430.     .byte    ICON15_HEIGHT
  431.     .word    DivNums
  432. ; *** 
  433.      @ICON 16 - DELETE
  434.     .word    PicDelete
  435.     .byte    $80+PADLEFT+9
  436.     .byte    (DA_TOP+10)*8
  437.     .byte    $80+ICON16_WIDTH
  438.     .byte    ICON16_HEIGHT
  439.     .word    Delete
  440. ; *** 
  441.      @ICON 17 - ENTER
  442.     .word    PicEnter
  443.     .byte    $80+PADLEFT+9
  444.     .byte    (DA_TOP+12)*8
  445.     .byte    $80+ICON17_WIDTH
  446.     .byte    ICON17_HEIGHT
  447.     .word    Enter
  448. ; *** 
  449.      @ICON 18 - SQRT
  450.     .word    PicSqrt
  451.     .byte    $80+PADLEFT+1
  452.     .byte    (DA_TOP+7)*8
  453.     .byte    $80+ICON18_WIDTH
  454.     .byte    ICON18_HEIGHT
  455.     .word    Sqrt
  456. ; *** 
  457.      @ICON 19 - EXPONENTIATION
  458.     .word    PicExpo
  459.     .byte    $80+PADLEFT+3
  460.     .byte    (DA_TOP+7)*8
  461.     .byte    $80+ICON19_WIDTH
  462.     .byte    ICON19_HEIGHT
  463.     .word    Expo
  464. ; *** 
  465.      @ICON 20 - RECIPROCAL
  466.     .word    PicRecip
  467.     .byte    $80+PADLEFT+5
  468.     .byte    (DA_TOP+7)*8
  469.     .byte    $80+ICON20_WIDTH
  470.     .byte    ICON20_HEIGHT
  471.     .word    Recip
  472. ; *** 
  473.      @ICON 21 - LN
  474.     .word    PicLn
  475.     .byte    $80+PADLEFT+7
  476.     .byte    (DA_TOP+7)*8
  477.     .byte    $80+ICON21_WIDTH
  478.     .byte    ICON21_HEIGHT
  479.     .word    Ln
  480. ; *** 
  481.      @ICON 22 - SIGN CHANGE
  482.     .word    PicSignChange
  483.     .byte    $80+PADLEFT+9
  484.     .byte    (DA_TOP+7)*8
  485.     .byte    $80+ICON22_WIDTH
  486.     .byte    ICON22_HEIGHT
  487.     .word    SignChange
  488. ; *** 
  489.      @IC
  490. ; *** 
  491.      @ICON 23 - SIN
  492.     .word    PicSin
  493.     .byte    $80+PADLEFT+1
  494.     .byte    (DA_TOP+5)*8
  495.     .byte    $80+ICON23_WIDTH
  496.     .byte    ICON23_HEIGHT
  497.     .word    Sin
  498. ; *** 
  499.      @ICON 24 - COS
  500.     .word    PicCos
  501.     .byte    $80+PADLEFT+4
  502.     .byte    (DA_TOP+5)*8
  503.     .byte    $80+ICON24_WIDTH
  504.     .byte    ICON24_HEIGHT
  505.     .word    Cos
  506. ; *** 
  507.      @ICON 25 - TAN
  508.     .word    PicTan
  509.     .byte    $80+PADLEFT+7
  510.     .byte    (DA_TOP+5)*8
  511.     .byte    $80+ICON25_WIDTH
  512.     .byte    ICON25_HEIGHT
  513.     .word    Tan
  514. ; *** 
  515.      @ICON 26 - MEMIN
  516.     .word    PicMemin
  517.     .byte    $80+PADLEFT+1
  518.     .byte    (DA_TOP+3)*8
  519.     .byte    $80+ICON26_WIDTH
  520.     .byte    ICON26_HEIGHT
  521.     .word    Memin
  522. ; *** 
  523.      @ICON 27 - SWAP
  524.     .word    PicSwap
  525.     .byte    $80+PADLEFT+4
  526.     .byte    (DA_TOP+3)*8
  527.     .byte    $80+ICON27_WIDTH
  528.     .byte    ICON27_HEIGHT
  529.     .word    Swap
  530. ; *** 
  531.      @ICON 28 - DROP
  532.     .word    PicDrop
  533.     .byte    $80+PADLEFT+7
  534.     .byte    (DA_TOP+3)*8
  535.     .byte    $80+ICON28_WIDTH
  536.     .byte    ICON28_HEIGHT
  537.     .word    Drop
  538. ; *** 
  539.      @ICON 29 - INVERSE
  540.     .word    PicInverse
  541.     .byte    $80+PADLEFT+1
  542.     .byte    (DA_TOP+1)*8
  543.     .byte    $80+ICON29_WIDTH
  544.     .byte    ICON29_HEIGHT
  545.     .word    Inverse
  546. ; *** 
  547.      @ICON 30 - QUIT
  548.     .word    PicQuit
  549.     .byte    $80+PADLEFT+9
  550.     .byte    (DA_TOP+1)*8
  551.     .byte    $80+ICON30_WIDTH
  552.     .byte    ICON30_HEIGHT
  553.     .word    QuitRPN
  554. Pic0:            ;assembler will place compacted bitmap data
  555. Pic0:            ;assembler will place compacted bitmap data
  556.             ;here for this picture:
  557. @ICON0_WIDTH    = picW    ;store bitmap size values for use in above
  558. ICON0_HEIGHT    = picH        ;table on pass 2. (picW and picH are set by
  559.             ;the assembler.)
  560. Pic1:
  561. AICON1_WIDTH    = picW
  562. ICON1_HEIGHT    = picH
  563. Pic2:
  564. BICON2_WIDTH    = picW
  565. ICON2_HEIGHT    = picH
  566. Pic3:
  567. CICON3_WIDTH    = picW
  568. ICON3_HEIGHT    = picH
  569. Pic4:
  570. DICON4_WIDTH    = picW
  571. ICON4_HEIGHT    = picH
  572. Pic5:
  573. EICON5_WIDTH    = picW
  574. ICON5_HEIGHT    = picH
  575. Pic6:
  576. FICON6_WIDTH    = picW
  577. ICON6_HEIGHT    = picH
  578. Pic7:
  579. GICON7_WIDTH    = picW
  580. ICON7_HEIGHT    = picH
  581. Pic8:
  582. HICON8_WIDTH    = picW
  583. ICON8_HEIGHT    = picH
  584. Pic9:
  585. IICON9_WIDTH    = picW
  586. ICON9_HEIGHT    = picH
  587. PicPoint:
  588. ^ICON10_WIDTH    = picW
  589. ICON10_HEIGHT    = picH
  590. PicE:
  591. `ICON11_WIDTH    = picW
  592. ICON11_HEIGHT    = picH
  593. PicPlus:
  594. JICON12_WIDTH    = picW
  595. ICON12_HEIGHT    = picH
  596. PicMinus:
  597. KICON13_WIDTH    = picW
  598. ICON13_HEIGHT    = picH
  599. PicMult:
  600. LICON14_WIDTH    = picW
  601. PicPlus:
  602. JICON12_WIDTH    = picW
  603. ICON12_HEIGHT    = picH
  604. PicMinus:
  605. KICON13_WIDTH    = picW
  606. ICON13_HEIGHT    = picH
  607. PicMult:
  608. LICON14_WIDTH    = picW
  609. ICON14_HEIGHT    = picH
  610. PicDiv:
  611. MICON15_WIDTH    = picW
  612. ICON15_HEIGHT    = picH
  613. PicDelete:
  614. NICON16_WIDTH    = picW
  615. ICON16_HEIGHT    = picH
  616. PicEnter:
  617. OICON17_WIDTH    = picW
  618. ICON17_HEIGHT    = picH
  619. PicSqrt:
  620. PICON18_WIDTH    = picW
  621. ICON18_HEIGHT    = picH
  622. PicExpo:
  623. RICON19_WIDTH    = picW
  624. ICON19_HEIGHT    = picH
  625. PicRecip:
  626. SICON20_WIDTH    = picW
  627. ICON20_HEIGHT    = picH
  628. PicLn:
  629. TICON21_WIDTH    = picW
  630. ICON21_HEIGHT    = picH
  631. PicSignChange:
  632. QICON22_WIDTH    = picW
  633. ICON22_HEIGHT    = picH
  634. PicSin:
  635. XICON23_WIDTH    = picW
  636. ICON23_HEIGHT    = picH
  637. PicCos:
  638. PicSin:
  639. XICON23_WIDTH    = picW
  640. ICON23_HEIGHT    = picH
  641. PicCos:
  642. YICON24_WIDTH    = picW
  643. ICON24_HEIGHT    = picH
  644. PicTan:
  645. ZICON25_WIDTH    = picW
  646. ICON25_HEIGHT    = picH
  647. PicMemin:
  648. UICON26_WIDTH    = picW
  649. ICON26_HEIGHT    = picH
  650. PicSwap:
  651. \ICON27_WIDTH    = picW
  652. ICON27_HEIGHT    = picH
  653. PicDrop:
  654. ]ICON28_WIDTH    = picW
  655. ICON28_HEIGHT    = picH
  656. PicInverse:
  657. VICON29_WIDTH    = picW
  658. ICON29_HEIGHT    = picH
  659. PicQuit:
  660. _ICON30_WIDTH    = picW
  661. ICON30_HEIGHT    = picH
  662.     .word    DivNums
  663. ; *** 
  664.      @ICON 16 - DELETE
  665.     .word    DivNums
  666. ; *** 
  667.      @ICON 16 - DELETE
  668.     .word    PicDelete
  669.     .byte    $80+PADLEFT+9
  670.     .byte    (DA_TOP+
  671.     .word    DivNums
  672. ; *** 
  673.      @ICON 16 - DELETE
  674.     .word    PicDelete
  675.     .byte    $80+PADLEFT+9
  676.     .byte    (DA_TOP+10)*8
  677.     .byte    $80+ICON16_WIDTH
  678.     .byte    ICON16_HEIGHT
  679.     .word    
  680.     .word    DivNums
  681. ; *** 
  682.      @ICON 16 - DELETE
  683.     .word    PicDelete
  684.     .byte    $80+PADLEFT+9
  685.     .byte    (DA_TOP+10)*8
  686.     .byte    $80+ICON16_WIDTH
  687.     .byte    ICON16_HEIGHT
  688.     .word    Delete
  689. ; *** 
  690.      @ICON 17 - ENTER
  691.