.nolist ; #include "tse.inc" ; TSE include file .list ; .org userMem-3 ; Program origin .db $BB,$6D ; Program variable header ret ; RET for TI-OS .db "TSE",1 ; TSE Header .db " UltraPeriodic Table v0.1", 0 ; Program Title .dw 20 ; External Data Required start: bcall(_clrLCDFull) ld hl, 0000h ld (pencol),hl ld hl,title bcall(_vputs) ld hl,0700h ld (pencol),hl ld hl,author bcall(_vputs) ld hl,0e00h ld (pencol),hl ld hl,web bcall(_vputs) ld hl,3917h ld (pencol),hl ld hl,prompt bcall(_vputs) keyloop: bcall(_getcsc) cp $37 ret z cp 0 jr z,keyloop bcall(_clrLCDFull) ld a,1 ld (currentelement),a call dispinfo mainloop: halt bcall(_getcsc) cp 2 ;left key jp z,moveleft cp 3 ;right key jp z,moveright cp 4 ;up key jp z,moveup cp 1 ;downkey jp z,movedown cp $37 ret z cp skStat jr nz,dontyield call _tseForceYield call dispinfo dontyield: jr mainloop moveright: ld a,(currentelement) cp 118 jp z,mainloop cp 112 call z,doubleinc cp 114 call z,doubleinc cp 116 call z,doubleinc ld a,(currentelement) inc a ld (currentelement),a call dispinfo jp mainloop moveleft: ld a,(currentelement) cp 1 jp z,mainloop cp 118 call z,doubledec cp 116 call z,doubledec cp 114 call z,doubledec ld a,(currentelement) dec a ld (currentelement),a call dispinfo jp mainloop moveup: ld a,(currentelement) cp 109 jp nc,mainloop cp 107 call z,lower cp 105 call z,lower cp 103 call z,lower ld b,10 add a,b ld (currentelement),a call dispinfo jp mainloop movedown: ld a,(currentelement) cp 11 jp c,mainloop ld b,10 sub b ld (currentelement),a call dispinfo jp mainloop lower: dec a ret dispinfo: ld a,(currentelement) bcall(_clrLCDFull) ld hl,0000h ld (pencol),hl dec a ld hl,Elements call getString bcall(_vputs) ld hl,dash bcall(_vputs) ld a,(currentelement) dec a ld hl,Symbols call getString bcall(_vputs) ld hl,0e00h ld (pencol),hl ld hl,atomicnumber bcall(_vputs) ld a,(currentelement) ld h,0 ld l,a bcall(_setxxxxop2) bcall(_op2toop1) ld a,3 bcall(_dispop1a) ld hl,1500h ld (pencol),hl ld hl,atomicweight bcall(_vputs) ld a,(currentelement) dec a ld hl,Weight call getString bcall(_vputs) ret doubledec: dec a ld (currentelement),a ret doubleinc: inc a ld (currentelement),a ret getString: or a ret z ld b,a xor a getStringL1: push bc ld c,-1 cpir pop bc djnz getStringL1 ret Elements: .db "Hydrogen",0 .db "Helium",0 .db "Lithium",0 .db "Beryllium",0 .db "Boron",0 .db "Carbon",0 .db "Nitrogen",0 .db "Oxygen",0 .db "Flourine",0 .db "Neon",0 .db "Sodium",0 .db "Magnesium",0 .db "Aluminum",0 .db "Silicon",0 .db "Phosphorus",0 .db "Sulfur",0 .db "Chlorine",0 .db "Argon",0 .db "Potassium",0 .db "Calcium",0 .db "Scandium",0 .db "Titanium",0 .db "Vanadium",0 .db "Chromium",0 .db "Manganese",0 .db "Iron",0 .db "Cobalt",0 .db "Nickel",0 .db "Copper",0 .db "Zinc",0 .db "Gallium",0 .db "Germanium",0 .db "Arsenic",0 .db "Selenium",0 .db "Bromine",0 .db "Krypton",0 .db "Rubidium",0 .db "Strontium",0 .db "Yttrium",0 .db "Zirconium",0 .db "Niobium",0 .db "Molybdenium",0 .db "Technetium",0 .db "Ruthenium",0 .db "Rhodium",0 .db "Palladium",0 .db "Silver",0 .db "Cadmium",0 .db "Indium",0 .db "Tin",0 .db "Antimony",0 .db "Tellurium",0 .db "Iodine",0 .db "Xenon",0 .db "Cesium",0 .db "Barium",0 .db "Lanthanum",0 .db "Cerium",0 .db "Praseodymium",0 .db "Neodymium",0 .db "Promethium",0 .db "Samarium",0 .db "Europium",0 .db "Gadolinium",0 .db "Terbium",0 .db "Dysprosium",0 .db "Holmium",0 .db "Erbium",0 .db "Thulium",0 .db "Ytterbium",0 .db "Lutetium",0 .db "Hafnium",0 .db "Tantalum",0 .db "Tungsten",0 .db "Rhenium",0 .db "Osmium",0 .db "Iridium",0 .db "Platinum",0 .db "Gold",0 .db "Mercury",0 .db "Thallium",0 .db "Lead",0 .db "Bismuth",0 .db "Polonium",0 .db "Astatine",0 .db "Radon",0 .db "Francium",0 .db "Radium",0 .db "Actinium",0 .db "Thorium",0 .db "Protactinium",0 .db "Uranium",0 .db "Neptunium",0 .db "Plutonium",0 .db "Americium",0 .db "Curium",0 .db "Berkelium",0 .db "Californium",0 .db "Einsteinium",0 .db "Fermium",0 .db "Mendelevium",0 .db "Nobelium",0 .db "Lawrencium",0 .db "Rutherfordium",0 .db "Dubnium",0 .db "Seaborgium",0 .db "Bohrium",0 .db "Hassium",0 .db "Meitnerium",0 .db "Ununnilium",0 .db "Unununium",0 .db "Ununbium",0 .db " ",0 .db "Ununquadium",0 .db " ",0 .db "Ununhexium",0 .db " ",0 .db "Ununoctium",0 Symbols: .db "H",0 .db "He",0 .db "Li",0 .db "Be",0 .db "B",0 .db "C",0 .db "N",0 .db "O",0 .db "F",0 .db "Ne",0 .db "Na",0 .db "Mg",0 .db "Al",0 .db "Si",0 .db "P",0 .db "S",0 .db "Cl",0 .db "Ar",0 .db "K",0 .db "Ca",0 .db "Sc",0 .db "Ti",0 .db "V",0 .db "Cr",0 .db "Mn",0 .db "Fe",0 .db "Co",0 .db "Ni",0 .db "Cu",0 .db "Zn",0 .db "Ga",0 .db "Ge",0 .db "As",0 .db "Se",0 .db "Br",0 .db "Kr",0 .db "Rb",0 .db "Sr",0 .db "Y",0 .db "Zr",0 .db "Nb",0 .db "Mo",0 .db "Tc",0 .db "Ru",0 .db "Rh",0 .db "Pd",0 .db "Ag",0 .db "Cd",0 .db "In",0 .db "Sn",0 .db "Sb",0 .db "Te",0 .db "I",0 .db "Xe",0 .db "Cs",0 .db "Ba",0 .db "La",0 .db "Ce",0 .db "Pr",0 .db "Nd",0 .db "Pm",0 .db "Sm",0 .db "Eu",0 .db "Gd",0 .db "Tb",0 .db "Dy",0 .db "Ho",0 .db "Er",0 .db "Tm",0 .db "Yb",0 .db "Lu",0 .db "Hf",0 .db "Ta",0 .db "W",0 .db "Re",0 .db "Os",0 .db "Ir",0 .db "Pt",0 .db "Au",0 .db "Hg",0 .db "Tl",0 .db "Pb",0 .db "Bi",0 .db "Po",0 .db "At",0 .db "Rn",0 .db "Fr",0 .db "Ra",0 .db "Ac",0 .db "Th",0 .db "Pa",0 .db "U",0 .db "Np",0 .db "Pu",0 .db "Am",0 .db "Cm",0 .db "Bk",0 .db "Cf",0 .db "Es",0 .db "Fm",0 .db "Md",0 .db "No",0 .db "Lr",0 .db "Rf",0 .db "Db",0 .db "Sg",0 .db "Bh",0 .db "Hs",0 .db "Mt",0 .db "Uun",0 .db "Uuu",0 .db "Uub",0 .db " ",0 .db "Uuq",0 .db " ",0 .db "Uuh",0 .db " ",0 .db "Uuo",0 Weight: .db "1.00794",0 .db "4.002602",0 .db "6.941",0 .db "9.012982",0 .db "10.811",0 .db "12.0107",0 .db "14.00674",0 .db "15.9994",0 .db "18.9984032",0 .db "20.1797",0 .db "22.98977",0 .db "24.305",0 .db "26.981538",0 .db "28.0855",0 .db "30.973761",0 .db "32.066",0 .db "35.4527",0 .db "39.948",0 .db "39.0983",0 .db "40.078",0 .db "44.95591",0 .db "47.867",0 .db "50.9415",0 .db "51.9961",0 .db "54.938049",0 .db "55.845",0 .db "58.9332",0 .db "58.6934",0 .db "63.546",0 .db "65.39",0 .db "69.723",0 .db "72.61",0 .db "74.9216",0 .db "78.96",0 .db "79.904",0 .db "83.8",0 .db "85.4678",0 .db "87.62",0 .db "88.90585",0 .db "91.224",0 .db "92.90638",0 .db "95.94",0 .db "(98.9063)",0 .db "101.07",0 .db "102.9055",0 .db "106.42",0 .db "107.8682",0 .db "112.411",0 .db "114.818",0 .db "118.71",0 .db "121.76",0 .db "127.6",0 .db "126.9044",0 .db "131.29",0 .db "132.90545",0 .db "137.327",0 .db "138.9055",0 .db "140.116",0 .db "140.90765",0 .db "144.24",0 .db "(144.9127)",0 .db "150.36",0 .db "151.964",0 .db "157.25",0 .db "158.92534",0 .db "162.5",0 .db "164.93032",0 .db "167.26",0 .db "168.93421",0 .db "173.04",0 .db "174.967",0 .db "178.49",0 .db "180.9479",0 .db "183.84",0 .db "186.207",0 .db "190.23",0 .db "192.217",0 .db "195.078",0 .db "196.96655",0 .db "200.59",0 .db "24.3833",0 .db "207.2",0 .db "208.98038",0 .db "208.9824",0 .db "209.9871",0 .db "222.0176",0 .db "(223.0197)",0 .db "(226.0254)",0 .db "(227.0277)",0 .db "232.0281",0 .db "231.03588",0 .db "238.0289",0 .db "(237.0482)",0 .db "(244.0642)",0 .db "(243.0614)",0 .db "(247.0703)",0 .db "(247.0703)",0 .db "(251.0796)",0 .db "(252.083)",0 .db "(257.0951)",0 .db "(258.0984)",0 .db "(259.1011)",0 .db "(262.11)",0 .db "(261.1089)",0 .db "(262.1144)",0 .db "(263.1186)",0 .db "(264.12)",0 .db "(265.1306)",0 .db "(268)",0 .db "(269)",0 .db "(272)",0 .db "(277)",0 .db " ",0 .db "(289)",0 .db " ",0 .db "(289)",0 .db " ",0 .db "(293)",0 currentelement: .db 0 title: .db "Elements v1.0",0 author: .db "Radical Software",0 web: .db "www.radicalsoft.org",0 prompt: .db "- Press any key -",0 dash: .db " - ",0 atomicnumber: .db "Atomic #: ",0 atomicweight: .db "Atomic Weight: ",0 .end