home *** CD-ROM | disk | FTP | other *** search
/ ticalc.org / ticalc_org_rev_b.iso / archives / 83 / asm / source / sos / per83.asm < prev    next >
Encoding:
Assembly Source File  |  2001-07-01  |  14.9 KB  |  974 lines

  1. #define equ .equ
  2. #define EQU .equ
  3. #define end .end
  4.  
  5. #include "ti83asm.inc"
  6. .org     9327h
  7.  
  8.   ccf    
  9.   jr    Start
  10. .dw    $0000
  11. .dw    Title
  12.  
  13. Start:
  14.  ld a,4            ;Set up some coordinates for the box
  15.  ld (selectx),a        ;and for _IPoint routine.  Note that
  16.  ld a,61        ;the Y-Coordinates are actually flipped
  17.  ld (selecty),a        ;due to Ti's _IPoint requirements.
  18.  ld a,1
  19.  ld (current),a 
  20. Restart:
  21.  call DrawTable        ;Draw out the Periodic Table Wireframe
  22.  jp Selector        ;Draw out the selector for the first time
  23.  
  24. KeyLoop:        ;The KeyLoop Starts here
  25.  call $4014        ;call GET_KEY
  26.  cp $37            ;Mode or Graph?
  27.  ret z            ;Exit if so.
  28.  cp $02            ;Is it Left?
  29.  jp z,MoveLeft        ;Move Left!
  30.  cp $03             ;Is it right?
  31.  jp z,MoveRight        ;Move Right!
  32.  cp $09
  33.  jp z,ElemInfo
  34.  cp $35
  35.  jp z,HelpScreen
  36.  jr KeyLoop        ;Reloop.
  37.  
  38. MoveLeft:        ;Similarly to the other routines,
  39.  ld a,(selectx)        ;this checks the uncrossable boundries
  40.  cp 4            ;and if there is a boundry that shouldn't
  41.  jp z,PrevRow        ;be crossed, it doesn't draw it, else,
  42.  cp 19            ;moves to the left.
  43.  jp z,ContLeftC
  44. ContLeftMan:
  45.  ld a,(selectx)
  46.  cp 89             
  47.  jp z,SelectHyd
  48.  cp 19
  49.  jp z,ContLCheck
  50.  cp 64
  51.  jp z,CheckLeft
  52. ContLeft:
  53.  call RemSel
  54.  ld a,(selectx)
  55.  sub 5
  56.  ld (selectx),a
  57.  ld hl,current
  58.  dec (hl)
  59.  jp Selector
  60.  
  61. MoveRight:        ;Pretty similar to the other routines.
  62.  ld a,(selectx)        ;Checks boundries, draws in the right
  63.  cp 89            ;location the right box.
  64.  jp z,NextRow
  65.  cp 84
  66.  jp z,LastRow
  67. ContRC:
  68.  ld a,(selectx)
  69.  cp 4 
  70.  jp z,SelectHel
  71.  cp 9
  72.  jp z,CheckRight
  73.  cp 54
  74.  jp z,ContRightC
  75.  cp 84
  76.  jp z,ContRC2
  77. ContRight:
  78.  call RemSel
  79.  ld a,(selectx)
  80.  add a,5
  81.  ld (selectx),a
  82.  ld hl,current
  83.  inc (hl)
  84.  jp Selector
  85.  
  86. SelectHyd:
  87.  ld a,(selecty)
  88.  cp 61
  89.  jp nz,ContLeft
  90.  call RemSel
  91.  ld a,4
  92.  ld (selectx),a
  93.  ld hl,current
  94.  dec (hl)
  95.  jp Selector
  96.  
  97. SelectHel:
  98.  ld a,(selecty)
  99.  cp 61
  100.  jp nz,ContRight
  101.  call RemSel
  102.  ld a,89
  103.  ld (selectx),a
  104.  ld hl,current
  105.  inc (hl)
  106.  jp Selector
  107.  
  108. CheckRight:
  109.  ld a,(selecty)
  110.  cp 48
  111.  jp c,ContRChk
  112.  call RemSel
  113.  ld a,64
  114.  ld (selectx),a
  115.  ld hl,current
  116.  inc (hl)
  117.  jp Selector
  118. ContRChk:
  119.  cp 41
  120.  jp nc,ContRight
  121.  cp 36
  122.  jp z,ContRight
  123.  call RemSel
  124.  ld a,19
  125.  ld (selectx),a
  126.  ld hl,current
  127.  inc (hl)
  128.  jp Selector
  129.  
  130. ContLCheck:
  131.  ld a,(selecty)
  132.  cp 31
  133.  jp nz,ContLeft
  134.  call RemSel
  135.  ld a,9
  136.  ld (selectx),a
  137.  ld hl,current
  138.  dec (hl)
  139.  jp Selector
  140.  
  141. CheckLeft:
  142.  ld a,(selecty)
  143.  cp 48
  144.  jp c,ContLeft
  145.  call RemSel
  146.  ld a,9
  147.  ld (selectx),a
  148.  ld hl,current
  149.  dec (hl)
  150.  
  151. Selector:        ;Draws a 4x4 black box at coordinates selectx/selecty
  152.  call DrawSel        ;Call the XOR routine
  153.  call DispData        ;Display the Data!
  154.  call _grbufcpy_v    ;Copy it
  155.  jp KeyLoop        ;Goto the loop
  156.  
  157. ContLeftC:
  158.  ld a,(selecty)
  159.  cp 30
  160.  jp c,MoveLBot
  161.  jp ContLeftMan
  162.  
  163. MoveLBot:
  164.  cp 19
  165.  jp z,RetHistory
  166.  cp 14
  167.  jp nz,KeyLoop
  168.  call RemSel
  169.  ld a,19
  170.  ld (selecty),a
  171.  ld a,84
  172.  ld (selectx),a
  173.  ld hl,current
  174.  dec (hl)
  175.  jp Selector
  176.  
  177. RetHistory:
  178.  call RemSel
  179.  ld a,31
  180.  ld (selecty),a
  181.  ld a,54
  182.  ld (selectx),a
  183.  ld hl,current
  184.  dec (hl)
  185.  jp Selector
  186.  
  187. ContRightC:
  188.  ld a,(selecty)
  189.  cp 31
  190.  jp nz,ContRight
  191.  call RemSel
  192.  ld a,(selecty)
  193.  sub 12
  194.  ld (selecty),a
  195.  ld a,19
  196.  ld (selectx),a
  197.  ld hl,current
  198.  inc (hl)
  199.  jp Selector
  200.  
  201. ContRC2:
  202.  ld a,(selecty)
  203.  cp 30
  204.  jp c,KeyLoop
  205.  jp ContRight
  206.  
  207. NextRow:
  208.  call RemSel
  209.  ld a,(selecty)
  210.  sub 5
  211.  ld (selecty),a
  212.  ld a,4
  213.  ld (selectx),a
  214.  ld hl,current
  215.  inc (hl)
  216.  jp Selector
  217.  
  218. LastRow:
  219.  ld a,(selecty)
  220.  cp 19
  221.  jp nz,ContRC
  222.  call RemSel
  223.  ld a,19
  224.  ld (selectx),a
  225.  ld a,(selecty)
  226.  sub 5
  227.  ld (selecty),a
  228.  ld hl,current
  229.  inc (hl)
  230.  jp Selector
  231.  
  232. PrevRow:
  233.  ld a,(selecty)
  234.  cp 61
  235.  jp z,KeyLoop
  236.  call RemSel
  237.  ld a,(selecty)
  238.  add a,5
  239.  ld (selecty),a
  240.  ld a,89
  241.  ld (selectx),a
  242.  ld hl,current
  243.  dec (hl)
  244.  jp Selector
  245.  
  246. RemSel:            ;If we only want to remove it, then save time by not copying the
  247. DrawSel:        ;grbuf and by returning rather than going to the KeyLoop.
  248.  ld d,2            ;D is set to two here for XOR, so it can be used as an XOR routine.
  249.  ld a,(selectx)
  250.  ld b,a            ;X-Position should go into b
  251.  ld a,(selecty)
  252.  ld c,a            ;Y-Position should go into c
  253.  call VertLoop        ;Draw 3 pixels
  254.  dec c            ;Goto next line, this is decrease because 
  255.  call VertLoop        ;Ti's _IPoint Y-Coordinates are flipped.
  256.  dec c            ;Same with _ILine.  This VertLoop is gone
  257.  call VertLoop        ;through four times to achieve 4 lines.
  258.  dec c
  259. VertLoop:        ;Displays 4 pixels vertically
  260.  ld a,(selectx)        
  261.  ld b,a            ;Reset the X-Coordinate
  262.  ld a,4            ;Loop 4 times, using a
  263. Loop:
  264.  call _IPoint        ;Draw the point
  265.  inc b            ;Increase the X
  266.  dec a            ;Decrease A
  267.  jr nz,Loop        ;If its not 0, then reloop.
  268.  ret
  269.  
  270. DrawTable:        ;Draws out the wireframe of the periodic table.
  271.             ;This was not very easy to do, as you can imagine :P
  272.  ld h,1
  273.  ld bc,3*256+47
  274.  ld de,93*256+47
  275.  call _ILine
  276.  ld bc,3*256+42
  277.  ld de,93*256+42
  278.  call _ILine
  279.  ld bc,3*256+37
  280.  ld de,93*256+37
  281.  call _ILine
  282.  ld bc,3*256+32
  283.  ld de,93*256+32
  284.  call _ILine
  285.  ld bc,18*256+27
  286.  ld de,58*256+27
  287.  call _ILine
  288.  ld bc,63*256+52
  289.  ld de,93*256+52
  290.  call _ILine
  291.  ld bc,63*256+57
  292.  ld de,93*256+57
  293.  call _ILine
  294.  ld bc,88*256+62
  295.  ld de,93*256+62
  296.  call _ILine
  297.  ld bc,3*256+57
  298.  ld de,13*256+57
  299.  call _ILine
  300.  ld bc,3*256+52
  301.  ld de,13*256+52
  302.  call _ILine
  303.  ld bc,18*256+10
  304.  ld de,87*256+10
  305.  call _ILine
  306.  ld bc,18*256+15
  307.  ld de,87*256+15
  308.  call _ILine
  309.  ld bc,18*256+20
  310.  ld de,87*256+20
  311.  call _ILine
  312.  ld bc,3*256+62
  313.  ld de,7*256+62
  314.  call _ILine
  315.  ld bc,3*256+47
  316.  ld de,13*256+47
  317.  call _ILine
  318.  ld bc,3*256+42
  319.  ld de,13*256+42
  320.  call _ILine
  321.  ld bc,3*256+37
  322.  ld de,13*256+37
  323.  call _ILine
  324.  ld bc,3*256+27
  325.  ld de,13*256+27
  326.  call _ILine
  327.  ld bc,3*256+62
  328.  ld de,3*256+28
  329.  call _ILine
  330.  ld bc,93*256+62
  331.  ld de,93*256+38
  332.  call _ILine
  333.  ld bc,8*256+62
  334.  ld de,8*256+28
  335.  call _ILine
  336.  ld bc,13*256+57
  337.  ld de,13*256+28
  338.  call _ILine
  339.  ld bc,88*256+62
  340.  ld de,88*256+33
  341.  call _ILine
  342.  ld bc,83*256+57
  343.  ld de,83*256+33
  344.  call _ILine
  345.  ld bc,78*256+57
  346.  ld de,78*256+33
  347.  call _ILine
  348.  ld bc,73*256+57
  349.  ld de,73*256+33
  350.  call _ILine
  351.  ld bc,68*256+57
  352.  ld de,68*256+33
  353.  call _ILine
  354.  ld bc,63*256+57
  355.  ld de,63*256+33
  356.  call _ILine
  357.  
  358.  ld bc,13*256+47
  359.  ld de,13*256+33
  360.  ld a,16
  361.  call LineLooper
  362.  
  363.  ld bc,13*256+38
  364.  ld de,13*256+33
  365.  ld a,10
  366.  call LineLooper
  367.  
  368.  ld bc,13*256+33
  369.  ld de,13*256+28
  370.  ld a,9
  371.  call LineLooper
  372.  
  373.  ld bc,13*256+20
  374.  ld de,13*256+10
  375.  ld a,15
  376. LineLooper:
  377.  inc b \ inc b \ inc b \ inc b \ inc b
  378.  inc d \ inc d \ inc d \ inc d \ inc d
  379.  call _ILine
  380.  dec a
  381.  jr nz,LineLooper
  382.  ret
  383.  
  384. DispData:
  385.  set 7,(iy+$14)
  386.  ;--------------
  387.  ld hl,6*256+15
  388.  ld (pencol),hl
  389.  ld b,47
  390. DispBlank:        ;This code clears the spots
  391.  ld a,' '        ;at which we want to write on.
  392.  call _vputmap
  393.  djnz DispBlank
  394.  ;--------------
  395.  ld de,0*256+15
  396.  ld hl,Data
  397.  call fvputs
  398.  ld a,(current)
  399.  dec a
  400.  ld hl,Elements
  401.  call getString
  402.  ld de,6*256+15
  403.  call fvputs
  404.  
  405.  set 3,(iy+$05)
  406.  ld de,57*256+16
  407.  ld hl,Title
  408.  call fvputs
  409.  res 3,(iy+$05)
  410.  
  411.  ld de,35*256+62
  412.  ld hl,HelpStr
  413.  call fvputs
  414.  res 7,(iy+$14)
  415.  ret
  416.  
  417. ElemInfo:
  418.  call Clear
  419.  set 7,(iy+$14)
  420.  ld de,14*256+0
  421.  ld hl,Data
  422.  call fvputs
  423.  ld de,21*256+0
  424.  call fvputs
  425.  ld de,28*256+0
  426.  call fvputs
  427.  ld de,35*256+0
  428.  call fvputs
  429.  
  430.  ld a,(current)
  431.  dec a
  432.  ld de,14*256+45
  433.  ld hl,Elements
  434.  call getString
  435.  call fvputs
  436.  
  437.  ld a,(current)
  438.  dec a
  439.  ld de,21*256+45
  440.  ld hl,Symbols
  441.  call getString
  442.  call fvputs
  443.  
  444.  ld a,(current)
  445.  dec a
  446.  ld de,28*256+45
  447.  ld hl,AtomicNo
  448.  call getString
  449.  call fvputs
  450.  
  451.  ld a,(current)
  452.  dec a
  453.  ld de,35*256+45
  454.  ld hl,MassNo
  455.  call getString
  456.  call fvputs
  457.  
  458.  call _grbufcpy_v
  459.  res 7,(iy+$14)
  460.  call _getkey
  461. RetStart:
  462.  call Clear
  463.  jp   Restart
  464.  
  465. Clear:
  466.  call _clrLCDFull
  467.  jp _grbufclr
  468.  
  469. HelpScreen:
  470.  call Clear
  471.  call _homeup
  472.  ld hl,HelpText
  473.  call _puts
  474.  call _getkey
  475.  call Clear
  476.  jp Restart
  477.  
  478. ;---------= Point hl to string a =---------
  479. ; by: Joe Wingerbermuhle
  480. ; Thanks, this is a lot easier than my
  481. ; method of multiplying string # * 12
  482. ;
  483. ; Input: a=string number (0 to 255)
  484. ;     hl->string data
  485. ; Output: hl->string
  486.  
  487. getString:
  488.  or a
  489.  ret z
  490.  ld b,a
  491.  xor a
  492. getStringL1:
  493.  push bc
  494.  ld c,-1
  495.  cpir 
  496.  pop bc
  497.  djnz getStringL1
  498.  ret
  499.  
  500. fvputs:
  501.  ld (pencol),de
  502.  jp _vputs
  503.  
  504. ;---------------------------------------
  505. ;Data Begins Here
  506. ;---------------------------------------
  507. selectx: .db 0
  508. selecty: .db 0
  509. current: .db 0
  510.  
  511. Title:    .db     " Periodic Table 2.0 ",0
  512. Data:      .db   "Element    :",0
  513.       .db   "Symbol     :",0
  514.       .db    "Atomic No. :",0
  515.       .db   "Atomic Mass:",0
  516. HelpStr:  .db   "Y= : Help",0
  517. HelpText: .db   "-=Help  Screen=-",
  518.       .db   207,5,"-   Move   -",207,5,
  519.       .db    "Enter   -   Info",
  520.       .db   "Mode    -   Quit",
  521.       .db   "Y =     -   Help",
  522.       .db   $0c1,"Ahmed  El-Helw]",0
  523.  
  524. Elements:
  525. .db    "Hydrogen",0
  526. .db    "Helium",0
  527. .db    "Lithium",0
  528. .db    "Beryllium",0
  529. .db    "Boron",0
  530. .db    "Carbon",0
  531. .db    "Nitrogen",0
  532. .db    "Oxygen",0
  533. .db    "Fluorine",0
  534. .db    "Neon",0
  535. .db    "Sodium",0
  536. .db    "Magnesium",0
  537. .db    "Aluminum",0
  538. .db    "Silicon",0
  539. .db    "Phosphorus",0
  540. .db    "Sulfur",0
  541. .db    "Chlorine",0
  542. .db    "Argon",0
  543. .db    "Potassium",0
  544. .db    "Calcium",0
  545. .db    "Scandium",0
  546. .db    "Titanium",0
  547. .db    "Vandium",0
  548. .db    "Chromium",0
  549. .db    "Manganese",0
  550. .db    "Iron",0
  551. .db    "Cobalt",0
  552. .db    "Nickel",0
  553. .db    "Copper",0
  554. .db    "Zinc",0
  555. .db    "Gallium",0
  556. .db    "Germanium",0
  557. .db    "Arsenic",0
  558. .db    "Selenium",0
  559. .db    "Bromine",0
  560. .db    "Krypton",0
  561. .db    "Rubidium",0
  562. .db    "Strontium",0
  563. .db    "Yttrium",0
  564. .db    "Zirconium",0
  565. .db    "Niobium",0
  566. .db    "Molybdenum",0
  567. .db    "Technetium",0
  568. .db    "Ruthenium",0
  569. .db    "Rhodium",0
  570. .db    "Palladium",0
  571. .db    "Silver",0
  572. .db    "Cadmium",0
  573. .db    "Indium",0
  574. .db    "Tin",0
  575. .db    "Antimony",0
  576. .db    "Tellurium",0
  577. .db    "Iodine",0
  578. .db    "Xenon",0
  579. .db    "Cesium",0
  580. .db    "Barium",0
  581. .db    "Lanthanum",0
  582. .db    "Hafnium",0
  583. .db    "Tantalum",0
  584. .db    "Tungsten",0
  585. .db    "Rhenium",0
  586. .db    "Osmium",0
  587. .db    "Iridum",0
  588. .db    "Platinum",0
  589. .db    "Gold",0
  590. .db    "Mercury",0
  591. .db    "Thallium",0
  592. .db    "Lead",0
  593. .db    "Bismuth",0
  594. .db    "Polonium",0
  595. .db    "Astatine",0
  596. .db    "Radon",0
  597. .db    "Francium",0
  598. .db    "Radium",0
  599. .db    "Actinum",0
  600. .db    "Unnilquadium",0
  601. .db    "Unnilpentium",0
  602. .db    "Unnihexium",0
  603. .db    "Unnilseptium",0
  604. .db    "Unniloctium",0
  605. .db    "Unnilennium",0
  606. .db    "Ununnilium",0
  607. ;-----------------------------
  608. .db    "Cerium",0
  609. .db    "Praseodymium",0
  610. .db    "Neodymium",0
  611. .db    "Promethium",0
  612. .db    "Samarium",0
  613. .db    "Europium",0
  614. .db    "Gadolinium",0
  615. .db    "Terbium",0
  616. .db    "Dysprosium",0
  617. .db    "Homium",0
  618. .db    "Erbium",0
  619. .db    "Thulium",0
  620. .db    "Ytterbium",0
  621. .db    "Lutetium",0
  622. .db    "Thorium",0
  623. .db    "Protactinium",0
  624. .db    "Uranium",0
  625. .db    "Neptunium",0
  626. .db    "Plutonium",0
  627. .db    "Americium",0
  628. .db    "Curium",0
  629. .db    "Berkelium",0
  630. .db    "Californium",0
  631. .db    "Einsteinium",0
  632. .db    "Fermium",0
  633. .db    "Mendelevium",0
  634. .db    "Nobelium",0
  635. .db    "Lawrencium",0
  636.  
  637. AtomicNo:
  638. .db "1",0
  639. .db "2",0
  640. .db "3",0
  641. .db "4",0
  642. .db "5",0
  643. .db "6",0
  644. .db "7",0
  645. .db "8",0
  646. .db "9",0
  647. .db "10",0
  648. .db "11",0
  649. .db "12",0
  650. .db "13",0
  651. .db "14",0
  652. .db "15",0
  653. .db "16",0
  654. .db "17",0
  655. .db "18",0
  656. .db "19",0
  657. .db "20",0
  658. .db "21",0
  659. .db "22",0
  660. .db "23",0
  661. .db "24",0
  662. .db "25",0
  663. .db "26",0
  664. .db "27",0
  665. .db "28",0
  666. .db "29",0
  667. .db "30",0
  668. .db "31",0
  669. .db "32",0
  670. .db "33",0
  671. .db "34",0
  672. .db "35",0
  673. .db "36",0
  674. .db "37",0
  675. .db "38",0
  676. .db "39",0
  677. .db "40",0
  678. .db "41",0
  679. .db "42",0
  680. .db "43",0
  681. .db "44",0
  682. .db "45",0
  683. .db "46",0
  684. .db "47",0
  685. .db "48",0
  686. .db "49",0
  687. .db "50",0
  688. .db "51",0
  689. .db "52",0
  690. .db "53",0
  691. .db "54",0
  692. .db "55",0
  693. .db "56",0
  694. .db "57",0
  695. .db "72",0
  696. .db "73",0
  697. .db "74",0
  698. .db "75",0
  699. .db "76",0
  700. .db "77",0
  701. .db "78",0
  702. .db "79",0
  703. .db "80",0
  704. .db "81",0
  705. .db "82",0
  706. .db "83",0
  707. .db "84",0
  708. .db "85",0
  709. .db "86",0
  710. .db "87",0
  711. .db "88",0
  712. .db "89",0
  713. .db "104",0
  714. .db "105",0
  715. .db "106",0
  716. .db "107",0
  717. .db "108",0
  718. .db "109",0
  719. .db "110",0
  720. .db "58",0
  721. .db "59",0
  722. .db "60",0
  723. .db "61",0
  724. .db "62",0
  725. .db "63",0
  726. .db "64",0
  727. .db "65",0
  728. .db "66",0
  729. .db "67",0
  730. .db "68",0
  731. .db "69",0
  732. .db "70",0
  733. .db "71",0
  734. .db "90",0
  735. .db "91",0
  736. .db "92",0
  737. .db "93",0
  738. .db "94",0
  739. .db "95",0
  740. .db "96",0
  741. .db "97",0
  742. .db "98",0
  743. .db "99",0
  744. .db "100",0
  745. .db "101",0
  746. .db "102",0
  747. .db "103",0
  748.  
  749. Symbols:
  750. .db "H",0
  751. .db "He",0
  752. .db "Li",0
  753. .db "Be",0
  754. .db "B",0
  755. .db "C",0
  756. .db "N",0
  757. .db "O",0
  758. .db "F",0
  759. .db "Ne",0
  760. .db "Na",0
  761. .db "Mg",0
  762. .db "Al",0
  763. .db "Si",0
  764. .db "P",0
  765. .db "S",0
  766. .db "Cl",0
  767. .db "Ar",0
  768. .db "K",0
  769. .db "Ca",0
  770. .db "Sc",0
  771. .db "Ti",0
  772. .db "V",0
  773. .db "Cr",0
  774. .db "Mn",0
  775. .db "Fe",0
  776. .db "Co",0
  777. .db "Ni",0
  778. .db "Cu",0
  779. .db "Zn",0
  780. .db "Ga",0
  781. .db "Ge",0
  782. .db "As",0
  783. .db "Se",0
  784. .db "Br",0
  785. .db "Kr",0
  786. .db "Rb",0
  787. .db "Sr",0
  788. .db "Y",0
  789. .db "Zr",0
  790. .db "Nb",0
  791. .db "Mo",0
  792. .db "Tc",0
  793. .db "Ru",0
  794. .db "Rh",0
  795. .db "Pd",0
  796. .db "Ag",0
  797. .db "Cd",0
  798. .db "In",0
  799. .db "Sn",0
  800. .db "Sb",0
  801. .db "Te",0
  802. .db "I",0
  803. .db "Xe",0
  804. .db "Cs",0
  805. .db "Ba",0
  806. .db "La",0
  807. .db "Hf",0
  808. .db "Ta",0
  809. .db "W",0
  810. .db "Re",0
  811. .db "Os",0
  812. .db "Ir",0
  813. .db "Pt",0
  814. .db "Au",0
  815. .db "Hg",0
  816. .db "Tl",0
  817. .db "Pb",0
  818. .db "Bi",0
  819. .db "Po",0
  820. .db "At",0
  821. .db "Rn",0
  822. .db "Fr",0
  823. .db "Ra",0
  824. .db "Ac",0
  825. .db "Unq",0
  826. .db "Unp",0
  827. .db "Unh",0
  828. .db "Uns",0
  829. .db "Uno",0
  830. .db "Une",0
  831. .db "Uun",0
  832. .db "Ce",0
  833. .db "Pr",0
  834. .db "Nd",0
  835. .db "Pm",0
  836. .db "Sm",0
  837. .db "Eu",0
  838. .db "Gd",0
  839. .db "Tb",0
  840. .db "Dy",0
  841. .db "Ho",0
  842. .db "Er",0
  843. .db "Tm",0
  844. .db "Yb",0
  845. .db "Lu",0
  846. .db "Th",0
  847. .db "Pa",0
  848. .db "U",0
  849. .db "Np",0
  850. .db "Pu",0
  851. .db "Am",0
  852. .db "Cm",0
  853. .db "Bk",0
  854. .db "Cf",0
  855. .db "Es",0
  856. .db "Fm",0
  857. .db "Md",0
  858. .db "No",0
  859. .db "Lr",0
  860.  
  861. MassNo:
  862. .db "1.0079",0
  863. .db "4.003",0
  864. .db "6.941",0
  865. .db "9.012",0
  866. .db "10.811",0
  867. .db "12.011",0
  868. .db "14.007",0
  869. .db "15.999",0
  870. .db "18.998",0
  871. .db "20.180",0
  872. .db "22.990",0
  873. .db "24.305",0
  874. .db "26.982",0
  875. .db "28.086",0
  876. .db "30.974",0
  877. .db "32.066",0
  878. .db "35.453",0
  879. .db "39.948",0
  880. .db "39.098",0
  881. .db "40.08",0
  882. .db "44.956",0
  883. .db "47.88",0
  884. .db "50.942",0
  885. .db "51.996",0
  886. .db "54.938",0
  887. .db "55.847",0
  888. .db "58.933",0
  889. .db "58.69",0
  890. .db "63.546",0
  891. .db "65.39",0
  892. .db "69.723",0
  893. .db "72.61",0
  894. .db "74.922",0
  895. .db "78.96",0
  896. .db "79.904",0
  897. .db "83.80",0
  898. .db "85.47",0
  899. .db "87.62",0
  900. .db "88.906",0
  901. .db "91.224",0
  902. .db "92.906",0
  903. .db "95.94",0
  904. .db "(98)",0
  905. .db "101.07",0
  906. .db "102.91",0
  907. .db "106.42",0
  908. .db "107.87",0
  909. .db "112.41",0
  910. .db "114.82",0
  911. .db "118.71",0
  912. .db "121.75",0
  913. .db "127.60",0
  914. .db "126.90",0
  915. .db "131.29",0
  916. .db "132.90",0
  917. .db "137.33",0
  918. .db "138.91",0
  919. .db "178.49",0
  920. .db "180.95",0
  921. .db "183.85",0
  922. .db "186.21",0
  923. .db "190.2",0
  924. .db "192.22",0
  925. .db "195.08",0
  926. .db "196.97",0
  927. .db "200.59",0
  928. .db "204.38",0
  929. .db "207.2",0
  930. .db "208.98",0
  931. .db "(209)",0
  932. .db "(210)",0
  933. .db "(222)",0
  934. .db "(223)",0
  935. .db "(226)",0
  936. .db "(227)",0
  937. .db "(261)",0
  938. .db "(262)",0
  939. .db "(263)",0
  940. .db "(262)",0
  941. .db "(265)",0
  942. .db "(266)",0
  943. .db "(272)",0
  944. .db "140.12",0
  945. .db "140.91",0
  946. .db "144.24",0
  947. .db "(145)",0
  948. .db "150.36",0
  949. .db "151.96",0
  950. .db "157.25",0
  951. .db "158.92",0
  952. .db "162.50",0
  953. .db "164.93",0
  954. .db "167.26",0
  955. .db "168.93",0
  956. .db "173.04",0
  957. .db "174.97",0
  958. .db "232.04",0
  959. .db "231.04",0
  960. .db "238.03",0
  961. .db "(237.05",0
  962. .db "(244)",0
  963. .db "(243)",0
  964. .db "(247)",0
  965. .db "(247)",0
  966. .db "(251)",0
  967. .db "(254)",0
  968. .db "(257)",0
  969. .db "(258)",0
  970. .db "(259)",0
  971. .db "(260)",0
  972.  
  973. .end
  974.