@library chemlib include macros.h ;################# "DET_ELE" ################### ; ==>Input<== ;d1= first char of element ;d2= second char of element ; ==>Output<== ;same as above ;d0= the Atomic Number of Element ;################################################ ;Numbers 0=48 through 9=57 ;Capitol Letters A=65 through Z=90 ;Lowercase Letters a=97 through z=122 label det_ele cmp #65,d1 beq element_A cmp #66,d1 beq element_B cmp #67,d1 beq element_C cmp #68,d1 beq element_D cmp #69,d1 beq element_E cmp #70,d1 beq element_F cmp #71,d1 beq element_G cmp #72,d1 beq element_H cmp #73,d1 beq element_I cmp #75,d1 beq element_K cmp #76,d1 beq element_L cmp #77,d1 beq element_M cmp #78,d1 beq element_N cmp #79,d1 beq element_O cmp #80,d1 beq element_P cmp #81,d1 beq element_R cmp #83,d1 beq element_S cmp #84,d1 beq element_T cmp #85,d1 beq element_U cmp #86,d1 beq element_V cmp #87,d1 beq element_W cmp #88,d1 beq element_X cmp #89,d1 beq element_Y cmp #90,d1 beq element_Z bra exit ;if it doesn't match it's out element_A: cmp #108,d2 beq an_Al cmp #114,d2 beq an_Ar cmp #115,d2 beq an_As cmp #103,d2 beq an_Ag cmp #117,d2 beq an_Au cmp #116,d2 beq an_At cmp #99,d2 beq an_Ac cmp #109,d2 beq an_Am bra exit element_B: cmp #97,d2 blt an_B cmp #101,d2 beq an_Be cmp #114,d2 beq an_Br cmp #97,d2 beq an_Ba cmp #105,d2 beq an_Bi cmp #107,d2 beq an_Bk bra exit element_C: cmp #97,d2 blt an_C cmp #108,d2 beq an_Cl cmp #97,d2 beq an_Ca cmp #114,d2 beq an_Cr cmp #111,d2 beq an_Co cmp #117,d2 beq an_Cu cmp #100,d2 beq an_Cd cmp #115,d2 beq an_Cs cmp #101,d2 beq an_Ce cmp #109,d2 beq an_Cm cmp #102,d2 beq an_Cf bra exit element_D: bra an_Dy element_E: cmp #117,d2 beq an_Eu cmp #114,d2 beq an_Er cmp #115,d2 beq an_Es bra exit element_F: cmp #97,d2 blt an_F cmp #114,d2 beq an_Fr cmp #109,d2 beq an_Fm bra exit element_G: cmp #97,d2 beq an_Ga cmp #101,d2 beq an_Ge cmp #100,d2 beq an_Gd bra exit element_H: cmp #97,d2 blt an_H cmp #101,d2 beq an_He cmp #102,d2 beq an_Hf cmp #103,d2 beq an_Hg cmp #97,d2 beq an_Ha cmp #115,d2 beq an_Hs cmp #111,d2 beq an_Ho bra exit element_I: cmp #97,d2 blt an_I cmp #114,d2 beq an_Ir bra exit element_K: cmp #97,d2 blt an_K cmp #114,d2 beq an_Kr bra exit element_L: cmp #105,d2 beq an_Li cmp #97,d2 beq an_La cmp #117,d2 beq an_Lu cmp #114,d2 beq an_Lr bra exit element_M: cmp #103,d2 beq an_Mg cmp #110,d2 beq an_Mn cmp #111,d2 beq an_Mo cmp #116,d2 beq an_Mt cmp #100,d2 beq an_Md bra exit element_N: cmp #97,d2 blt an_N cmp #101,d2 beq an_Ne cmp #97,d2 beq an_Na cmp #105,d2 beq an_Ni cmp #98,d2 beq an_Nb cmp #115,d2 beq an_Ns cmp #100,d2 beq an_Nd cmp #112,d2 beq an_Np cmp #111,d2 beq an_No bra exit element_O: cmp #97,d2 blt an_O cmp #115,d2 beq an_Os bra exit element_P: cmp #97,d2 blt an_P cmp #100,d2 beq an_Pd cmp #116,d2 beq an_Pt cmp #98,d2 beq an_Pb cmp #111,d2 beq an_Po cmp #114,d2 beq an_Pr cmp #109,d2 beq an_Pm cmp #97,d2 beq an_Pa cmp #117,d2 beq an_Pu bra exit element_R: cmp #98,d2 beq an_Rb cmp #117,d2 beq an_Ru cmp #104,d2 beq an_Rh cmp #101,d2 beq an_Re cmp #110,d2 beq an_Rn cmp #117,d2 beq an_Ru cmp #102,d2 beq an_Rf bra exit element_S: cmp #97,d2 blt an_S cmp #105,d2 beq an_Si cmp #101,d2 beq an_Se cmp #114,d2 beq an_Sr cmp #110,d2 beq an_Sn cmp #98,d2 beq an_Sb cmp #109,d2 beq an_Sm bra exit element_T: cmp #105,d2 beq an_Ti cmp #101,d2 beq an_Te cmp #97,d2 beq an_Ta cmp #108,d2 beq an_Tl cmp #98,d2 beq an_Tb cmp #109,d2 beq an_Tm cmp #104,d2 beq an_Th bra exit element_U: element_V: bra an_V element_W: bra an_W element_X: bra an_Xe element_Y; cmp #98,d2 beq an_Yb bra an_Y element_Z: cmp #110,d2 beq an_Zn bra an_Zr an_H: move.l #1,d0 bra exit an_He: move.l #2,d0 bra exit an_Li: move.l #3,d0 bra exit an_Be: move.l #4,d0 bra exit an_B: move.l #5,d0 bra exit an_C: move.l #6,d0 bra exit an_N: move.l #7,d0 bra exit an_O: move.l #8,d0 bra exit an_F: move.l #9,d0 bra exit an_Ne: move.l #10,d0 bra exit an_Na: move.l #11,d0 bra exit an_Mg: move.l #12,d0 bra exit an_Al: move.l #13,d0 bra exit an_Si: move.l #14,d0 bra exit an_P: move.l #15,d0 bra exit an_S: move.l #16,d0 bra exit an_Cl: move.l #17,d0 bra exit an_Ar: move.l #18,d0 bra exit an_K: move.l #19,d0 bra exit an_Ca: move.l #20,d0 bra exit an_Sc: move.l #21,d0 bra exit an_Ti: move.l #22,d0 bra exit an_V: move.l #23,d0 bra exit an_Cr: move.l #24,d0 bra exit an_Mn: move.l #25,d0 bra exit an_Fe: move.l #26,d0 bra exit an_Co: move.l #27,d0 bra exit an_Ni: move.l #28,d0 bra exit an_Cu: move.l #29,d0 bra exit an_Zn: move.l #30,d0 bra exit an_Ga: move.l #31,d0 bra exit an_Ge: move.l #32,d0 bra exit an_As: move.l #33,d0 bra exit an_Se: move.l #34,d0 bra exit an_Br: move.l #35,d0 bra exit an_Kr: move.l #36,d0 bra exit an_Rb: move.l #37,d0 bra exit an_Sr: move.l #38,d0 bra exit an_Y: move.l #39,d0 bra exit an_Zr: move.l #40,d0 bra exit an_Nb: move.l #41,d0 bra exit an_Mo: move.l #42,d0 bra exit an_Tc: move.l #43,d0 bra exit an_Ru: move.l #44,d0 bra exit an_Rh: move.l #45,d0 bra exit an_Pd: move.l #46,d0 bra exit an_Ag: move.l #47,d0 bra exit an_Cd: move.l #48,d0 bra exit an_In: move.l #49,d0 bra exit an_Sn: move.l #50,d0 bra exit an_Sb: move.l #51,d0 bra exit an_Te: move.l #52,d0 bra exit an_I: move.l #53,d0 bra exit an_Xe: move.l #54,d0 bra exit an_Cs: move.l #55,d0 bra exit an_Ba: move.l #56,d0 bra exit an_La: move.l #57,d0 bra exit an_Ce: move.l #58,d0 bra exit an_Pr: move.l #59,d0 bra exit an_Nd: move.l #60,d0 bra exit an_Pm: move.l #61,d0 bra exit an_Sm: move.l #62,d0 bra exit an_Eu: move.l #63,d0 bra exit an_Gd: move.l #64,d0 bra exit an_Tb: move.l #65,d0 bra exit an_Dy: move.l #66,d0 bra exit an_Ho: move.l #67,d0 bra exit an_Er: move.l #68,d0 bra exit an_Tm: move.l #69,d0 bra exit an_Yb: move.l #70,d0 bra exit an_Lu: move.l #71,d0 bra exit an_Hf: move.l #72,d0 bra exit an_Ta: move.l #73,d0 bra exit an_W: move.l #74,d0 bra exit an_Re: move.l #75,d0 bra exit an_Os: move.l #76,d0 bra exit an_Ir: move.l #77,d0 bra exit an_Pt: move.l #78,d0 bra exit an_Au: move.l #79,d0 bra exit an_Hg: move.l #80,d0 bra exit an_Tl: move.l #81,d0 bra exit an_Pb: move.l #82,d0 bra exit an_Bi: move.l #83,d0 bra exit an_Po: move.l #84,d0 bra exit an_At: move.l #85,d0 bra exit an_Rn: move.l #86,d0 bra exit an_Fr: move.l #87,d0 bra exit an_Ra: move.l #88,d0 bra exit an_Ac: move.l #89,d0 bra exit an_Th: move.l #90,d0 bra exit an_Pa: move.l #91,d0 bra exit an_U: move.l #92,d0 bra exit an_Np: move.l #93,d0 bra exit an_Pu: move.l #94,d0 bra exit an_Am: move.l #95,d0 bra exit an_Cm: move.l #96,d0 bra exit an_Bk: move.l #97,d0 bra exit an_Cf: move.l #98,d0 bra exit an_Es: move.l #99,d0 bra exit an_Fm: move.l #100,d0 bra exit an_Md: move.l #101,d0 bra exit an_No: move.l #102,d0 bra exit an_Lr: move.l #103,d0 bra exit an_Rf: move.l #104,d0 bra exit an_Ha: move.l #105,d0 bra exit an_Sg: move.l #106,d0 bra exit an_Ns: move.l #107,d0 bra exit an_Hs: move.l #108,d0 bra exit an_Mt: move.l #109,d0 bra exit ;########################## End "DET_ELE" ####################### ;################## "ELE_DATA" #################################| ; Input | ;d0= atomic number | ; Output | ;d0= atomic number | ;a1= memory possition of data for element | ;###############################################################| label ele_data lea element_data(pc),a1 subq #1,d0 mulu #16,d0 add d0,a1 bra exit ;################ END "ELE_DATA" ################################ ;@@@@@@@@@@@@@@@@@@ "DISP_DEC" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@| ; =>Input<= ;d3= the number to be displayed ;converts value in d3 into a string in word denominations at a0 ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@| label disp_dec movem.l d0-d7/a0-a6,-(a7) move.l #0,d6 move.l d3,d5 move.l #8,d7 move.l #230,d4 disp_loop: cmp #6,d7 beq put_dot divu #10,d5 ;divides value by 10 with the remainder in the upper 16bits of the register move.w d5,d6 ;saves the divided amount into d1 swap d5 ;swaps the upper and lower 16bits add #48,d5 movem.l d0-d7/a0-a6,-(a7) WriteChar d4,#50,#1,d5 movem.l (a7)+,d0-d7/a0-a6 sub.l #8,d4 move.l d6,d5 dbra d7,disp_loop ;now I print the number movem.l (a7)+,d0-d7/a0-a6 bra exit put_dot: movem.l d0-d7/a0-a6,-(a7) WriteChar d4,#50,#1,#46 movem.l (a7)+,d0-d7/a0-a6 sub #8,d4 sub #1,d7 bra disp_loop ;@@@@@@@@@@@@@@@@@@ END "DISP_DEC" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@| exit: rts ;##################### Library Data ################### element_data ;goes by atomic nuber with the data in this format (all with the decimal point taken out to 2 signifigant figures, ie #x10^-2)--> atomic weight,boiling point,melting point,density in word length dc.l 101 dc.l -25270 dc.l -25920 dc.l 7 dc.l 400 dc.l -26890 dc.l -26970 dc.l 18 dc.l 694 dc.l 132700 dc.l 17900 dc.l 53 dc.l 901 dc.l 277000 dc.l 127700 dc.l 185 dc.l 1081 dc.l 255000 dc.l 203000 dc.l 234 dc.l 1201 dc.l 483000 dc.l 372700 dc.l 262 dc.l 1401 dc.l -19500 dc.l -21000 dc.l 125 dc.l 1600 dc.l -18300 dc.l -21880 dc.l 143 dc.l 1900 dc.l -18820 dc.l -21900 dc.l 170 dc.l 2018 dc.l -24600 dc.l -24860 dc.l 90 dc.l 2299 dc.l 89200 dc.l 9780 dc.l 97 dc.l 2431 dc.l 110700 dc.l 65000 dc.l 174 dc.l 2698 dc.l 245000 dc.l 66000 dc.l 270 dc.l 2809 dc.l 268000 dc.l 141000 dc.l 233 dc.l 3097 dc.l 28000 dc.l 4420 dc.l 182 dc.l 3206 dc.l 44460 dc.l 11900 dc.l 207 dc.l 3545 dc.l -3470 dc.l -10100 dc.l 317 dc.l 3995 dc.l -18580 dc.l -18940 dc.l 178 dc.l 3910 dc.l 76000 dc.l 6370 dc.l 86 dc.l 4008 dc.l 144000 dc.l 83800 dc.l 155 dc.l 4496 dc.l 273000 dc.l 153900 dc.l 300 dc.l 4790 dc.l 326000 dc.l 166800 dc.l 450 dc.l 5094 dc.l 345000 dc.l 190000 dc.l 580 dc.l 5200 dc.l 266500 dc.l 187500 dc.l 719 dc.l 5494 dc.l 215000 dc.l 124500 dc.l 743 dc.l 5585 dc.l 300000 dc.l 153600 dc.l 786 dc.l 5893 dc.l 287000 dc.l 145000 dc.l 890 dc.l 5871 dc.l 273000 dc.l 145300 dc.l 890 dc.l 6354 dc.l 259500 dc.l 108300 dc.l 896 dc.l 6537 dc.l 90600 dc.l 41950 dc.l 714 dc.l 6972 dc.l 223700 dc.l 2980 dc.l 591 dc.l 7259 dc.l 283000 dc.l 93740 dc.l 532 dc.l 7492 dc.l 61500 dc.l 81700 dc.l 572 dc.l 7896 dc.l 68500 dc.l 21700 dc.l 480 dc.l 7991 dc.l 5800 dc.l -720 dc.l 312 dc.l 8380 dc.l -15200 dc.l -15730 dc.l 317 dc.l 8547 dc.l 68800 dc.l 3890 dc.l 153 dc.l 8762 dc.l 138000 dc.l 76800 dc.l 260 dc.l 8891 dc.l 292700 dc.l 150900 dc.l 450 dc.l 9122 dc.l 358000 dc.l 182500 dc.l 649 dc.l 9291 dc.l 492700 dc.l 246800 dc.l 855 dc.l 9594 dc.l 556000 dc.l 261000 dc.l 1020 dc.l 9900 dc.l 503000 dc.l 2200 dc.l 1150 dc.l 10110 dc.l 490000 dc.l 250000 dc.l 1220 dc.l 10291 dc.l 450000 dc.l 196600 dc.l 1240 dc.l 10640 dc.l 398000 dc.l 155200 dc.l 1200 dc.l 10870 dc.l 221000 dc.l 96080 dc.l 1050 dc.l 11240 dc.l 76500 dc.l 32090 dc.l 865 dc.l 11482 dc.l 200000 dc.l 15620 dc.l 731 dc.l 11869 dc.l 227000 dc.l 23190 dc.l 730 dc.l 12175 dc.l 138000 dc.l 63000 dc.l 668 dc.l 12760 dc.l 98980 dc.l 44950 dc.l 624 dc.l 12690 dc.l 18300 dc.l 11370 dc.l 492 dc.l 13130 dc.l -10800 dc.l -11190 dc.l 589 dc.l 13291 dc.l 69000 dc.l 2870 dc.l 187 dc.l 13734 dc.l 16000 dc.l 71400 dc.l 350 dc.l 13890 dc.l 347000 dc.l 92000 dc.l 670 dc.l 14010 dc.l 346800 dc.l 79500 dc.l 678 dc.l 14090 dc.l 312700 dc.l 93500 dc.l 677 dc.l 14420 dc.l 302700 dc.l 102400 dc.l 700 dc.l 14700 dc.l 202700 dc.l 102700 dc.l 647 dc.l 15040 dc.l 190000 dc.l 107200 dc.l 754 dc.l 15200 dc.l 143900 dc.l 82600 dc.l 526 dc.l 15720 dc.l 300000 dc.l 131200 dc.l 789 dc.l 15890 dc.l 280000 dc.l 135600 dc.l 827 dc.l 16250 dc.l 260000 dc.l 140700 dc.l 854 dc.l 16490 dc.l 260000 dc.l 146100 dc.l 880 dc.l 16730 dc.l 290000 dc.l 149700 dc.l 905 dc.l 16890 dc.l 172700 dc.l 154500 dc.l 933 dc.l 17300 dc.l 142700 dc.l 82400 dc.l 698 dc.l 17500 dc.l 332700 dc.l 165200 dc.l 984 dc.l 178 dc.l 540000 dc.l 222200 dc.l 1310 dc.l 18095 dc.l 542500 dc.l 299600 dc.l 1660 dc.l 18385 dc.l 593000 dc.l 341000 dc.l 1930 dc.l 18620 dc.l 590000 dc.l 318000 dc.l 2100 dc.l 19020 dc.l 550000 dc.l 300000 dc.l 2240 dc.l 19220 dc.l 530000 dc.l 245400 dc.l 2250 dc.l 19509 dc.l 453000 dc.l 176900 dc.l 2140 dc.l 19697 dc.l 297000 dc.l 106300 dc.l 2140 dc.l 20059 dc.l 35660 dc.l -3890 dc.l 1353 dc.l 20437 dc.l 145700 dc.l 30300 dc.l 1185 dc.l 20437 dc.l 172500 dc.l 32740 dc.l 1140 dc.l 20898 dc.l 156000 dc.l 27130 dc.l 980 dc.l 21000 dc.l 96200 dc.l 25400 dc.l 940 dc.l 21000 dc.l 33700 dc.l 30200 dc.l 000 dc.l 22200 dc.l 6180 dc.l -7100 dc.l 991 dc.l 22300 dc.l 67700 dc.l 2700 dc.l 000 dc.l 22600 dc.l 152500 dc.l 70000 dc.l 500 dc.l 22700 dc.l 320000 dc.l 105000 dc.l 1007 dc.l 23200 dc.l 385000 dc.l 175000 dc.l 1170 dc.l 23100 dc.l 402700 dc.l 123000 dc.l 1540 dc.l 23800 dc.l 381800 dc.l 113200 dc.l 1890 dc.l 23700 dc.l 390200 dc.l 63700 dc.l 2040 dc.l 24200 dc.l 323500 dc.l 64000 dc.l 1980 dc.l 24300 dc.l 260000 dc.l 99400 dc.l 1360 dc.l 24300 dc.l 0000 dc.l 134000 dc.l 1351 dc.l 24700 dc.l 0000 dc.l 0000 dc.l 0000 dc.l 24900 dc.l 0000 dc.l 0000 dc.l 0000 dc.l 25400 dc.l 0000 dc.l 0000 dc.l 0000 dc.l 25300 dc.l 0000 dc.l 0000 dc.l 0000 dc.l 25600 dc.l 0000 dc.l 0000 dc.l 0000 dc.l 25500 dc.l 0000 dc.l 0000 dc.l 0000 dc.l 25700 dc.l 0000 dc.l 0000 dc.l 0000 dc.l 25700 dc.l 0000 dc.l 0000 dc.l 0000 dc.l 25900 dc.l 267300 dc.l 607300 dc.l 2300 dc.l 26100 dc.l 0000 dc.l 0000 dc.l 2900 dc.l 26300 dc.l 0000 dc.l 0000 dc.l 3500 dc.l 26200 dc.l 0000 dc.l 0000 dc.l 3700 dc.l 26400 dc.l 0000 dc.l 0000 dc.l 4100 dc.l 26600 dc.l 0000 dc.l 0000 dc.l 0000 ;*************** End of Fargo library **************** reloc_open add_library romlib add_library flib reloc_close end