molmassa: ld a, 1 ld (methode), a jp equation2 molmassaback: ;we kunnen heel appBackUpScreen(eerste 256bytes lijkt me toch niet) gebruiken, ;gebruik makend van 2 stacks: stTblAtom, stTblAtomQt ld a, 0 ld (pencolstart), a ;we moeten precies weten hoeveel list items we gaan maken call draaiom ld c, 0;counter volgendeMolecuul2:;verkleinde versie van die hieronder, zodat hij precies tzelfde werkt en dus precies evenveel list items ziet volgendeAtom2: ld hl, stTblAtom call stackarPop or a jr z, volgendeMolecuul2_ cp 250 jr z, volgendeAtom2_ jr volgendeAtom2 volgendeAtom2_: inc c jr volgendeMolecuul2 volgendeMolecuul2_: ld b, 0 push bc ld hl, list6 b_call (_mov9toop1) b_call (_findsym) jr c, found4 b_call (_delvararc) found4: ld a, (matDim) inc a pop hl;length b_call (_createrlist) inc de inc de push de b_call (_clrlcdfull) ld hl, 0 ld (penCol), hl xor a ld (methode1var), a ld (activeRow), a res textinverse, (iy + textflags) call draaiom ld hl, 0 ld (pencol), hl ;call showmolecule ;ld hl, stTblAtom ;call stackarPop ;ld hl, sttblatomqt ;call stackarpopde ;ld hl, stTblAtom ;call stackarunget ;ld hl, sttblatomqt ;call stackarungetde setf (whichtbl);zo displayed ie geen lading ld a, 0 ld (pencolstart), a volgendeMolecuul: ld hl, sttblatom call stackargetix push af call showmolecule;weenie wat deze functie verklooid maar zo werkt t iig ld hl, sttblatom pop af push af call stackarsetix pop af ld hl, sttblatomqt call stackarsetixde b_call (_op5set0);op5 = totale getal volgendeAtom: ld hl, stTblAtom call stackarPop or a jr z, volgendeMolecuul_ cp 250 jr z, volgendeAtom_ cp 150;lading weegt niks(bijna.....) jr z, volgendeAtomSkip ;a = atomNummer ld h, 0 ld l, a call hlx9;9bytes per entry in atomListMass ld de, atomListMass - 9 add hl, de b_call (_mov9toop1);op1 = mass atom ld hl, stTblATomqt call stackarPopDe ex de, hl b_call (_setxxxxop2);op2 = quantity atom b_call (_fpmult) b_call (_op5toop2) b_call (_fpadd) b_call (_op1toop5);op5 += op1 * op2 jr volgendeAtom volgendeAtomSkip: ld hl, stTblAtomqt call stackarPopDe;junk - keep same index jr volgendeAtom volgendeAtom_: call showop5_2 jr volgendeMolecuul volgendeMolecuul_: pop hl;junk b_call (_getkey) cp kTrace jp z, _end jp menu2 showop5_2: ld hl, stTblAtomqt call stackarPopDe;junk - keep same index ld a, (pencolstart) ld (penCol), a b_call (_op5toop1) ld a, 11 b_call (_dispop1a) ld a, (penRow) add a, 16 ld (penRow), a dontPrint0: b_call (_PushRealO5) pop hl;ret gebeuren pop de push hl;backup b_call (_popreal) pop hl;restore push de push hl;ret gebeuren ret draaiom: ;we draaien de stacks om, anders krijgen we eerst massa van laatste molecuul ld hl, stTblAtom ld a, 0 call stackPush call stackFlush; ld hl, sttblatomqt call stackflush ld hl, stTblAtom call stackarPop;eerste is toch 0 ld hl, sttblatomqt call stackarpopde;junk - keep same index ret