Advertisement
arriopolis

Untitled

May 12th, 2011
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 81.13 KB | None | 0 0
  1. .nolist
  2. #include "ti83plus.inc"
  3. #define ProgStart $9D95
  4. Cycle .equ 0
  5. Point .equ 1
  6. Exponent .equ 2
  7. .list
  8. .org ProgStart - 2
  9. .db t2ByteTok, tAsmCmp
  10. ;Flags:
  11. ;Asm_flag1: 0: RES = Output of menu in C
  12. ; SET = Output of menu in L
  13. ; 1: RES = Display the first 8 lines of text in the mainscreen
  14. ; SET = Display the last 8 lines of text in the mainscreen
  15. ; 2: RES = Van hasn't been entered yet
  16. ; SET = Van has already been entered
  17. ; 3: RES = HelpMenu is off
  18. ; SET = HelpMenu is on
  19. SET TextWrite, (IY + SGrFlags)
  20. RES 1, (IY + Asm_flag1)
  21. RES 2, (IY + Asm_flag1)
  22. MainMenu:
  23. CALL Menu
  24. .DB " Mol: ", 0 ;The menutitle (16 characters and a 0)
  25. .DB 4 ;The number of options
  26. .DB "Rekenschema " ;The first option
  27. .DB "Berekenen " ;The second option
  28. .DB "Credits " ;The fourth option
  29. .DB "Afsluiten " ;The third option
  30. BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
  31. JR Z, OutputInC ;If the flag is reset, the output is in C
  32. LD A, L ;Load L into A
  33. JR Checking ;Go ahead to check the option
  34. OutputInC:
  35. LD A, C ;Load C into A
  36. Checking:
  37. CP 1 ;If the option selected is 1...
  38. JR Z, Rekenschema ;Goto Rekenschema
  39. CP 2 ;If the option selected is 2...
  40. JP Z, Berekenen ;Goto Berekenen
  41. CP 3 ;If the option selected is 3...
  42. JP Z, Credits ;Goto Credits
  43. CP 4 ;If the option selected is 4...
  44. JP Z, Afsluiten ;Goto Afsluiten
  45.  
  46. ;Rekenschema------------------------------------------------------------------------------------------------------------------------
  47. Rekenschema:
  48. CALL GraphClear
  49. ;Scherm 1: Het hoofdscherm..........................................................................................................
  50. ;Next, drawing the left part of the screen, which is fixed
  51. LD HL, RekenschemaDisplay ;Load the start address of the image into HL
  52. LD DE, PlotSScreen + 12 ;Load the address to store the image
  53. LD A, 54 ;54 rows of pixels
  54. DrawNextLine:
  55. LD BC, 5 ;5 bytes per row (40 pixels)
  56. LDIR ;Move the bytes to the desired location
  57. EX DE, HL ;DE = Address of image, HL = Address of PlotSScreen
  58. PUSH DE ;Store it temporarely
  59. LD DE, 7 ;Add 7 to HL
  60. ADD HL, DE
  61. POP DE ;Restore DE
  62. EX DE, HL ;HL = Address of image, DE = Address of PlotSScreen (incremented by 7)
  63. DEC A ;Decline one row
  64. JR NZ, DrawNextLine ;If there are more rows to draw, go back to DrawNextLine
  65. b_call(_GrBufCpy) ;Draw the actual image
  66.  
  67. ;Next stop, the menubar
  68. BIT 2, (IY + Asm_flag1) ;Check the flag
  69. JR Z, MainScreenVanNotBeenEntered
  70. LD HL, MenuBar11011 ;Load the lable into HL
  71. JR DrawMenuBar
  72. MainScreenVanNotBeenEntered:
  73. LD HL, MenuBar11001 ;Load the lable into HL
  74. DrawMenuBar:
  75. LD DE, PlotSScreen + 684 ;684 bytes to skip in PlotSScreen
  76. LD BC, 84 ;84 bytes to display
  77. LDIR ;Move the bytes into PlotSScreen
  78. b_call(_GrBufCpy) ;Refresh the graphscreen
  79.  
  80. MainScreenTextDraw:
  81. b_call(_GrBufCpy) ;Erase all the texts
  82. ;Drawing the title
  83. LD HL, $001E ;Load the pen
  84. LD (PenCol), HL
  85. LD HL, RekenschemaText ;Load the text
  86. b_call(_VPutS) ;Display the text
  87. ;Now, the text to the right
  88. ;C = the number of rows
  89. ;DE = Address of PenRow
  90. ;HL = Address of text to display
  91. LD C, 8 ;Load the number of rows of text
  92. LD HL, $0627 ;Load the cursor
  93. LD (PenCol), HL
  94. LD DE, PenRow ;Load the address of PenRow into DE
  95. BIT 1, (IY + Asm_flag1) ;Check if the flag is set or reset
  96. JR NZ, TextScrolledDown ;If it's set, goto textscrolleddown
  97. LD HL, RekenschemaText1 ;Load the address of the text into HL
  98. JR DisplayTextRekenSchema
  99. TextScrolledDown:
  100. LD HL, RekenschemaText2 ;Load the address of the text into HL
  101. DisplayTextRekenschema:
  102. LD A, $27 ;Set PenCol to $27
  103. LD (PenCol), A
  104. b_call(_VPutS) ;Display the text
  105. EX DE, HL ;DE = Address of text, HL = PenRow
  106. LD B, 6 ;6 pixels down for next row
  107. Incline_HL_:
  108. INC (HL) ;Incline PenRow
  109. DJNZ Incline_HL_ ;Repeat this 6 times
  110. EX DE, HL ;DE = PenRow, HL = Address of text
  111. DEC C ;Decline C
  112. JR NZ, DisplayTextRekenschema ;Repeat this 8 times
  113. b_call(_GrBufCpy)
  114. SchermHomeGetKey:
  115. b_call(_getKey) ;Wait for a key to be pressed
  116. CP kDown ;If down is pressed...
  117. JR Z, TextScrollSet ;Goto set the scrolltext flag
  118. CP kUp ;If up is pressed...
  119. JR Z, TextScrollReset ;Goto reset the scrolltext flag
  120. CP k1
  121. JP Z, Scherm1
  122. CP k2
  123. JP Z, Scherm2
  124. CP k3
  125. JP Z, Scherm3
  126. CP k4
  127. JP Z, Scherm4
  128. CP k5
  129. JP Z, Scherm5
  130. CP k6
  131. JP Z, Scherm6
  132. CP k7
  133. JP Z, Scherm7
  134. CP k8
  135. JP Z, Scherm8
  136. Cp k9
  137. JP Z, Scherm9
  138. CP k0
  139. JP Z, Scherm0
  140. CP kAdd
  141. JP Z, SchermPlus
  142. CP kYequ
  143. JP Z, MainMenu
  144. BIT 3, (IY + Asm_Flag1)
  145. JR NZ, SchermHomeHelpMenuOn
  146. CP kGraph
  147. CALL Z, HelpMenu
  148. JP SchermHomeGetKey
  149. SchermHomeHelpMenuOn:
  150. CP kGraph
  151. JR NZ, SchermHomeGetKey
  152. RES 3, (IY + Asm_Flag1)
  153. JP Rekenschema
  154. RET
  155.  
  156. TextScrollReset:
  157. RES 1, (IY + Asm_flag1)
  158. JP MainScreenTextDraw
  159. TextScrollSet:
  160. SET 1, (IY + Asm_flag1)
  161. JP MainScreenTextDraw
  162.  
  163. ;De andere schermen.................................................................................................................
  164. DrawMenuBar2:
  165. LD DE, PlotSScreen + 684
  166. LD BC, 84
  167. LDIR
  168. b_call(_GrBufCpy)
  169. RET
  170.  
  171. SchermSelect:
  172. RES 3, (IY + Asm_Flag1)
  173. PUSH AF
  174. CALL GraphClear
  175. POP AF
  176. BIT 4, A
  177. PUSH AF
  178. CALL Z, DisplayVakjeMidden
  179. POP AF
  180. BIT 0, A
  181. PUSH AF
  182. CALL NZ, DisplayVakjeOnder
  183. POP AF
  184. BIT 1, A
  185. PUSH AF
  186. CALL NZ, DisplayVakjeBoven
  187. POP AF
  188. BIT 2, A
  189. PUSH AF
  190. CALL NZ, DisplayVakjeRechts
  191. POP AF
  192. BIT 3, A
  193. PUSH AF
  194. CALL NZ, DisplayVakjeLinks
  195. POP AF
  196. BIT 5, A
  197. PUSH AF
  198. CALL NZ, DisplayLineHorizontal
  199. POP AF
  200. BIT 2, (IY + Asm_flag1)
  201. JR Z, DisplayMenuBar11101
  202. LD HL, MenuBar11111
  203. JR ContinueSchermSelect
  204. DisplayMenuBar11101:
  205. LD HL, MenuBar11101
  206. ContinueSchermSelect:
  207. CALL DrawMenuBar2
  208. RET
  209.  
  210. Scherm1:
  211. LD A, %00000010
  212. CALL SchermSelect
  213. LD HL, $1625
  214. LD (PenCol), HL
  215. LD HL, VolumeText
  216. b_call(_VPutS)
  217. LD DE, $1C2C
  218. LD (PenCol), DE
  219. b_call(_VPutS)
  220. LD DE, $0227
  221. LD (PenCol), DE
  222. b_call(_VPutS)
  223. LD HL, $0C21
  224. LD (PenCol), HL
  225. LD HL, DichtheidText
  226. b_call(_VPutS)
  227. b_call(_GrBufCpy)
  228. Scherm1GetKey:
  229. b_call(_getKey)
  230. CP kUP
  231. JP Z, Scherm7
  232. CP kYequ
  233. JP Z, MainMenu
  234. CP kZoom
  235. JP Z, Rekenschema
  236. BIT 3, (IY + Asm_Flag1)
  237. JR NZ, Scherm1HelpMenuOn
  238. CP kGraph
  239. CALL Z, HelpMenu
  240. JP Scherm1GetKey
  241. Scherm1HelpMenuOn:
  242. CP kGraph
  243. JR NZ, Scherm1GetKey
  244. RES 3, (IY + Asm_Flag1)
  245. JR Scherm1
  246.  
  247. Scherm2:
  248. LD A, %00000011
  249. CALL SchermSelect
  250. LD HL, $1627
  251. LD (PenCol), HL
  252. LD HL, MassaText
  253. b_call(_VPutS)
  254. LD DE, $1C2F
  255. LD (PenCol), DE
  256. b_call(_VPutS)
  257. LD DE, $021F
  258. LD (PenCol), DE
  259. b_call(_VPutS)
  260. LD HL, $2F25
  261. LD (PenCol), HL
  262. LD HL, VolumeText
  263. b_call(_VPutS)
  264. LD HL, $0C18
  265. LD (PenCol), HL
  266. LD HL, MolairGewichtText
  267. b_call(_VPutS)
  268. LD HL, $2621
  269. LD (PenCol), HL
  270. LD HL, DichtheidText
  271. b_call(_VPutS)
  272. b_call(_GrBufCpy)
  273. Scherm2GetKey:
  274. b_call(_getKey)
  275. CP kDown
  276. JP Z, Scherm7
  277. CP kUp
  278. JP Z, Scherm8
  279. CP kYequ
  280. JP Z, MainMenu
  281. CP kZoom
  282. JP Z, Rekenschema
  283. BIT 3, (IY + Asm_Flag1)
  284. JR NZ, Scherm2HelpMenuOn
  285. CP kGraph
  286. CALL Z, HelpMenu
  287. JP Scherm2GetKey
  288. Scherm2HelpMenuOn:
  289. CP kGraph
  290. JR NZ, Scherm2GetKey
  291. RES 3, (IY + Asm_Flag1)
  292. JR Scherm2
  293.  
  294. Scherm3:
  295. LD A, %00001111
  296. CALL SchermSelect
  297. LD DE, PlotSScreen + 624
  298. LD HL, LinksCapL
  299. CALL DisplayCharacter2
  300. LD HL, LinksI
  301. CALL DisplayCharacter2
  302. LD HL, LinksT
  303. CALL DisplayCharacter2
  304. LD HL, LinksE
  305. CALL DisplayCharacter2
  306. LD HL, LinksR
  307. CALL DisplayCharacter2
  308. CALL Spatie2
  309. LD HL, LinksO
  310. CALL DisplayCharacter2
  311. LD HL, LinksP
  312. CALL DisplayCharacter2
  313. LD HL, LinksL
  314. CALL DisplayCharacter2
  315. LD HL, LinksO
  316. CALL DisplayCharacter2
  317. LD HL, LinksS
  318. CALL DisplayCharacter2
  319. LD HL, LinksS
  320. CALL DisplayCharacter2
  321. LD HL, LinksI
  322. CALL DisplayCharacter2
  323. LD HL, LinksN
  324. CALL DisplayCharacter2
  325. LD HL, LinksG
  326. CALL DisplayCharacter2
  327. LD DE, PlotSScreen + 601
  328. LD HL, LinksCapC
  329. CALL DisplayCharacter2
  330. LD HL, LinksO
  331. CALL DisplayCharacter2
  332. LD HL, LinksN
  333. CALL DisplayCharacter2
  334. LD HL, LinksC
  335. CALL DisplayCharacter2
  336. LD HL, LinksE
  337. CALL DisplayCharacter2
  338. LD HL, LinksN
  339. CALL DisplayCharacter2
  340. LD HL, LinksT
  341. CALL DisplayCharacter2
  342. LD HL, LinksR
  343. CALL DisplayCharacter2
  344. LD HL, LinksA
  345. CALL DisplayCharacter2
  346. LD HL, LinksT
  347. CALL DisplayCharacter2
  348. LD HL, LinksI
  349. CALL DisplayCharacter2
  350. LD HL, LinksE
  351. CALL DisplayCharacter2
  352. LD DE, PlotSScreen + 143
  353. LD HL, RechtsCapG
  354. CALL DisplayCharacter
  355. LD HL, RechtsA
  356. CALL DisplayCharacter
  357. LD HL, RechtsS
  358. CALL DisplayCharacter
  359. LD HL, RechtsV
  360. CALL DisplayCharacter
  361. LD HL, RechtsO
  362. CALL DisplayCharacter
  363. LD HL, RechtsL
  364. CALL DisplayCharacter
  365. LD HL, RechtsU
  366. CALL DisplayCharacter
  367. LD HL, RechtsM
  368. CALL DisplayCharacter
  369. LD HL, RechtsE
  370. CALL DisplayCharacter
  371. LD DE, PlotSScreen + 82
  372. LD HL, RechtsCapM
  373. CALL DisplayCharacter
  374. LD HL, RechtsO
  375. CALL DisplayCharacter
  376. LD HL, RechtsL
  377. CALL DisplayCharacter
  378. LD HL, RechtsA
  379. CALL DisplayCharacter
  380. LD HL, RechtsI
  381. CALL DisplayCharacter
  382. LD HL, RechtsR
  383. CALL DisplayCharacter
  384. CALL Spatie
  385. LD HL, RechtsV
  386. CALL DisplayCharacter
  387. LD HL, RechtsO
  388. CALL DisplayCharacter
  389. LD HL, RechtsL
  390. CALL DisplayCharacter
  391. LD HL, RechtsU
  392. CALL DisplayCharacter
  393. LD HL, RechtsM
  394. CALL DisplayCharacter
  395. LD HL, RechtsE
  396. CALL DisplayCharacter
  397. LD HL, $161F
  398. LD (PenCol), HL
  399. LD HL, AantalMolText
  400. b_call(_VPutS)
  401. LD DE, $1C2C
  402. LD (PenCol), DE
  403. b_call(_VPutS)
  404. LD DE, $0213
  405. LD (PenCol), DE
  406. b_call(_VPutS)
  407. LD HL, $0C1A
  408. LD (PenCol), HL
  409. LD HL, MolGetalText
  410. b_call(_VPutS)
  411. LD HL, $2F27
  412. LD (PenCol), HL
  413. LD HL, MassaText
  414. b_call(_VPutS)
  415. LD HL, $2618
  416. LD (PenCol), HL
  417. LD HL, MolairGewichtText
  418. b_call(_VPutS)
  419. b_call(_GrBufCpy)
  420. Scherm3GetKey:
  421. b_call(_getKey)
  422. CP kDown
  423. JP Z, Scherm8
  424. CP kUp
  425. JP Z, Scherm9
  426. CP kLeft
  427. JP Z, SchermPlus
  428. CP kRight
  429. JP Z, Scherm0
  430. CP kYequ
  431. JP Z, MainMenu
  432. CP kZoom
  433. JP Z, Rekenschema
  434. BIT 3, (IY + Asm_Flag1)
  435. JR NZ, Scherm3HelpMenuOn
  436. CP kGraph
  437. CALL Z, HelpMenu
  438. JP Scherm3GetKey
  439. Scherm3HelpMenuOn:
  440. CP kGraph
  441. JR NZ, Scherm3GetKey
  442. RES 3, (IY + Asm_Flag1)
  443. JP Scherm3
  444.  
  445. Scherm4:
  446. LD A, %00000001
  447. CALL SchermSelect
  448. LD HL, $1613
  449. LD (PenCol), HL
  450. LD HL, AantalMoleculenText
  451. b_call(_VPutS)
  452. LD DE, $1C17
  453. LD (PenCol), DE
  454. b_call(_VPutS)
  455. LD DE, $2F1E
  456. LD (PenCol), DE
  457. LD HL, AantalMolText
  458. b_call(_VPutS)
  459. LD DE, $261A
  460. LD (PenCol), DE
  461. LD HL, MolGetalText
  462. b_call(_VPutS)
  463. b_call(_GrBufCpy)
  464. Scherm4GetKey:
  465. b_call(_getKey)
  466. CP kDown
  467. JP Z, Scherm9
  468. CP kYequ
  469. JP Z, MainMenu
  470. CP kZoom
  471. JP Z, Rekenschema
  472. BIT 3, (IY + Asm_Flag1)
  473. JR NZ, Scherm4HelpMenuOn
  474. CP kGraph
  475. CALL Z, HelpMenu
  476. JP Scherm4GetKey
  477. Scherm4HelpMenuOn:
  478. CP kGraph
  479. JR NZ, Scherm4GetKey
  480. RES 3, (IY + Asm_Flag1)
  481. JR Scherm4
  482.  
  483. Scherm5:
  484. LD A, %00001000
  485. CALL SchermSelect
  486. LD DE, PlotSScreen + 625
  487. LD HL, LinksCapM
  488. CALL DisplayCharacter2
  489. LD HL, LinksO
  490. CALL DisplayCharacter2
  491. LD HL, LinksL
  492. CALL DisplayCharacter2
  493. LD HL, LinksA
  494. CALL DisplayCharacter2
  495. LD HL, LinksI
  496. CALL DisplayCharacter2
  497. LD HL, LinksR
  498. CALL DisplayCharacter2
  499. CALL Spatie2
  500. LD HL, LinksV
  501. CALL DisplayCharacter2
  502. LD HL, LinksO
  503. CALL DisplayCharacter2
  504. LD HL, LinksL
  505. CALL DisplayCharacter2
  506. LD HL, LinksU
  507. CALL DisplayCharacter2
  508. LD HL, LinksM
  509. CALL DisplayCharacter2
  510. LD HL, LinksE
  511. CALL DisplayCharacter2
  512. LD DE, PlotSScreen + 552
  513. LD HL, LinksCapA
  514. CALL DisplayCharacter2
  515. LD HL, LinksA
  516. CALL DisplayCharacter2
  517. LD HL, LinksN
  518. CALL DisplayCharacter2
  519. LD HL, LinksT
  520. CALL DisplayCharacter2
  521. LD HL, LinksA
  522. CALL DisplayCharacter2
  523. LD HL, LinksL
  524. CALL DisplayCharacter2
  525. CALL Spatie2
  526. LD HL, LinksM
  527. CALL DisplayCharacter2
  528. LD HL, LinksO
  529. CALL DisplayCharacter2
  530. LD HL, LinksL
  531. CALL DisplayCharacter2
  532. LD HL, $161F
  533. LD (PenCol), HL
  534. LD HL, GasvolumeText
  535. b_call(_VPutS)
  536. LD DE, $1C2B
  537. LD (PenCol), DE
  538. b_call(_VPutS)
  539. b_call(_GrBufCpy)
  540. Scherm5GetKey:
  541. b_call(_getKey)
  542. CP kLeft
  543. JP Z, Scherm0
  544. CP kYequ
  545. JP Z, MainMenu
  546. CP kZoom
  547. JP Z, Rekenschema
  548. BIT 3, (IY + Asm_Flag1)
  549. JR NZ, Scherm5HelpMenuOn
  550. CP kGraph
  551. CALL Z, HelpMenu
  552. JP Scherm5GetKey
  553. Scherm5HelpMenuOn:
  554. CP kGraph
  555. JR NZ, Scherm5GetKey
  556. RES 3, (IY + Asm_Flag1)
  557. JP Scherm5
  558.  
  559. Scherm6:
  560. LD A, %00000100
  561. CALL SchermSelect
  562. LD DE, PlotSScreen + 143
  563. LD HL, RechtsCapA
  564. CALL DisplayCharacter
  565. LD HL, RechtsA
  566. CALL Displaycharacter
  567. LD HL, RechtsN
  568. CALL Displaycharacter
  569. LD HL, RechtsT
  570. CALL Displaycharacter
  571. LD HL, RechtsA
  572. CALL Displaycharacter
  573. LD HL, RechtsL
  574. CALL Displaycharacter
  575. CALL Spatie
  576. LD HL, RechtsM
  577. CALL Displaycharacter
  578. LD HL, RechtsO
  579. CALL Displaycharacter
  580. LD HL, RechtsL
  581. CALL Displaycharacter
  582. LD DE, PlotSScreen + 94
  583. LD HL, RechtsCapC
  584. CALL DisplayCharacter
  585. LD HL, RechtsO
  586. CALL DisplayCharacter
  587. LD HL, RechtsN
  588. CALL DisplayCharacter
  589. LD HL, RechtsC
  590. CALL DisplayCharacter
  591. LD HL, RechtsE
  592. CALL DisplayCharacter
  593. LD HL, RechtsN
  594. CALL DisplayCharacter
  595. LD HL, RechtsT
  596. CALL DisplayCharacter
  597. LD HL, RechtsR
  598. CALL DisplayCharacter
  599. LD HL, RechtsA
  600. CALL DisplayCharacter
  601. LD HL, RechtsT
  602. CALL DisplayCharacter
  603. LD HL, RechtsI
  604. CALL DisplayCharacter
  605. LD HL, RechtsE
  606. CALL DisplayCharacter
  607. LD HL, $1618
  608. LD (PenCol), HL
  609. LD HL, LiterOplossingText
  610. b_call(_VPutS)
  611. LD DE, $1C2F
  612. LD (PenCol), DE
  613. b_call(_VPutS)
  614. b_call(_GrBufCpy)
  615. Scherm6GetKey:
  616. b_call(_getKey)
  617. CP kRight
  618. JP Z, SchermPlus
  619. CP kYequ
  620. JP Z, MainMenu
  621. CP kZoom
  622. JP Z, Rekenschema
  623. BIT 3, (IY + Asm_Flag1)
  624. JR NZ, Scherm6HelpMenuOn
  625. CP kGraph
  626. CALL Z, HelpMenu
  627. JP Scherm6GetKey
  628. Scherm6HelpMenuOn:
  629. CP kGraph
  630. JR NZ, Scherm6GetKey
  631. RES 3, (IY + Asm_Flag1)
  632. JP Scherm6
  633.  
  634. Scherm7:
  635. LD A, %00010011
  636. CALL SchermSelect
  637. LD HL, $1621
  638. LD (PenCol), HL
  639. LD HL, DichtheidText
  640. b_call(_VPutS)
  641. LD DE, $1C27
  642. LD (PenCol), DE
  643. b_call(_VPutS)
  644. LD HL, $2F25
  645. LD (PenCol), HL
  646. LD HL, VolumeText
  647. b_call(_VPutS)
  648. LD HL, $0227
  649. LD (PenCol), HL
  650. LD HL, MassaText
  651. b_call(_VPutS)
  652. LD HL, $0D32
  653. LD (PenCol), HL
  654. LD HL, UpMultiply
  655. b_call(_VPutS)
  656. LD HL, $2632
  657. LD (PenCol), HL
  658. LD HL, UpMultiply
  659. b_call(_VPutS)
  660. LD HL, $0D28
  661. LD (PenCol), HL
  662. LD HL, DownDevide
  663. b_call(_VPutS)
  664. LD HL, $2628
  665. LD (PenCol), HL
  666. LD HL, DownDevide
  667. b_call(_VPutS)
  668. b_call(_GrBufCpy)
  669. Scherm7GetKey:
  670. b_call(_getKey)
  671. CP kUP
  672. JP Z, Scherm2
  673. CP kDown
  674. JP Z, Scherm1
  675. CP kYequ
  676. JP Z, MainMenu
  677. CP kZoom
  678. JP Z, Rekenschema
  679. BIT 3, (IY + Asm_Flag1)
  680. JR NZ, Scherm7HelpMenuOn
  681. CP kGraph
  682. CALL Z, HelpMenu
  683. JP Scherm7GetKey
  684. Scherm7HelpMenuOn:
  685. CP kGraph
  686. JR NZ, Scherm7GetKey
  687. RES 3, (IY + Asm_Flag1)
  688. JP Scherm7
  689.  
  690. Scherm8:
  691. LD A, %00010011
  692. CALL SchermSelect
  693. LD HL, $1618
  694. LD (PenCol), HL
  695. LD HL, MolairGewichtText
  696. b_call(_VPutS)
  697. LD DE, $1C27
  698. LD (PenCol), DE
  699. b_call(_VPutS)
  700. LD HL, $2F27
  701. LD (PenCol), HL
  702. LD HL, MassaText
  703. b_call(_VPutS)
  704. LD HL, $021F
  705. LD (PenCol), HL
  706. LD HL, AantalMolText
  707. b_call(_VPutS)
  708. LD HL, $0D32
  709. LD (PenCol), HL
  710. LD HL, UpDevide
  711. b_call(_VPutS)
  712. LD HL, $2632
  713. LD (PenCol), HL
  714. LD HL, UpDevide
  715. b_call(_VPutS)
  716. LD HL, $0D26
  717. LD (PenCol), HL
  718. LD HL, DownMultiply
  719. b_call(_VPutS)
  720. LD HL, $2626
  721. LD (PenCol), HL
  722. LD HL, DownMultiply
  723. b_call(_VPutS)
  724. b_call(_GrBufCpy)
  725. Scherm8GetKey:
  726. b_call(_getKey)
  727. CP kUp
  728. JP Z, Scherm3
  729. CP kDown
  730. JP Z, Scherm2
  731. CP kYequ
  732. JP Z, MainMenu
  733. CP kZoom
  734. JP Z, Rekenschema
  735. BIT 3, (IY + Asm_Flag1)
  736. JR NZ, Scherm8HelpMenuOn
  737. CP kGraph
  738. CALL Z, HelpMenu
  739. JP Scherm8GetKey
  740. Scherm8HelpMenuOn:
  741. CP kGraph
  742. JR NZ, Scherm8GetKey
  743. RES 3, (IY + Asm_Flag1)
  744. JP Scherm8
  745.  
  746. Scherm9:
  747. LD A, %00010011
  748. CALL SchermSelect
  749. LD HL, MenuBar10101
  750. CALL DrawMenuBar2
  751. LD HL, $161A
  752. LD (PenCol), HL
  753. LD HL, MolGetalText
  754. b_call(_VPutS)
  755. LD DE, $1C17
  756. LD (PenCol), DE
  757. b_call(_VPutS)
  758. LD HL, $0213
  759. LD (PenCol), HL
  760. LD HL, AantalMoleculenText
  761. b_call(_VPutS)
  762. LD HL, $2F1F
  763. LD (PenCol), HL
  764. LD HL, AantalMolText
  765. b_call(_VPutS)
  766. LD HL, $0D32
  767. LD (PenCol), HL
  768. LD HL, UpMultiply
  769. b_call(_VPutS)
  770. LD HL, $2632
  771. LD (PenCol), HL
  772. LD HL, UpMultiply
  773. b_call(_VPutS)
  774. LD HL, $0D28
  775. LD (PenCol), HL
  776. LD HL, DownDevide
  777. b_call(_VPutS)
  778. LD HL, $2628
  779. LD (PenCol), HL
  780. LD HL, DownDevide
  781. b_call(_VPutS)
  782. b_call(_GrBufCpy)
  783. Scherm9GetKey:
  784. b_call(_getKey)
  785. CP kUP
  786. JP Z, Scherm4
  787. CP kDown
  788. JP Z, Scherm3
  789. CP kYequ
  790. JP Z, MainMenu
  791. CP kZoom
  792. JP Z, Rekenschema
  793. BIT 3, (IY + Asm_Flag1)
  794. JR NZ, Scherm9HelpMenuOn
  795. CP kGraph
  796. CALL Z, HelpMenu
  797. JP Scherm9GetKey
  798. Scherm9HelpMenuOn:
  799. CP kGraph
  800. JR NZ, Scherm9GetKey
  801. RES 3, (IY + Asm_Flag1)
  802. JP Scherm9
  803.  
  804. Scherm0:
  805. LD A, %00111100
  806. CALL SchermSelect
  807. LD DE, PlotSScreen + 552
  808. LD HL, LinksCapA
  809. CALL DisplayCharacter2
  810. LD HL, LinksA
  811. CALL DisplayCharacter2
  812. LD HL, LinksN
  813. CALL DisplayCharacter2
  814. LD HL, LinksT
  815. CALL DisplayCharacter2
  816. LD HL, LinksA
  817. CALL DisplayCharacter2
  818. LD HL, LinksL
  819. CALL DisplayCharacter2
  820. CALL Spatie2
  821. LD HL, LinksM
  822. CALL DisplayCharacter2
  823. LD HL, LinksO
  824. CALL DisplayCharacter2
  825. LD HL, LinksL
  826. CALL DisplayCharacter2
  827. LD DE, PlotSScreen + 143
  828. LD HL, RechtsCapG
  829. CALL DisplayCharacter
  830. LD HL, RechtsA
  831. CALL DisplayCharacter
  832. LD HL, RechtsS
  833. CALL DisplayCharacter
  834. LD HL, RechtsV
  835. CALL DisplayCharacter
  836. LD HL, RechtsO
  837. CALL DisplayCharacter
  838. LD HL, RechtsL
  839. CALL DisplayCharacter
  840. LD HL, RechtsU
  841. CALL DisplayCharacter
  842. LD HL, RechtsM
  843. CALL DisplayCharacter
  844. LD HL, RechtsE
  845. CALL DisplayCharacter
  846. LD HL, $1619
  847. LD (PenCol), HL
  848. LD HL, MolairVolumeText
  849. b_call(_VPutS)
  850. LD DE, $1C23
  851. LD (PenCol), DE
  852. b_call(_VPutS)
  853. b_call(_GrBufCpy)
  854. Scherm0GetKey:
  855. b_call(_getKey)
  856. CP kLeft
  857. JP Z, Scherm3
  858. CP kRight
  859. JP Z, Scherm5
  860. CP kYequ
  861. JP Z, MainMenu
  862. CP kZoom
  863. JP Z, Rekenschema
  864. BIT 3, (IY + Asm_Flag1)
  865. JR NZ, Scherm0HelpMenuOn
  866. CP kGraph
  867. CALL Z, HelpMenu
  868. JP Scherm0GetKey
  869. Scherm0HelpMenuOn:
  870. CP kGraph
  871. JR NZ, Scherm0GetKey
  872. RES 3, (IY + Asm_Flag1)
  873. JP Scherm0
  874.  
  875. SchermPlus:
  876. LD A, %00111100
  877. CALL SchermSelect
  878. LD DE, PlotSScreen + 624
  879. LD HL, LinksCapL
  880. CALL DisplayCharacter2
  881. LD HL, LinksI
  882. CALL DisplayCharacter2
  883. LD HL, LinksT
  884. CALL DisplayCharacter2
  885. LD HL, LinksE
  886. CALL DisplayCharacter2
  887. LD HL, LinksR
  888. CALL DisplayCharacter2
  889. CALL Spatie2
  890. LD HL, LinksO
  891. CALL DisplayCharacter2
  892. LD HL, LinksP
  893. CALL DisplayCharacter2
  894. LD HL, LinksL
  895. CALL DisplayCharacter2
  896. LD HL, LinksO
  897. CALL DisplayCharacter2
  898. LD HL, LinksS
  899. CALL DisplayCharacter2
  900. LD HL, LinksS
  901. CALL DisplayCharacter2
  902. LD HL, LinksI
  903. CALL DisplayCharacter2
  904. LD HL, LinksN
  905. CALL DisplayCharacter2
  906. LD HL, LinksG
  907. CALL DisplayCharacter2
  908. LD DE, PlotSScreen + 143
  909. LD HL, RechtsCapA
  910. CALL DisplayCharacter
  911. LD HL, RechtsA
  912. CALL Displaycharacter
  913. LD HL, RechtsN
  914. CALL Displaycharacter
  915. LD HL, RechtsT
  916. CALL Displaycharacter
  917. LD HL, RechtsA
  918. CALL Displaycharacter
  919. LD HL, RechtsL
  920. CALL Displaycharacter
  921. CALL Spatie
  922. LD HL, RechtsM
  923. CALL Displaycharacter
  924. LD HL, RechtsO
  925. CALL Displaycharacter
  926. LD HL, RechtsL
  927. CALL Displaycharacter
  928. LD HL, $161A
  929. LD (PenCol), HL
  930. LD HL, ConcentratieText
  931. b_call(_VPutS)
  932. LD DE, $1C27
  933. LD (PenCol), DE
  934. b_call(_VPutS)
  935. b_call(_GrBufCpy)
  936. SchermPlusGetKey:
  937. b_call(_getKey)
  938. CP kLeft
  939. JP Z, Scherm6
  940. CP kRight
  941. JP Z, Scherm3
  942. CP kYequ
  943. JP Z, MainMenu
  944. CP kZoom
  945. JP Z, Rekenschema
  946. BIT 3, (IY + Asm_Flag1)
  947. JR NZ, SchermPlusHelpMenuOn
  948. CP kGraph
  949. CALL Z, HelpMenu
  950. JP SchermPlusGetKey
  951. SchermPlusHelpMenuOn:
  952. CP kGraph
  953. JR NZ, SchermPlusGetKey
  954. RES 3, (IY + Asm_Flag1)
  955. JP SchermPlus
  956.  
  957. DisplayVakjeMidden:
  958. LD HL, VakjeMidden
  959. LD DE, PlotSScreen + 254
  960. LD BC, 8
  961. LD A, 16
  962. MoveImage:
  963. LDIR
  964. EX DE, HL
  965. PUSH DE
  966. LD DE, 4
  967. ADD HL, DE
  968. POP DE
  969. EX DE, HL
  970. LD BC, 8
  971. DEC A
  972. JR NZ, MoveImage
  973. b_call(_GrBufCpy)
  974. RET
  975.  
  976. DisplayVakjeBoven:
  977. LD HL, VakjeMidden
  978. LD DE, PlotSScreen + 14
  979. LD BC, 8
  980. LD A, 8
  981. MoveImage2:
  982. LDIR
  983. EX DE, HL
  984. PUSH DE
  985. LD DE, 4
  986. ADD HL, DE
  987. POP DE
  988. EX DE, HL
  989. LD BC, 8
  990. DEC A
  991. JR NZ, MoveImage2
  992. LD HL, VakjeMiddenOnderkant
  993. LD BC, 8
  994. LD A, 2
  995. MoveImage3:
  996. LDIR
  997. EX DE, HL
  998. PUSH DE
  999. LD DE, 4
  1000. ADD HL, DE
  1001. POP DE
  1002. EX DE, HL
  1003. LD BC, 8
  1004. DEC A
  1005. JR NZ, MoveImage3
  1006. EX DE, HL
  1007. LD DE, 4
  1008. ADD HL, DE
  1009. EX DE, HL
  1010. LD HL, LijnVerticaal
  1011. LD BC, 1
  1012. LD A, 10
  1013. MoveImage4:
  1014. LDIR
  1015. EX DE, HL
  1016. PUSH DE
  1017. LD DE, 11
  1018. ADD HL, DE
  1019. POP DE
  1020. EX DE, HL
  1021. LD BC, 1
  1022. DEC A
  1023. JR NZ, MoveImage4
  1024. b_call(_GrBufCpy)
  1025. RET
  1026.  
  1027. DisplayVakjeOnder:
  1028. LD HL, LijnVerticaal
  1029. LD DE, PlotSScreen + 450
  1030. LD BC, 1
  1031. LD A, 9
  1032. MoveImage5:
  1033. LDIR
  1034. EX DE, HL
  1035. PUSH DE
  1036. LD DE, 11
  1037. ADD HL, DE
  1038. POP DE
  1039. EX DE, HL
  1040. LD BC, 1
  1041. DEC A
  1042. JR NZ, MoveImage5
  1043. EX DE, HL
  1044. LD DE, 4
  1045. OR A
  1046. SBC HL, DE
  1047. EX DE, HL
  1048. LD HL, VakjeMidden
  1049. LD BC, 8
  1050. LD A, 8
  1051. MoveImage6:
  1052. LDIR
  1053. EX DE, HL
  1054. PUSH DE
  1055. LD DE, 4
  1056. ADD HL, DE
  1057. POP DE
  1058. EX DE, HL
  1059. LD BC, 8
  1060. DEC A
  1061. JR NZ, MoveImage6
  1062. LD HL, VakjeMiddenOnderkant
  1063. LD BC, 8
  1064. LD A, 2
  1065. MoveImage7:
  1066. LDIR
  1067. EX DE, HL
  1068. PUSH DE
  1069. LD DE, 4
  1070. ADD HL, DE
  1071. POP DE
  1072. EX DE, HL
  1073. LD BC, 8
  1074. DEC A
  1075. JR NZ, MoveImage7
  1076. b_call(_GrBufCpy)
  1077. RET
  1078.  
  1079. DisplayVakjeLinks:
  1080. LD HL, VakjeZijkantLinks
  1081. LD DE, PlotSScreen + 24
  1082. LD BC, 2
  1083. LD A, 54
  1084. MoveImage8:
  1085. LDIR
  1086. EX DE, HL
  1087. PUSH DE
  1088. LD DE, 10
  1089. ADD HL, DE
  1090. POP DE
  1091. EX DE, HL
  1092. LD BC, 2
  1093. DEC A
  1094. JR NZ, MoveImage8
  1095. b_call(_GrBufCpy)
  1096. RET
  1097.  
  1098. DisplayVakjeRechts:
  1099. LD IX, VakjeZijkantLinks
  1100. LD HL, PlotSScreen + 34
  1101. LD B, 54
  1102. MoveImage9:
  1103. LD E, (IX)
  1104. LD A, (IX + 1)
  1105. SRL E
  1106. RRA
  1107. SRL E
  1108. RRA
  1109. SRL E
  1110. RRA
  1111. SRL E
  1112. RRA
  1113. SRL E
  1114. RRA
  1115. LD (HL), E
  1116. INC HL
  1117. LD (HL), A
  1118. LD DE, 11
  1119. ADD HL, DE
  1120. INC IX
  1121. INC IX
  1122. DJNZ MoveImage9
  1123. b_call(_GrBufCpy)
  1124. RET
  1125.  
  1126. ;Displaying characters
  1127. ;Input: DE = Address in RAM
  1128. ;Input: HL = Address of letter
  1129. DisplayCharacter:
  1130. LD B, (HL)
  1131. INC HL
  1132. UpdatePlotSScreen:
  1133. LD A, (DE)
  1134. OR (HL)
  1135. LD (DE), A
  1136. INC HL
  1137. LD C, 12
  1138. InclineDE:
  1139. INC DE
  1140. DEC C
  1141. JR NZ, InclineDE
  1142. DJNZ UpdatePlotSScreen
  1143. Spatie:
  1144. EX DE, HL
  1145. LD DE, 12
  1146. ADD HL, DE
  1147. EX DE, HL
  1148. RET
  1149.  
  1150. DisplayCharacter2:
  1151. LD B, (HL)
  1152. INC HL
  1153. UpdatePlotSScreen2:
  1154. LD A, (DE)
  1155. OR (HL)
  1156. LD (DE), A
  1157. INC HL
  1158. LD C, 12
  1159. DeclineDE2:
  1160. DEC DE
  1161. DEC C
  1162. JR NZ, DeclineDE2
  1163. DJNZ UpdatePlotSScreen2
  1164. Spatie2:
  1165. EX DE, HL
  1166. LD DE, 12
  1167. OR A
  1168. SBC HL, DE
  1169. EX DE, HL
  1170. RET
  1171.  
  1172. HelpMenu:
  1173. SET 3, (IY + Asm_Flag1)
  1174. LD HL, HelpMenuBovenkant
  1175. LD DE, PlotSScreen + 192
  1176. LD BC, 12
  1177. LDIR
  1178. LD A, 37
  1179. DisplayHelpMenuMidden:
  1180. LD HL, HelpMenuMidden
  1181. LD BC, 12
  1182. LDIR
  1183. DEC A
  1184. JR NZ, DisplayHelpMenuMidden
  1185. LD BC, 24
  1186. LDIR
  1187. b_call(_GrBufCpy)
  1188. ;Next: Text
  1189. LD HL, $110C
  1190. LD (PenCol), HL
  1191. LD HL, HelpMenuText
  1192. b_call(_VPutS)
  1193. LD DE, $1705
  1194. LD (PenCol), DE
  1195. b_call(_VPutS)
  1196. LD DE, $1D0C
  1197. LD (PenCol), DE
  1198. b_call(_VPutS)
  1199. LD DE, $2310
  1200. LD (PenCol), DE
  1201. b_call(_VPutS)
  1202. LD DE, $2916
  1203. LD (PenCol), DE
  1204. b_call(_VPutS)
  1205. LD DE, $2F16
  1206. LD (PenCol), DE
  1207. b_call(_VPutS)
  1208. b_call(_GrBufCpy)
  1209. RET
  1210.  
  1211. DisplayLineHorizontal:
  1212. LD HL, LijnHorizontaal
  1213. LD DE, PlotSScreen + 325
  1214. LD B, 10
  1215. Hehe:
  1216. LD A, (DE)
  1217. OR (HL)
  1218. LD (DE), A
  1219. INC HL
  1220. INC DE
  1221. DJNZ Hehe
  1222. LD HL, ArrowLeft
  1223. LD DE, PlotSScreen + 278
  1224. CALL DisplayCharacter
  1225. LD HL, ArrowLeft
  1226. LD DE, PlotSScreen + 285
  1227. CALL DisplayCharacter
  1228. LD HL, ArrowRight
  1229. LD DE, PlotSScreen + 350
  1230. CALL DisplayCharacter
  1231. LD HL, ArrowRight
  1232. LD DE, PlotSScreen + 357
  1233. CALL DisplayCharacter
  1234. LD HL, SideDevide
  1235. LD DE, PlotSScreen + 230
  1236. CALL DisplayCharacter
  1237. LD HL, SideDevide
  1238. LD DE, PlotSScreen + 237
  1239. CALL DisplayCharacter
  1240. LD HL, SideMultiply
  1241. LD DE, PlotSScreen + 398
  1242. CALL DisplayCharacter
  1243. LD HL, SideMultiply
  1244. LD DE, PlotSScreen + 405
  1245. CALL DisplayCharacter
  1246. b_call(_GrBufCpy)
  1247. RET
  1248.  
  1249. ;-----------------------------------------------------------------------------------------------------------------------------------
  1250. Berekenen:
  1251. CALL Menu
  1252. .DB " Van: ", 0
  1253. .DB 7
  1254. .DB "Volume "
  1255. .DB "Massa "
  1256. .DB "Aantal mol "
  1257. .DB "Aantal molecu "
  1258. .DB "Gasvolume "
  1259. .DB "Liter oplossi "
  1260. .DB "Anders "
  1261. BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
  1262. JR Z, OutputInC2 ;If the flag is reset, the output is in C
  1263. LD A, L ;Load L into A
  1264. JR Checking2 ;Go ahead to check the option
  1265. OutputInC2:
  1266. LD A, C ;Load C into A
  1267. Checking2:
  1268. LD D, A
  1269. CP 7
  1270. JR NZ, BerekenenNaar
  1271. CALL Menu
  1272. .DB " Van (vervolg): ", 0
  1273. .DB 5
  1274. .DB "Dichtheid "
  1275. .DB "Molair gewicht"
  1276. .DB "Molair volume "
  1277. .DB "Concentratie "
  1278. .DB "Terug "
  1279. BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
  1280. JR Z, OutputInC3 ;If the flag is reset, the output is in C
  1281. LD A, L ;Load L into A
  1282. JR Checking3 ;Go ahead to check the option
  1283. OutputInC3:
  1284. LD A, C ;Load C into A
  1285. Checking3:
  1286. CP 5
  1287. JP Z, MainMenu
  1288. ADD A, 6
  1289. LD D, A
  1290.  
  1291. BerekenenNaar:
  1292. PUSH DE
  1293. CALL Menu
  1294. .DB " Naar: ", 0
  1295. .DB 7
  1296. .DB "Volume "
  1297. .DB "Massa "
  1298. .DB "Aantal mol "
  1299. .DB "Aantal molecu "
  1300. .DB "Gasvolume "
  1301. .DB "Liter oplossi "
  1302. .DB "Anders "
  1303. BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
  1304. JR Z, OutputInC4 ;If the flag is reset, the output is in C
  1305. LD A, L ;Load L into A
  1306. JR Checking4 ;Go ahead to check the option
  1307. OutputInC4:
  1308. LD A, C ;Load C into A
  1309. Checking4:
  1310. POP DE
  1311. LD E, A
  1312. CP 7
  1313. JR NZ, BerekenenScherm
  1314. PUSH DE
  1315. CALL Menu
  1316. .DB " Naar (vervolg):", 0
  1317. .DB 5
  1318. .DB "Dichtheid "
  1319. .DB "Molair gewicht"
  1320. .DB "Molair volume "
  1321. .DB "Concentratie "
  1322. .DB "Terug "
  1323. BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
  1324. JR Z, OutputInC5 ;If the flag is reset, the output is in C
  1325. LD A, L ;Load L into A
  1326. JR Checking5 ;Go ahead to check the option
  1327. OutputInC5:
  1328. LD A, C ;Load C into A
  1329. Checking5:
  1330. POP DE
  1331. CP 5
  1332. JP Z, MainMenu
  1333. ADD A, 6
  1334. LD E, A
  1335.  
  1336. BerekenenScherm:
  1337. PUSH DE
  1338. LD HL, HelpMenuBovenkant
  1339. LD DE, PlotSScreen + 3*12
  1340. LD BC, 12
  1341. LDIR
  1342. LD A, 51
  1343. BerekenenSchermDisplayMidden:
  1344. LD HL, HelpMenuMidden
  1345. LD BC, 12
  1346. LDIR
  1347. DEC A
  1348. JR NZ, BerekenenSchermDisplayMidden
  1349. LD BC, 24
  1350. LDIR
  1351. LD HL, $041D
  1352. LD (PenCol), HL
  1353. LD HL, ResultatenText
  1354. b_call(_VPutS)
  1355. CALL BerekenenSchermOpslaan
  1356. LD HL, $0103
  1357. LD (CurRow), HL
  1358. POP DE
  1359. LD A, 1
  1360. CP D
  1361. JR Z, VanIsVolume
  1362. INC A
  1363. CP D
  1364. JP Z, VanIsMassa
  1365. INC A
  1366. CP D
  1367. JP Z, VanIsAantalMol
  1368. INC A
  1369. CP D
  1370. JP Z, VanIsAantalMoleculen
  1371. INC A
  1372. CP D
  1373. JP Z, VanIsGasvolume
  1374. INC A
  1375. CP D
  1376. JP Z, VanIsAantalLiterOplossing
  1377. INC A
  1378. CP D
  1379. JP Z, VanIsDichtheid
  1380. INC A
  1381. CP D
  1382. JP Z, VanIsMolairGewicht
  1383. INC A
  1384. CP D
  1385. JP Z, VanIsMolairVolume
  1386. JP VanIsConcentratie
  1387.  
  1388. VanIsVolume:
  1389. PUSH DE
  1390. CALL InputVolume
  1391. CALL BerekenenSchermDisplay
  1392. LD HL, $0A08
  1393. LD (PenCol), HL
  1394. LD HL, InputTextVolume
  1395. b_call(_VPutS)
  1396. CALL BerekenenSchermGetal
  1397. b_call(_GrBufCpy)
  1398. CALL BerekenenSchermOpslaan
  1399. POP DE
  1400. LD A, E
  1401. CP 1
  1402. JR NZ, VanIsVolume_NaarIsNietVolume
  1403. b_call(_getKey)
  1404. JP MainMenu
  1405.  
  1406. VanIsVolume_NaarIsNietVolume:
  1407. CP 7
  1408. JR NZ, VanIsVolume_NaarIsNietDichtheid
  1409. b_call(_OP1ExOP2)
  1410. CALL InputMassa
  1411. CALL BerekenenSchermDisplay
  1412. LD A, $0A
  1413. LD (PenRow), A
  1414. CALL BerekenenSchermDiv
  1415. LD HL, InputTextMassa
  1416. b_call(_VPutS)
  1417. CALL BerekenenSchermGetal
  1418. b_call(_FPDiv)
  1419. CALL BerekenenSchermRecip
  1420. LD HL, InputTextDichtheid
  1421. b_call(_VPutS)
  1422. CALL BerekenenSchermGetal
  1423. b_call(_GrBufCpy)
  1424. b_call(_getKey)
  1425. JP MainMenu
  1426.  
  1427. VanIsVolume_NaarIsNietDichtheid:
  1428. PUSH AF
  1429. b_call(_OP1ExOP2)
  1430. CALL InputDichtheid
  1431. CALL BerekenenSchermDisplay
  1432. LD A, $0A
  1433. LD (PenRow), A
  1434. ADD A, 12
  1435. LD (ResultaatPenRow), A
  1436. CALL BerekenenSchermMult
  1437. LD HL, InputTextDichtheid
  1438. b_call(_VPutS)
  1439. CALL BerekenenSchermGetal
  1440. b_call(_FPMult)
  1441. CALL BerekenenSchermNormal
  1442. LD HL, InputTextMassa
  1443. b_call(_VPutS)
  1444. CALL BerekenenSchermGetal
  1445. b_call(_GrBufCpy)
  1446. CALL BerekenenSChermOpslaan
  1447. POP AF
  1448. CP 2
  1449. JR NZ, VanIsVolume_NaarIsNietMassa
  1450. b_call(_getKey)
  1451. JP MainMenu
  1452.  
  1453. VanIsVolume_NaarIsNietMassa:
  1454. CP 8
  1455. JR NZ, VanIsVolume_NaarIsNietMolairGewicht
  1456. CALL MassaNaarMolairGewicht
  1457. b_call(_getKey)
  1458. JP MainMenu
  1459.  
  1460. VanIsVolume_NaarIsNietMolairGewicht:
  1461. PUSH AF
  1462. CALL MassaNaarAantalMol
  1463. POP AF
  1464. CP 3
  1465. JR NZ, VanIsVolume_NaarIsNietAantalMol
  1466. b_call(_getKey)
  1467. JP MainMenu
  1468.  
  1469. VanIsVolume_NaarIsNietAantalMol:
  1470. CP 4
  1471. JR NZ, VanIsVolume_NaarIsNietAantalMoleculen
  1472. NaarAantalMoleculen:
  1473. CALL AantalMolNaarAantalMoleculen
  1474. b_call(_getKey)
  1475. JP MainMenu
  1476.  
  1477. VanIsVolume_NaarIsNietAantalMoleculen:
  1478. CP 5
  1479. JR NZ, VanIsVolume_NaarIsNietGasVolume
  1480. NaarGasVolume:
  1481. CALL AantalMolNaarGasVolume
  1482. b_call(_getKey)
  1483. JP MainMenu
  1484.  
  1485. VanIsVolume_NaarIsNietGasvolume:
  1486. CP 9
  1487. JR NZ, VanIsVolume_NaarIsNietMolairVolume
  1488. NaarMolairVolume:
  1489. CALL AantalMolNaarMolairVolume
  1490. b_call(_getKey)
  1491. JP MainMenu
  1492.  
  1493. vanIsVolume_NaarIsNietMolairVolume:
  1494. CP 6
  1495. JR NZ, VanIsVolume_NaarIsNietAantalLiterOplossing
  1496. NaarAantalLiterOplossing:
  1497. CALL AantalMolNaarAantalLiterOplossing
  1498. b_call(_getKey)
  1499. JP MainMenu
  1500.  
  1501. VanIsVolume_NaarIsNietAantalLiterOplossing:
  1502. NaarConcentratie:
  1503. CALL AantalMolNaarConcentratie
  1504. b_call(_getKey)
  1505. JP MainMenu
  1506.  
  1507. VanIsMassa:
  1508. PUSH DE
  1509. CALL InputMassa
  1510. CALL BerekenenSchermDisplay
  1511. LD HL, $0A08
  1512. LD (PenCol), HL
  1513. LD A, H
  1514. LD (ResultaatPenRow), A
  1515. LD HL, InputTextMassa
  1516. b_call(_VPutS)
  1517. CALL BerekenenSchermGetal
  1518. b_call(_GrBufCpy)
  1519. CALL BerekenenSchermOpslaan
  1520. POP DE
  1521. LD A, E
  1522. CP 2
  1523. JR NZ, VanIsMassa_NaarIsNietMassa
  1524. b_call(_getKey)
  1525. JP MainMenu
  1526. VanIsMassa_NaarIsNietMassa:
  1527. CP 1
  1528. JP Z, VanIsLiterOplossing_NaarIsNietDichtheid
  1529. CP 7
  1530. JP Z, VanIsLiterOplossing_NaarIsNietMassa
  1531. JP VanIsVolume_NaarIsNietMassa
  1532.  
  1533. VanIsAantalMol:
  1534. PUSH DE
  1535. CALL InputAantalMol
  1536. CALL BerekenenSchermDisplay
  1537. LD HL, $0A08
  1538. LD (PenCol), HL
  1539. LD A, H
  1540. LD (ResultaatPenRow), A
  1541. LD HL, InputTextAantalMol
  1542. b_call(_VPutS)
  1543. CALL BerekenenSchermGetal
  1544. b_call(_GrBufCpy)
  1545. CALL BerekenenSchermOpslaan
  1546. POP DE
  1547. LD A, E
  1548. CP 3
  1549. JR NZ, VanIsAantalMol_NaarIsNietAantalMol
  1550. b_call(_getKey)
  1551. JP MainMenu
  1552. VanIsAantalMol_NaarIsNietAantalMol:
  1553. CP 3
  1554. JP C, VanIsLiterOplossing_NaarIsNietAantalMoleculen
  1555. CP 7
  1556. JP Z, VanIsLiterOplossing_NaarIsNietAantalMoleculen
  1557. CP 8
  1558. JP Z, VanIsLiterOplossing_NaarIsNietAantalMoleculen
  1559. JP VanIsVolume_NaarIsNietAantalMol
  1560.  
  1561. VanIsAantalMoleculen:
  1562. PUSH DE
  1563. CALL InputAantalMoleculen
  1564. CALL BerekenenSchermDisplay
  1565. LD HL, $0A08
  1566. LD (PenCol), HL
  1567. LD A, H
  1568. LD (ResultaatPenRow), A
  1569. LD HL, InputTextAantalMoleculen
  1570. b_call(_VPutS)
  1571. CALL BerekenenSchermGetal
  1572. b_call(_GrBufCpy)
  1573. CALL BerekenenSchermOpslaan
  1574. POP DE
  1575. LD A, E
  1576. CP 4
  1577. JR NZ, VanIsAantalMoleculen_NaarIsNietAantalMoleculen
  1578. b_call(_getKey)
  1579. JP MainMenu
  1580. VanIsAantalMoleculen_NaarIsNietAantalMoleculen:
  1581. PUSH AF
  1582. b_call(_OP1ToOp2)
  1583. LD HL, InputNumbAantalMoleculen
  1584. b_call(_Mov9ToOP1)
  1585. CALL BerekenenSchermDisplay
  1586. LD A, (ResultaatPenRow)
  1587. LD (PenRow), A
  1588. CALL BerekenenSchermDiv
  1589. CALL BerekenenSchermGetal
  1590. b_call(_FPDiv)
  1591. CALL BerekenenSchermNormal
  1592. LD HL, InputTextAantalMol
  1593. b_call(_VPutS)
  1594. CALL BerekenenSchermGetal
  1595. CALL BerekenenSchermOpslaan
  1596. POP AF
  1597. CP 3
  1598. JR NZ, VanIsAantalMoleculen_NaarIsNietAantalMol
  1599. b_call(_getKey)
  1600. JP MainMenu
  1601. VanIsAantalMoleculen_NaarIsNietAantalMol:
  1602. CP 3
  1603. JP C, VanIsLiterOplossing_NaarIsNietAantalMoleculen
  1604. CP 7
  1605. JP C, VanIsVolume_NaarIsNietAantalMol
  1606. CP 9
  1607. JP C, VanIsLiterOplossing_NaarIsNietAantalMoleculen
  1608. JP VanIsVolume_NaarIsNietAantalMol
  1609.  
  1610. VanIsGasvolume:
  1611. VanIsAantalLiterOplossing:
  1612. PUSH DE
  1613. CALL InputAantalLiterOplossing
  1614. CALL BerekenenSchermDisplay
  1615. LD HL, $0A08
  1616. LD (PenCol), HL
  1617. LD HL, InputTextAantalLiterOplossing
  1618. b_call(_VPutS)
  1619. CALL BerekenenSchermGetal
  1620. b_call(_GrBufCpy)
  1621. CALL BerekenenSchermOpslaan
  1622. POP DE
  1623. LD A, E
  1624. CP 6
  1625. JR NZ, VanIsLiterOplossing_NaarIsDatNiet
  1626. b_call(_getKey)
  1627. JP MainMenu
  1628. VanIsLiterOplossing_NaarIsDatNiet:
  1629. CP 10
  1630. JR NZ, VanIsLiterOplossing_NaarIsNietConcentratie
  1631. b_call(_OP1ToOP2)
  1632. CALL InputAantalMol
  1633. CALL BerekenenSchermDisplay
  1634. LD A, $0A
  1635. LD (PenRow), A
  1636. CALL BerekenenSchermDiv
  1637. LD HL, InputTextAantalMol
  1638. b_call(_VPutS)
  1639. CALL BerekenenSchermGetal
  1640. b_call(_FPDiv)
  1641. CALL BerekenenSchermRecip
  1642. LD HL, InputTextConcentratie
  1643. b_call(_VPutS)
  1644. CALL BerekenenSchermGetal
  1645. b_call(_GrBufCpy)
  1646. b_call(_getKey)
  1647. JP MainMenu
  1648. VanIsLiterOplossing_NaarIsNietConcentratie:
  1649. PUSH AF
  1650. b_call(_OP1ToOP2)
  1651. CALL InputConcentratie
  1652. CALL BerekenenSchermDisplay
  1653. LD A, $0A
  1654. LD (PenRow), A
  1655. ADD A, 12
  1656. LD (ResultaatPenrow), A
  1657. CALL BerekenenSchermMult
  1658. LD HL, InputTextConcentratie
  1659. b_call(_VPutS)
  1660. CALL BerekenenSchermGetal
  1661. b_call(_FPMult)
  1662. CALL BerekenenSchermNormal
  1663. LD HL, InputTextAantalMol
  1664. b_call(_VPUtS)
  1665. CALL BerekenenSchermGetal
  1666. CALL BerekenenSchermOpslaan
  1667. b_call(_GrBufCpy)
  1668. POP AF
  1669. CP 3
  1670. JR NZ, VanIsLiterOplossing_NaarIsNietAantalMol
  1671. b_call(_getKey)
  1672. JP MainMenu
  1673. VanIsLiterOplossing_NaarIsNietAantalMol:
  1674. CP 9
  1675. JR NZ, VanIsLiterOplossing_NaarIsNietMolairVolume
  1676. CALL AantalMolNaarMolairvolume
  1677. b_call(_getKey)
  1678. JP MainMenu
  1679. VanIsLiterOplossing_NaarIsNietMolairVolume:
  1680. CP 5
  1681. JR NZ, VanIsLiterOplossing_NaarIsNietGasVolume
  1682. CALL AantalMolNaarGasVolume
  1683. b_call(_getKey)
  1684. JP MainMenu
  1685. VanIsLiterOplossing_NaarIsNietGasVolume:
  1686. CP 4
  1687. JR NZ, VanIsLiterOplossing_NaarIsNietAantalMoleculen
  1688. CALL AantalMolNaarAantalMoleculen
  1689. b_call(_getKey)
  1690. JP MainMenu
  1691. VanIsLiterOplossing_NaarIsNietAantalMoleculen:
  1692. CP 8
  1693. JR NZ, VanIsLiterOplossing_NaarIsNietMolairGewicht
  1694. CALL AantalMolNaarMolairGewicht
  1695. b_call(_getKey)
  1696. JP MainMenu
  1697. VanIsLiterOplossing_NaarIsNietMolairGewicht:
  1698. PUSH AF
  1699. CALL AantalMolNaarMassa
  1700. POP AF
  1701. CP 2
  1702. JR NZ, VanIsLiterOplossing_NaarIsNietMassa
  1703. b_call(_getKey)
  1704. JP MainMenu
  1705. VanIsLiterOplossing_NaarIsNietMassa:
  1706. CP 7
  1707. JR NZ, VanIsLiterOPlossing_NaarIsNietDichtheid
  1708. CALL MassaNaarDichtheid
  1709. b_call(_getKey)
  1710. JP MainMenu
  1711. VanIsLiterOPlossing_NaarIsNietDichtheid:
  1712. CALL MassaNaarVolume
  1713. b_call(_getKey)
  1714. JP MainMenu
  1715. VanIsDichtheid:
  1716. VanIsMolairGewicht:
  1717. VanIsMOlairVolume:
  1718. VanIsConcentratie:
  1719. CALL InputMassa
  1720. b_call(_getKey)
  1721. CALL InputAantalMol
  1722. b_call(_getKey)
  1723. CALL InputAantalMoleculen
  1724. b_call(_getKey)
  1725. CALL InputGasvolume
  1726. b_call(_getKey)
  1727. CALL InputAantalLiterOplossing
  1728. b_call(_getKey)
  1729. CALL InputDichtheid
  1730. b_call(_getKey)
  1731. CALL InputMolairGewicht
  1732. b_call(_getKey)
  1733. CALL InputMolairVolume
  1734. b_call(_getKey)
  1735. CALL InputConcentratie
  1736. b_call(_getKey)
  1737. JP MainMenu
  1738.  
  1739. MassaNaarMolairGewicht:
  1740. b_call(_OP1ToOP2)
  1741. CALL InputAantalMol
  1742. CALL BerekenenSchermDisplay
  1743. LD A, (ResultaatPenRow)
  1744. LD (PenRow), A
  1745. CALL BerekenenSchermDiv
  1746. LD HL, InputTextAantalMol
  1747. b_call(_VPutS)
  1748. CALL BerekenenSchermGetal
  1749. b_call(_OP1ExOP2)
  1750. b_call(_FPDiv)
  1751. CALL BerekenenSchermNormal
  1752. LD HL, InputTextMolairGewicht2
  1753. b_call(_VPutS)
  1754. CALL BerekenenSchermGetal
  1755. b_call(_GrBufCpy)
  1756. RET
  1757.  
  1758. MassaNaarAantalMol:
  1759. b_call(_OP1ToOP2)
  1760. CALL InputMolairGewicht
  1761. CALL BerekenenSchermDisplay
  1762. LD A, (ResultaatPenRow)
  1763. LD (PenRow), A
  1764. CALL BerekenenSchermDiv
  1765. LD HL, InputTextMolairGewicht2
  1766. b_call(_VPutS)
  1767. CALL BerekenenSchermGetal
  1768. b_call(_OP1ExOP2)
  1769. b_call(_FPDiv)
  1770. CALL BerekenenSchermNormal
  1771. LD HL, InputTextAantalMol
  1772. b_call(_VPutS)
  1773. CALL BerekenenSchermGetal
  1774. CALL BerekenenSchermOpslaan
  1775. b_call(_GrBufCpy)
  1776. RET
  1777.  
  1778. MassaNaarDichtheid:
  1779. b_call(_OP1ToOP2)
  1780. CALL InputVolume
  1781. CALL BerekenenSchermDisplay
  1782. LD A, (ResultaatPenRow)
  1783. LD (PenRow), A
  1784. CALL BerekenenSchermDiv
  1785. LD HL, InputTextVolume
  1786. b_call(_VPutS)
  1787. CALL BerekenenSchermGetal
  1788. b_call(_OP1ExOP2)
  1789. b_call(_FPDiv)
  1790. CALL BerekenenSchermNormal
  1791. LD HL, InputTextDichtheid
  1792. b_call(_VPutS)
  1793. CALL BerekenenSchermGetal
  1794. b_call(_GrBufCpy)
  1795. RET
  1796.  
  1797. MassaNaarVolume:
  1798. b_call(_OP1ToOP2)
  1799. CALL InputDichtheid
  1800. CALL BerekenenSchermDisplay
  1801. LD A, (ResultaatPenRow)
  1802. LD (PenRow), A
  1803. CALL BerekenenSchermDiv
  1804. LD HL, InputTextDichtheid
  1805. b_call(_VPutS)
  1806. CALL BerekenenSChermGetal
  1807. b_call(_OP1ExOP2)
  1808. b_call(_FPDiv)
  1809. CALL BerekenenSchermNormal
  1810. LD HL, InputTextVolume
  1811. b_call(_VPutS)
  1812. CALL BerekenenSchermGetal
  1813. b_call(_GrBufCpy)
  1814. RET
  1815.  
  1816. AantalMolNaarAantalMoleculen:
  1817. CALL BerekenenSchermDisplay
  1818. b_call(_OP1ToOP2)
  1819. LD HL, InputNumbAantalMoleculen
  1820. b_call(_Mov9ToOP1)
  1821. LD A, (ResultaatPenRow)
  1822. LD (PenRow), A
  1823. CALL BerekenenSchermMult
  1824. CALL BerekenenSchermGetal
  1825. b_call(_FPMult)
  1826. CALL BerekenenSchermNormal
  1827. LD HL, InputTextAantalMoleculen2
  1828. b_call(_VPutS)
  1829. CALL BerekenenSchermGetal
  1830. b_call(_GrBufCpy)
  1831. RET
  1832.  
  1833. AantalMolNaarGasVolume:
  1834. b_call(_OP1ToOP2)
  1835. CALL InputMolairVolume
  1836. CALL BerekenenSchermDisplay
  1837. LD A, (ResultaatPenRow)
  1838. LD (PenRow), A
  1839. CALL BerekenenSchermMult
  1840. LD HL, InputTextMolairVolume
  1841. b_call(_VPutS)
  1842. CALL BerekenenSChermGetal
  1843. b_call(_FPMult)
  1844. CALL BerekenenSchermNormal
  1845. LD HL, InputTextGasvolume
  1846. b_call(_VPutS)
  1847. CALL BerekenenSchermGetal
  1848. b_call(_GrBufCpy)
  1849. RET
  1850.  
  1851. AantalMolNaarMolairVolume:
  1852. b_call(_OP1ToOP2)
  1853. CALL InputGasVolume
  1854. CALL BerekenenSchermDisplay
  1855. LD A, (ResultaatPenRow)
  1856. LD (PenRow), A
  1857. CALL BerekenenSchermDiv
  1858. LD HL, InputTextGasvolume
  1859. b_call(_VPutS)
  1860. CALL BerekenenSchermGetal
  1861. b_call(_FPDiv)
  1862. CALL BerekenenSChermRecip
  1863. LD HL, InputTextMolairVolume
  1864. b_call(_VPutS)
  1865. CALL BerekenenSchermGetal
  1866. b_call(_GrBufCpy)
  1867. RET
  1868.  
  1869. AantalMolNaarAantalLiterOplossing:
  1870. b_call(_OP1ToOp2)
  1871. CALL InputConcentratie
  1872. CALL BerekenenSchermDisplay
  1873. LD A, (ResultaatPenRow)
  1874. LD (PenRow), A
  1875. CALL BerekenenSchermDiv
  1876. LD HL, InputTextConcentratie
  1877. b_call(_VPutS)
  1878. CALL BerekenenSchermGetal
  1879. b_call(_Op1ExOp2)
  1880. b_call(_FPDiv)
  1881. CALL BerekenenSchermNormal
  1882. LD HL, InputTextAantalLiterOplossing
  1883. b_call(_VputS)
  1884. CALL BerekenenSchermGetal
  1885. b_call(_GrBufCpy)
  1886. RET
  1887.  
  1888. AantalMolNaarConcentratie:
  1889. b_call(_OP1ToOP2)
  1890. CALL InputAantalLiterOplossing
  1891. CALL BerekenenSchermDisplay
  1892. LD A, (ResultaatPenRow)
  1893. LD (PenRow), A
  1894. CALL BerekenenSchermDiv
  1895. LD HL, InputTextAantalLiterOplossing
  1896. b_call(_VPutS)
  1897. CALL BerekenenSchermGetal
  1898. b_call(_OP1ExOP2)
  1899. b_call(_FPDiv)
  1900. CALL BerekenenSchermNormal
  1901. LD HL, InputTextConcentratie
  1902. b_call(_VPutS)
  1903. CALL BerekenenSchermGetal
  1904. b_call(_GrBufCpy)
  1905. RET
  1906.  
  1907. AantalMolNaarMolairGewicht:
  1908. b_call(_OP1ToOP2)
  1909. CALL InputMassa
  1910. CALL BerekenenSchermDisplay
  1911. LD A, (ResultaatPenRow)
  1912. LD (PenRow), A
  1913. CALL BerekenenSchermDiv
  1914. LD HL, InputTextMassa
  1915. b_call(_VPutS)
  1916. CALL BerekenenSchermGetal
  1917. b_call(_FPDiv)
  1918. CALL BerekenenSChermRecip
  1919. LD HL, InputTextMolairGewicht2
  1920. b_call(_VPutS)
  1921. CALL BerekenenSchermGetal
  1922. b_call(_GrBufCpy)
  1923. RET
  1924.  
  1925. AantalMolNaarMassa
  1926. b_call(_OP1ToOP2)
  1927. CALL InputMolairGewicht
  1928. CALL BerekenenSchermDisplay
  1929. LD A, (ResultaatPenRow)
  1930. LD (PenRow), A
  1931. CALL BerekenenSchermMult
  1932. LD HL, InputTextMolairGewicht2
  1933. b_call(_VPutS)
  1934. CALL BerekenenSchermGetal
  1935. b_call(_FPMult)
  1936. CALL BerekenenSchermNormal
  1937. LD HL, InputTextMassa
  1938. b_call(_VPutS)
  1939. CALL BerekenenSchermGetal
  1940. CALL BerekenenSchermOpslaan
  1941. b_call(_GrBufCpy)
  1942. RET
  1943.  
  1944. InputVolume:
  1945. CALL InputScherm
  1946. LD HL, $1123
  1947. LD (PenCol), HL
  1948. LD HL, InputTextVolume
  1949. b_call(_VPutS)
  1950. b_call(_GrBufCpy)
  1951. LD HL, $0103
  1952. LD (CurRow), HL
  1953. LD C, 14
  1954. CALL Input
  1955. RET
  1956.  
  1957. InputMassa:
  1958. CALL InputScherm
  1959. LD HL, $1126
  1960. LD (PenCol), HL
  1961. LD HL, InputTextMassa
  1962. b_call(_VPutS)
  1963. b_call(_GrBufCpy)
  1964. LD HL, $0103
  1965. LD (CurRow), HL
  1966. LD C, 14
  1967. CALL Input
  1968. RET
  1969.  
  1970. InputAantalMol:
  1971. CALL InputScherm
  1972. LD HL, $111C
  1973. LD (PenCol), HL
  1974. LD HL, InputTextAantalMol
  1975. b_call(_VPutS)
  1976. b_call(_GrBufCpy)
  1977. LD HL, $0103
  1978. LD (CurRow), HL
  1979. LD C, 14
  1980. CALL Input
  1981. RET
  1982.  
  1983. InputAantalMoleculen:
  1984. CALL InputScherm
  1985. LD HL, $1112
  1986. LD (PenCol), HL
  1987. LD HL, InputTextAantalMoleculen
  1988. b_call(_VPutS)
  1989. b_call(_GrBufCpy)
  1990. LD HL, $0103
  1991. LD (CurRow), HL
  1992. LD C, 14
  1993. CALL Input
  1994. RET
  1995.  
  1996. InputGasvolume:
  1997. CALL InputScherm
  1998. LD HL, $111D
  1999. LD (PenCol), HL
  2000. LD HL, InputTextGasVolume
  2001. b_call(_VPutS)
  2002. b_call(_GrBufCpy)
  2003. LD HL, $0103
  2004. LD (CurRow), HL
  2005. LD C, 14
  2006. CALL Input
  2007. RET
  2008.  
  2009. InputAantalLiterOplossing:
  2010. CALL InputScherm
  2011. LD HL, $1117
  2012. LD (PenCol), HL
  2013. LD HL, InputTextAantalLiterOplossing
  2014. b_call(_VPutS)
  2015. b_call(_GrBufCpy)
  2016. LD HL, $0103
  2017. LD (CurRow), HL
  2018. LD C, 14
  2019. CALL Input
  2020. RET
  2021.  
  2022. InputDichtheid:
  2023. CALL InputScherm
  2024. LD HL, $1120
  2025. LD (PenCol), HL
  2026. LD HL, InputTextDichtheid
  2027. b_call(_VPutS)
  2028. b_call(_GrBufCpy)
  2029. LD HL, $0103
  2030. LD (CurRow), HL
  2031. LD C, 14
  2032. CALL Input
  2033. RET
  2034.  
  2035. InputMolairGewicht:
  2036. CALL InputScherm
  2037. LD HL, $110F
  2038. LD (PenCol), HL
  2039. LD HL, InputTextMolairGewicht
  2040. b_call(_VPutS)
  2041. b_call(_GrBufCpy)
  2042. LD HL, $0103
  2043. LD (CurRow), HL
  2044. LD C, 14
  2045. CALL Input
  2046. RET
  2047.  
  2048. InputMolairVolume:
  2049. CALL InputScherm
  2050. LD HL, $1118
  2051. LD (PenCol), HL
  2052. LD HL, InputTextMolairVolume
  2053. b_call(_VPutS)
  2054. b_call(_GrBufCpy)
  2055. LD HL, $0103
  2056. LD (CurRow), HL
  2057. LD C, 14
  2058. CALL Input
  2059. RET
  2060.  
  2061. InputConcentratie:
  2062. CALL InputScherm
  2063. LD HL, $1119
  2064. LD (PenCol), HL
  2065. LD HL, InputTextConcentratie
  2066. b_call(_VPutS)
  2067. b_call(_GrBufCpy)
  2068. LD HL, $0103
  2069. LD (CurRow), HL
  2070. LD C, 14
  2071. CALL Input
  2072. RET
  2073.  
  2074. BerekenenSchermOpslaan:
  2075. LD HL, PlotSScreen
  2076. LD DE, AppBackupScreen
  2077. LD BC, 768
  2078. LDIR
  2079. RET
  2080.  
  2081. BerekenenSchermDisplay:
  2082. LD HL, AppBackupScreen
  2083. LD DE, PlotSScreen
  2084. LD BC, 768
  2085. LDIR
  2086. RET
  2087.  
  2088. InputScherm:
  2089. LD HL, InputVensterBovenkant
  2090. LD DE, PlotSScreen + 16*12
  2091. LD B, 12
  2092. InputSchermBovenkantDisplay:
  2093. LD A, (DE)
  2094. OR (HL)
  2095. LD (DE), A
  2096. INC DE
  2097. INC HL
  2098. DJNZ InputSchermBovenkantDisplay
  2099. LD C, 15
  2100. InputSchermMiddenDisplay2:
  2101. LD B, 12
  2102. LD HL, InputVensterMidden
  2103. LD IX, InputVensterMiddenSchoon
  2104. InputSchermMiddenDisplay:
  2105. LD A, (DE)
  2106. AND (IX)
  2107. OR (HL)
  2108. LD (DE), A
  2109. INC HL
  2110. INC DE
  2111. INC IX
  2112. DJNZ InputSchermMiddenDisplay
  2113. DEC C
  2114. JR NZ, InputSchermMIddenDisplay2
  2115. LD B, 24
  2116. InputSchermOnderDisplay:
  2117. LD A, (DE)
  2118. OR (HL)
  2119. LD (DE), A
  2120. INC HL
  2121. INC DE
  2122. DJNZ InputSchermOnderDisplay
  2123. RET
  2124.  
  2125. BerekenenSchermMult:
  2126. LD A, $02
  2127. LD (PenCol), A
  2128. CALL BerekenenSchermNewLine
  2129. LD A, "*"
  2130. b_call(_VPutMap)
  2131. LD A, $08
  2132. LD (PenCol), A
  2133. RET
  2134.  
  2135. BerekenenSchermDiv:
  2136. LD A, $04
  2137. LD (PenCol), A
  2138. CALL BerekenenSchermNewLine
  2139. LD A, "/"
  2140. b_call(_VPutMap)
  2141. LD A, $08
  2142. LD (PenCol), A
  2143. RET
  2144.  
  2145. BerekenenSChermRecip:
  2146. LD A, $03
  2147. LD (PenCol), A
  2148. CALL BerekenenSchermNewLine
  2149. LD A, SInverse
  2150. b_call(_VPutMap)
  2151. LD A, $08
  2152. LD (PenCol), A
  2153. RET
  2154.  
  2155. BerekenenSchermNormal:
  2156. LD A, $08
  2157. LD (PenCol), A
  2158. CALL BerekenenSchermNewLine
  2159. RET
  2160.  
  2161. BerekenenSchermGetal:
  2162. LD A, $3B
  2163. LD (PenCol), A
  2164. LD A, 9
  2165. b_call(_DispOP1A)
  2166. RET
  2167.  
  2168. BerekenenSchermNewLine:
  2169. LD A, (PenRow)
  2170. ADD A, 6
  2171. LD (PenRow), A
  2172. LD (ResultaatPenRow), A
  2173. RET
  2174.  
  2175. ;-----------------------------------------------------------------------------------------------------------------------------------
  2176. Credits:
  2177. b_call(_ClrLCDFull)
  2178. LD HL, 0
  2179. LD (CurRow), HL
  2180. LD HL, CreditText
  2181. b_call(_PutS)
  2182. b_call(_getKey)
  2183. JP MainMenu
  2184.  
  2185. ;-----------------------------------------------------------------------------------------------------------------------------------
  2186. Afsluiten:
  2187. b_call(_ClrScrnFull)
  2188. LD HL, 0
  2189. LD (CurRow), HL
  2190. LD (PenCol), HL
  2191. RES TextWrite, (IY + SGrFlags)
  2192. RET
  2193.  
  2194. ;-----------------------------------------------------------------------------------------------------------------------------------
  2195. Menu:
  2196. ;This routine will make a menu, almost the same as the TI-basic one.
  2197. ;The screen will be cleared after this routine has been completed.
  2198. ;INPUT: The text via the code stream.
  2199. ;OUTPUT:
  2200. ; If bit 0, (IY + Asm_flag1) is reset, the output is in C
  2201. ; If bit 0, (IY + Asm_flag1) is set, the output is in L
  2202. RES AppAutoScroll, (IY + AppFlags) ;Keep the screen from rolling
  2203. b_call(_ClrLCDFull) ;Clear the screen
  2204. CALL TextInverseOn ;Set textinverse
  2205. ld hl, $0000 ;Set cursor to (0,0)
  2206. ld (CurRow), hl
  2207. POP HL ;Pop the address of the menutitle
  2208. LD D, H ;Store HL into DE
  2209. LD E, L
  2210. b_call(_PutS) ;Display the menutitle
  2211. CALL TextInverseOff ;Reset textinverse
  2212. LD B, 17 ;Seventeen bytes to advance, including the 0
  2213. IncrementDE:
  2214. INC DE
  2215. DJNZ IncrementDE
  2216.  
  2217. ;Drawing the text
  2218. LD HL, $0201 ;Load the cursor for the first string
  2219. LD (CurRow), HL
  2220. LD HL, CurCol ;Load the address of the cursor in HL
  2221. EX DE, HL ;Load the address of the number of rows to be drawn into HL
  2222. LD C, (HL) ;Load that number into C
  2223. PUSH BC ;Save C, because we're going to need it once more
  2224. INC HL ;Load the address of the first character of the first option in the menu
  2225. LD B, 14 ;14 characters per string
  2226. DisplayText:
  2227. LD A, (HL) ;Load the first character of the string into A
  2228. b_call(_PutC) ;Display the character, and advance the cursor
  2229. INC HL ;Set the address for the next character
  2230. DJNZ DisplayText ;Repeat this 14 times
  2231. EX DE, HL ;HL = Address of cursor, DE = Address of MenuText
  2232. LD (HL), 2 ;Set (CurCol) to 2
  2233. EX DE, HL ;HL = Address of MenuText, DE = Address of cursor
  2234. LD B, 14 ;14 characters again.
  2235. DEC C ;Decline number of times to repeat this
  2236. JR NZ, DisplayText ;If the number of times to repeat this <> 0, repeat this
  2237. POP BC ;Restore C, the number of options in the menu
  2238. PUSH HL ;Store the address to jump to after the procedure has ended
  2239. ld b, c ;Store the number of options into B
  2240. ld h, b ;Save this number in h
  2241.  
  2242. ;Drawing the numbers next
  2243. DrawNumbersComplete:
  2244. ld c, 1 ;C keeps track of the current option selected
  2245. DrawNumbersSet:
  2246. ld b, h ;Restore the number of numbers to be drawn into b.
  2247. xor a ;Reset CurCol to 0
  2248. ld (CurCol), A
  2249. ld l, $31 ;load the hexvalue of "1" in L
  2250. ld de, CurRow ;load the address of CurRow in DE
  2251. ld a, 1 ;A keeps track of the current row to be drawn
  2252. DrawNumbers:
  2253. ld (DE), a ;CorRow now equals the number to be drawn
  2254. cp c ;If C = A
  2255. CALL Z, TextInverseOn ;Textinverse = on
  2256. cp c ;If C <> A
  2257. CALL NZ, TextInverseOff ;Textinverse = off
  2258. PUSH AF ;Save A because it is needed to display characters
  2259. ld a, l ;load the ASCII code of the number into A
  2260. b_call(_PutC) ;Display the character, and advance the cursor
  2261. ld a, Lcolon ;load the ASCII code of the ":" into A
  2262. b_call(_PutMap) ;Display the character, not advance the cursor
  2263. xor a ;Reset CurCol
  2264. ld (CurCol), a
  2265. inc hl ;Incline the number, because the numbers are placed right behind each other in ROM
  2266. POP AF ;Recover A
  2267. inc A ;Incline the row
  2268. DJNZ DrawNumbers ;Repeat this, the number of times of the number of options
  2269.  
  2270. UserInput:
  2271. RES 0, (IY + Asm_Flag1) ;Resets the flag
  2272. PUSH HL ;Save HL temporarely, because b_call(_getKey) messes it up
  2273. b_call(_getKey) ;Gets the key pressed, and saves it in A
  2274. POP HL ;Restore HL
  2275. CP kDown ;If down is pressed...
  2276. JR Z, InclineMenu ;Incline C
  2277. CP kUP ;If up is pressed...
  2278. JR Z, DeclineMenu ;Decline C
  2279. CP kEnter ;If enter is pressed...
  2280. RET Z ;Exit the procedure
  2281. SET 0, (IY + Asm_Flag1) ;Sets the flag
  2282. LD L, 1 ;L will save the option selected, if it was accessed by a number key
  2283. LD B, H ;Load the number of options into B
  2284. LD E, 7 ;7 keys to check max
  2285. LD D, k1 ;Load the address of the first key into D
  2286. CheckForNumber:
  2287. CP D ;Substract D (only modifying flags)
  2288. RET Z ;Exit the procedure if the right key is met
  2289. DEC B ;Decline B
  2290. JR Z, UserInput ;If 0, go to the userinput
  2291. INC L ;Incline L
  2292. INC D ;Incline D
  2293. DEC E ;Decline E
  2294. JR NZ, CheckForNumber ;Repeat this until either B or E met 0
  2295. JR UserInput ;Go to userinput
  2296.  
  2297. InclineMenu:
  2298. INC C
  2299. LD A, C
  2300. DEC A
  2301. CP H
  2302. JP Z, DrawNumbersComplete
  2303. JP DrawNumbersSet
  2304. DeclineMenu:
  2305. DEC C
  2306. JP NZ, DrawNumbersSet
  2307. LD C, H
  2308. JP DrawNumbersSet
  2309.  
  2310. TextInverseOn:
  2311. SET TextInverse, (IY + TextFlags)
  2312. RET
  2313. TextInverseOff:
  2314. RES TextInverse, (IY + TextFlags)
  2315. RET
  2316.  
  2317. GraphClear:
  2318. LD HL, PlotSScreen ;Load the position of PlotSScreen into HL
  2319. LD BC, 768 ;768 bytes to reset
  2320. ClearOneByteOfScreen:
  2321. LD (HL), 0 ;Load 0 into HL
  2322. INC HL ;Incline HL
  2323. DEC C ;Decline C
  2324. JR NZ, ClearOneByteOfScreen ;Repeat this 768 times
  2325. DEC B
  2326. JR NZ, ClearOneByteOfScreen
  2327. b_call(_GrBufCpy)
  2328. RET
  2329.  
  2330. ;Input routine:
  2331. Input:
  2332. PUSH DE
  2333. CALL Input2
  2334. POP DE
  2335. CALL NumInput
  2336. RET
  2337.  
  2338. Input2:
  2339. ;This routine is just like the input command in BASIC
  2340. ;INPUT:
  2341. ; C = Max. number of characters
  2342. ; DE = Start of eventual storingsplace
  2343. ;Info:
  2344. ; B = Number of characters displayed
  2345. ;Data: ScanCodeEqueates: (Down to numbers, ., - and e)
  2346. ; $01 = skDown (v) -- (--) -- (--) -- --
  2347. ; $02 = skLeft (<) -- (--) -- (--) -- --
  2348. ; $03 = skRight (>) -- (--) -- (--) -- --
  2349. ; $04 = skUp (^) -- (--) -- (--) -- --
  2350. ; $05 = undefined
  2351. ; $06 = undefined
  2352. ; $07 = undefined
  2353. ; $08 = undefined
  2354. ; $09 = skEnter (ENTER) -- (ENTRY) -- (SOLVE) -- --
  2355. ; $0A = skAdd (+) + (MEM) -- (") " "
  2356. ; $0B = skSub (-) - (]) ] (W) W w
  2357. ; $0C = skMul (*) * ([) [ (R) R r
  2358. ; $0D = skDiv (/) / (e) e (M) M m
  2359. ; $0E = skPower (^) ^ (pi) pi (H) H h
  2360. ; $0F = skClear (CLEAR) -- (--) -- (--) -- --
  2361. ; $10 = undefined
  2362. ; $11 = skChs ((-)) (-) (ANS) -- (?) ? ?
  2363. ; $12 = sk3 (3) 3 (L3) -- (Theta) Theta Theta
  2364. ; $13 = sk6 (6) 6 (L6) -- (V) V v
  2365. ; $14 = sk9 (9) 9 (w) w (Q) Q q
  2366. ; $15 = skRParen ()) ) (}) } (L) L l
  2367. ; $16 = skTan (Tan) -- (TAN^-1) -- (G) G g
  2368. ; $17 = skVars (VARS) -- (DISTR) -- (--) -- --
  2369. ; $18 = undefined
  2370. ; $19 = skDecPnt (.) . (i) i (:) : :
  2371. ; $1A = sk2 (2) 2 (L2) -- (Z) Z z
  2372. ; $1B = sk5 (5) 5 (L5) -- (U) U u
  2373. ; $1C = sk8 (8) 8 (v) v (P) P p
  2374. ; $1D = skLParen (() ( ({) { (K) K k
  2375. ; $1E = skCos (COS) -- (COS^-1) -- (F) F f
  2376. ; $1F = skPrgm (PRGM) -- (DRAW) -- (C) C c
  2377. ; $20 = skStat (STAT) -- (LIST) -- (--) -- --
  2378. ; $21 = sk0 (0) 0 (CATALOG) -- ( )
  2379. ; $22 = sk1 (1) 1 (L1) -- (Y) Y y
  2380. ; $23 = sk4 (4) 4 (L4) -- (T) T t
  2381. ; $24 = sk7 (7) 7 (u) u (O) O o
  2382. ; $25 = skComma (,) , (EE) E (J) J j
  2383. ; $26 = skSin (SIN) -- (SIN^-1) -- (E) E e
  2384. ; $27 = skMatrix (APPS) -- (ANGLE) -- (B) B b
  2385. ; $28 = skGraphVar (X,T,Q,n) X (LINK) -- (--) -- --
  2386. ; $29 = undefined
  2387. ; $2A = skStore (STO>) -- (RCL) -- (X) X x
  2388. ; $2B = skLn (LN) -- (e^x) -- (S) S s
  2389. ; $2C = skLog (LOG) -- (10^x) -- (N) N n
  2390. ; $2D = skSquare (x²) ² (SQRT) -- (I) I i
  2391. ; $2E = skRecip (x^-1) ^-1 (MATRIX) -- (D) D d
  2392. ; $2F = skMath (MATH) -- (TEST) -- (A) A a
  2393. ; $30 = skAlpha (ALPHA) -- (A-LOCK) -- (--) -- --
  2394. ; $31 = skGraph (GRAPH) -- (TABLE) -- (F5) -- --
  2395. ; $32 = skTrace (TRACE) -- (CALC) -- (F4) -- --
  2396. ; $33 = skZoom (ZOOM) -- (FORMAT) -- (F3) -- --
  2397. ; $34 = skWindow (WINDOW) -- (TBLSET) -- (F2) -- --
  2398. ; $35 = skYequ (Y=) -- (STAT PLOT) -- (F1) -- --
  2399. ; $36 = sk2nd (2nd) -- (--) -- (--) -- --
  2400. ; $37 = skMode (MODE) -- (QUIT) -- (--) -- --
  2401. ; $38 = skDel (DEL) -- (INS) -- (--) -- --
  2402. RES Shift2nd, (IY + ShiftFlags)
  2403. LD B, 0
  2404. InputKey:
  2405. SET CurOn, (IY + CurFlags)
  2406. LD A, $FF
  2407. LD (CurTime), A
  2408. InputKey2:
  2409. BIT Shift2nd, (IY + ShiftFlags)
  2410. JR NZ, InputCur2nd
  2411. LD L, LCurO
  2412. JR InputKey4
  2413. InputCur2nd:
  2414. LD L, LCurO2
  2415. InputKey4:
  2416. LD A, (CurTime)
  2417. DEC A
  2418. LD (CurTime), A
  2419. CALL Z, InputFlipCurState
  2420. BIT CurOn, (IY + CurFlags)
  2421. CALL Z, InputResetCur
  2422. LD A, L
  2423. b_call(_PutMap)
  2424. InputKey3:
  2425. PUSH HL
  2426. b_call(_getCSC) ;Get a key
  2427. POP HL
  2428. OR A ;If no key is pressed...
  2429. JR Z, InputKey2 ;...Abort
  2430. CP skEnter ;If enter is pressed...
  2431. RET Z ;...Exit the procedure
  2432. CP skClear ;If clear is pressed...
  2433. JP Z, InputClear ;...Go to InputClear
  2434. CP skDel ;If DEl is pressed...
  2435. JP Z, InputDel ;...Go to InputDel
  2436. LD H, A
  2437. LD A, B
  2438. CP C
  2439. JR Z, InputKey3
  2440. LD A, H
  2441. CP sk2nd ;If 2nd is pressed...
  2442. JP Z, Input2nd ;...Go to Input2nd
  2443. SUB $10 ;If the key pressed is outside the range...
  2444. JR C, InputKey ;...Abort
  2445. CP 27 ;If the key pressed is outisde the range...
  2446. JR NC, InputKey ;...Abort
  2447. BIT Shift2nd, (IY + ShiftFlags)
  2448. JR NZ, Input2ndLUT
  2449. LD HL, NormalLUT ;Load the LUT
  2450. JR InputContinue
  2451. Input2ndLUT:
  2452. LD HL, 2ndLUT
  2453. InputContinue:
  2454. PUSH BC
  2455. LD C, A ;Add the character
  2456. LD B, 0
  2457. ADD HL, BC
  2458. POP BC
  2459. LD A, (HL) ;Load the character
  2460. OR A ;If not a correct symbol was found...
  2461. JP Z, InputKey ;...Abort
  2462. b_call(_PutC) ;Display it
  2463. LD (DE), A
  2464. INC DE
  2465. INC B
  2466. BIT Shift2nd, (IY + ShiftFlags)
  2467. JR NZ, InputReset2nd
  2468. JP InputKey
  2469.  
  2470. InputFlipCurState:
  2471. LD A, $FF
  2472. LD (CurTime), A
  2473. BIT CurOn, (IY + CurFlags)
  2474. JR Z, InputCurOff
  2475. RES CurOn, (IY + CurFlags)
  2476. RET
  2477. InputCurOff:
  2478. SET CurOn, (IY + CurFlags)
  2479. RET
  2480.  
  2481. InputResetCur:
  2482. LD L, " "
  2483. RET
  2484.  
  2485. Input2nd:
  2486. BIT Shift2nd, (IY + ShiftFlags)
  2487. JR Z, Input2ndOff
  2488. InputReset2nd: RES Shift2nd, (IY + ShiftFlags)
  2489. JP InputKey
  2490. Input2ndOff:
  2491. SET Shift2nd, (IY + ShiftFlags)
  2492. JP InputKey
  2493.  
  2494. InputClear:
  2495. LD A, " "
  2496. b_call(_PutMap)
  2497. LD A, (CurRow) ;Get CurRow and CurCol into HL
  2498. LD H, A
  2499. LD A, (CurCol)
  2500. LD L, A
  2501. OR A ;Reset Carry
  2502. SUB B ;Substract BC from HL
  2503. InputCheckLineJumped:
  2504. CP 16 ;If it did not jump a line...
  2505. JR C, InputNoLineJumped ;...Go to InputNoLineJumped
  2506. SUB $F0 ;If it did, substract $F0...
  2507. DEC H
  2508. JR InputCheckLineJumped ;...and check again.
  2509. InputNoLineJumped:
  2510. LD L, A
  2511. LD A, H ;Save CurCol and CurRow again
  2512. LD (CurRow), A
  2513. LD A, L
  2514. LD (CurCol), A
  2515. LD HL, (CurRow) ;Save the cursor locations in HL
  2516. LD A, " " ;Load space into A
  2517. InputInsertSpace:
  2518. b_call(_PutC) ;Display Space
  2519. PUSH AF
  2520. XOR A ;Make A 0
  2521. DEC DE ;Decline InputData pointer
  2522. LD (DE), A ;Clear 1 byte of InputData
  2523. POP AF
  2524. DJNZ InputInsertSpace ;Do this B times (and B was the number of digits)
  2525. LD (CurRow), HL ;Reset the cursor locations
  2526. JP InputKey ;Return
  2527.  
  2528. InputDel:
  2529. LD A, " "
  2530. b_call(_PutMap)
  2531. LD A, B
  2532. OR A
  2533. JP Z, InputKey
  2534. LD A, (CurCol)
  2535. OR A
  2536. JR Z, InputDelJumpLine
  2537. DEC A
  2538. LD (CurCol), A
  2539. JR InputDelContinue
  2540. InputDelJumpLine:
  2541. LD A, 15
  2542. LD (CurCol), A
  2543. LD HL, CurRow
  2544. DEC (HL)
  2545. InputDelContinue:
  2546. DEC DE
  2547. XOR A
  2548. LD (DE), A
  2549. DEC B
  2550. JP InputKey
  2551.  
  2552. NormalLUT:
  2553. .DB 0, Lneg, "369",0, 0, 0, 0, ".258", 0
  2554. .DB 0, 0, 0, "0147,"
  2555. 2ndLUT:
  2556. .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  2557. .DB 0, 0, 0, 0, 0, 0, 0, Lexponent
  2558.  
  2559. InputData:
  2560. .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ;The data will be stored here... eventually
  2561. .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  2562. .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  2563. .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  2564.  
  2565. NumInput:
  2566. ;This routine will retrieve a number out of a string.
  2567. ;INPUT:
  2568. ; DE = Null-terminated start of data
  2569. SET Cycle, (IY + Asm_Flag1)
  2570. RES Point, (IY + Asm_Flag1)
  2571. RES Exponent, (IY + Asm_Flag1)
  2572. b_call(_OP1Set0)
  2573. LD C, 0
  2574. LD B, 0
  2575. LD HL, OP1 + 2
  2576. LD IX, OP1 + 1
  2577. DEC (IX)
  2578. NumInputFurtherChecking:
  2579. LD A, (DE)
  2580. CP L0
  2581. JR Z, NumInputFirstIsZero
  2582. CP Lneg
  2583. JR NZ, NumInputNumberChecking
  2584. LD A, $80
  2585. DEC HL
  2586. DEC HL
  2587. LD (HL), A
  2588. INC HL
  2589. INC HL
  2590. INC DE
  2591. JR NumInputNumberChecking
  2592. NumInputFirstIsZero:
  2593. INC DE
  2594. JR NumInputFurtherChecking
  2595. NumInputNumberChecking:
  2596. LD A, (DE)
  2597. OR A
  2598. JR NZ, NumInputNoEnd
  2599. BIT Exponent, (IY + Asm_Flag1)
  2600. JR NumInputExponentEnd
  2601. RET Z
  2602. NumInputNoEnd:
  2603. CP LPeriod
  2604. JR Z, NumInputPointSet
  2605. CP LExponent
  2606. JR Z, NumInputExponentSet
  2607. SUB $30
  2608. JR C, NumInputError
  2609. CP 10
  2610. JR NC, NumInputError
  2611. BIT Exponent, (IY + Asm_Flag1)
  2612. JR NZ, NumInputExponent
  2613. BIT Cycle, (IY + Asm_Flag1)
  2614. JR Z, NumInputNoCycle
  2615. SLA A
  2616. SLA A
  2617. SLA A
  2618. SLA A
  2619. LD (HL), A
  2620. RES Cycle, (IY + Asm_Flag1)
  2621. INC B
  2622. INC DE
  2623. BIT Point, (IY + Asm_Flag1)
  2624. JR NZ, NumInputNumberChecking
  2625. INC (IX)
  2626. JR NumInputNumberChecking
  2627. NumInputNoCycle:
  2628. OR (HL)
  2629. LD (HL), A
  2630. SET Cycle, (IY + Asm_Flag1)
  2631. INC HL
  2632. INC DE
  2633. INC B
  2634. BIT Point, (IY + Asm_Flag1)
  2635. JR NZ, NumInputNumberChecking
  2636. INC (IX)
  2637. JR NumInputNumberChecking
  2638.  
  2639. NumInputPointSet:
  2640. BIT Point, (IY + Asm_Flag1)
  2641. JR NZ, NumInputError
  2642. SET Point, (IY + Asm_Flag1)
  2643. INC DE
  2644. JR NumInputNumberChecking
  2645.  
  2646. NumInputExponentSet:
  2647. BIT Exponent, (IY + Asm_Flag1)
  2648. JR NZ, NumInputError
  2649. SET Exponent, (IY + Asm_Flag1)
  2650. LD B, 0
  2651. INC DE
  2652. JR NumInputNumberChecking
  2653.  
  2654. NumInputExponent:
  2655. PUSH AF
  2656. LD A, B
  2657. CP 3
  2658. JR Z, NumInputError2
  2659. LD A, C
  2660. SLA A
  2661. LD C, A
  2662. SLA A
  2663. SLA A
  2664. ADD A, C
  2665. LD C, A
  2666. POP AF
  2667. ADD A, C
  2668. LD C, A
  2669. INC DE
  2670. INC B
  2671. JP NumInputNumberChecking
  2672.  
  2673. NumInputExponentEnd:
  2674. LD A, C
  2675. ADD A, (IX)
  2676. LD (IX), A
  2677. RET
  2678.  
  2679. NumInputError2:
  2680. POP AF
  2681. NumInputError:
  2682. SCF
  2683. RET
  2684.  
  2685. ;***********************************************************************************************************************************
  2686. ;All the data used.
  2687. CreditText:
  2688. .DB "Credits: MOL", "----------------", "Programma: Arjan", "Cornelissen, V4A", "Versie: 3.1", "Datum: 22-03-'11", "In opdracht van:", "GR84+ Hugo Arjan", 0
  2689. RekenschemaText:
  2690. .DB "Rekenschema", 0
  2691. RekenschemaDisplay:
  2692. .DB %00000000, %00000001, %11111111, %00000000, %00000000
  2693. .DB %00000000, %00000001, %00000001, %00000000, %00000000
  2694. .DB %00000000, %00000001, %00100001, %00000000, %00000000
  2695. .DB %00000000, %00000001, %00101001, %00000000, %00000000
  2696. .DB %00000000, %00000001, %00111001, %00000000, %00000000
  2697. .DB %00000000, %00000001, %00001001, %00000000, %00000000
  2698. .DB %00000000, %00000001, %00001001, %00000000, %00000000
  2699. .DB %00000000, %00000001, %00000001, %00000000, %00000000
  2700. .DB %00000000, %00000001, %11111111, %00000000, %00000000
  2701. .DB %00000000, %00000000, %00010000, %00000000, %00000000
  2702. .DB %00000000, %00000001, %11010000, %00000000, %00000000
  2703. .DB %00000000, %00000001, %01010000, %00000000, %00000000
  2704. .DB %00000000, %00000001, %11010000, %00000000, %00000000
  2705. .DB %00000000, %00000000, %01010000, %00100000, %00000000
  2706. .DB %00000000, %00001001, %10010000, %01010000, %00000000
  2707. .DB %01111111, %11011101, %11111111, %01010111, %11111100
  2708. .DB %01000000, %01001001, %00000001, %01010100, %00000100
  2709. .DB %01000110, %01000001, %00110001, %00100100, %11100100
  2710. .DB %01001000, %01000001, %00001001, %00000100, %10000100
  2711. .DB %01001110, %01111111, %00010001, %11111100, %11000100
  2712. .DB %01001010, %01000001, %00001001, %00000100, %00100100
  2713. .DB %01001110, %01000001, %00110001, %00000100, %11000100
  2714. .DB %01000000, %01000001, %00000001, %00000100, %00000100
  2715. .DB %01111111, %11000001, %11111111, %00000111, %11111100
  2716. .DB %00000000, %00000000, %00010000, %00000000, %00000000
  2717. .DB %00000000, %00000001, %11010000, %00000000, %00000000
  2718. .DB %00000000, %00000001, %01010000, %00000000, %00000000
  2719. .DB %00000000, %00000001, %11010000, %00000000, %00000000
  2720. .DB %00000000, %00000001, %01010000, %00000000, %00000000
  2721. .DB %00000000, %00000001, %11010000, %00000000, %00000000
  2722. .DB %00000000, %00000001, %11111111, %00000000, %00000000
  2723. .DB %00000000, %00000001, %00000001, %00000000, %00000000
  2724. .DB %00000000, %00000001, %00110001, %00000000, %00000000
  2725. .DB %00000000, %00000001, %00001001, %00000000, %00000000
  2726. .DB %00000000, %00000001, %00010001, %00000000, %00000000
  2727. .DB %00000000, %00000001, %00100001, %00000000, %00000000
  2728. .DB %00000000, %00000001, %00111001, %00000000, %00000000
  2729. .DB %00000000, %00000001, %00000001, %00000000, %00000000
  2730. .DB %00000000, %00000001, %11111111, %00000000, %00000000
  2731. .DB %00000000, %00000000, %00010000, %00000000, %00000000
  2732. .DB %00000000, %00000001, %11010000, %00000000, %00000000
  2733. .DB %00000000, %00000000, %01010000, %00000000, %00000000
  2734. .DB %00000000, %00000000, %10010000, %00000000, %00000000
  2735. .DB %00000000, %00000001, %00010000, %00000000, %00000000
  2736. .DB %00000000, %00000001, %00010000, %00000000, %00000000
  2737. .DB %00000000, %00000001, %11111111, %00000000, %00000000
  2738. .DB %00000000, %00000001, %00000001, %00000000, %00000000
  2739. .DB %00000000, %00000001, %00010001, %00000000, %00000000
  2740. .DB %00000000, %00000001, %00110001, %00000000, %00000000
  2741. .DB %00000000, %00000001, %00010001, %00000000, %00000000
  2742. .DB %00000000, %00000001, %00010001, %00000000, %00000000
  2743. .DB %00000000, %00000001, %00111001, %00000000, %00000000
  2744. .DB %00000000, %00000001, %00000001, %00000000, %00000000
  2745. .DB %00000000, %00000001, %11111111, %00000000, %00000000
  2746. MenuBar11111:
  2747. .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
  2748. .DB %00000000, %00000000, %00010000, %00000000, %00000100, %00000000, %00000000, %01000000, %00000000, %00000100, %00000000, %00000000
  2749. .DB %00101000, %00000000, %00010001, %01000000, %00000101, %11000000, %00000000, %01001100, %00000000, %00000100, %10100000, %11000000
  2750. .DB %00111001, %00110010, %10010001, %01001101, %10000100, %01001000, %10011010, %01001010, %01100110, %10100100, %10100100, %01011000
  2751. .DB %00101010, %10101010, %10010001, %01010101, %01000100, %10010101, %01010101, %01001010, %10101010, %11000100, %11101010, %01010100
  2752. .DB %00101011, %00101010, %10010000, %10010101, %01000101, %00010101, %01010101, %01001010, %10101010, %10000100, %10101100, %01011000
  2753. .DB %00101001, %10101011, %10010000, %10001101, %01000101, %11001000, %10010001, %01001010, %01100110, %10000100, %10100110, %01010000
  2754. MenuBar11011:
  2755. .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
  2756. .DB %00000000, %00000000, %00010000, %00000000, %00000111, %10000000, %00000011, %11000000, %00000000, %00000100, %00000000, %00000000
  2757. .DB %00101000, %00000000, %00010001, %01000000, %00000100, %01110000, %00011100, %01001100, %00000000, %00000100, %10100000, %11000000
  2758. .DB %00111001, %00110010, %10010001, %01001101, %10000100, %00001111, %11100000, %01001010, %01100110, %10100100, %10100100, %01011000
  2759. .DB %00101010, %10101010, %10010001, %01010101, %01000100, %00001111, %11100000, %01001010, %10101010, %11000100, %11101010, %01010100
  2760. .DB %00101011, %00101010, %10010000, %10010101, %01000100, %01110000, %00011100, %01001010, %10101010, %10000100, %10101100, %01011000
  2761. .DB %00101001, %10101011, %10010000, %10001101, %01000111, %10000000, %00000011, %11001010, %01100110, %10000100, %10100110, %01010000
  2762. MenuBar11001:
  2763. .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
  2764. .DB %00000000, %00000000, %00010000, %00000000, %00000111, %10000000, %00000011, %11111000, %00000000, %00111100, %00000000, %00000000
  2765. .DB %00101000, %00000000, %00010001, %01000000, %00000100, %01110000, %00011100, %01000111, %00000001, %11000100, %10100000, %11000000
  2766. .DB %00111001, %00110010, %10010001, %01001101, %10000100, %00001111, %11100000, %01000000, %11111110, %00000100, %10100100, %01011000
  2767. .DB %00101010, %10101010, %10010001, %01010101, %01000100, %00001111, %11100000, %01000000, %11111110, %00000100, %11101010, %01010100
  2768. .DB %00101011, %00101010, %10010000, %10010101, %01000100, %01110000, %00011100, %01000111, %00000001, %11000100, %10101100, %01011000
  2769. .DB %00101001, %10101011, %10010000, %10001101, %01000111, %10000000, %00000011, %11111000, %00000000, %00111100, %10100110, %01010000
  2770. MenuBar10101:
  2771. .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
  2772. .DB %00000000, %00000000, %00011110, %00000000, %00111100, %00000000, %00000000, %01111000, %00000000, %00111100, %00000000, %00000000
  2773. .DB %00101000, %00000000, %00010001, %11000000, %11000101, %11000000, %00000000, %01000111, %00000001, %11000100, %10100000, %11000000
  2774. .DB %00111001, %00110010, %10010000, %00111110, %00000100, %01001000, %10011010, %01000000, %11111110, %00000100, %10100100, %01011000
  2775. .DB %00101010, %10101010, %10010000, %00111110, %00000100, %10010101, %01010101, %01000000, %11111110, %00000100, %11101010, %01010100
  2776. .DB %00101011, %00101010, %10010001, %11000001, %11000101, %00010101, %01010101, %01000111, %00000001, %11000100, %10101100, %01011000
  2777. .DB %00101001, %10101011, %10011110, %00000000, %00111101, %11001000, %10010001, %01111000, %00000000, %00111100, %10100110, %01010000
  2778. MenuBar11101:
  2779. .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
  2780. .DB %00000000, %00000000, %00010000, %00000000, %00000100, %00000000, %00000000, %01111000, %00000000, %00111100, %00000000, %00000000
  2781. .DB %00101000, %00000000, %00010001, %01000000, %00000101, %11000000, %00000000, %01000111, %00000001, %11000100, %10100000, %11000000
  2782. .DB %00111001, %00110010, %10010001, %01001101, %10000100, %01001000, %10011010, %01000000, %11111110, %00000100, %10100100, %01011000
  2783. .DB %00101010, %10101010, %10010001, %01010101, %01000100, %10010101, %01010101, %01000000, %11111110, %00000100, %11101010, %01010100
  2784. .DB %00101011, %00101010, %10010000, %10010101, %01000101, %00010101, %01010101, %01000111, %00000001, %11000100, %10101100, %01011000
  2785. .DB %00101001, %10101011, %10010000, %10001101, %01000101, %11001000, %10010001, %01111000, %00000000, %00111100, %10100110, %01010000
  2786. RekenschemaText1:
  2787. .DB "1:Volume", 0
  2788. .DB "2:Massa", 0
  2789. .DB "3:Aantal mol", 0
  2790. RekenschemaText2:
  2791. .DB "4:Aantal molecu.", 0
  2792. .DB "5:Gasvolume", 0
  2793. .DB "6:Liter oplossing", 0
  2794. .DB "7:Dichtheid", 0
  2795. .DB "8:Molair gewicht", 0
  2796. .DB "9:6.022*10^23", 0
  2797. .DB "0:Molair volume", 0
  2798. .DB "+:Concentratie", 0
  2799. VakjeMidden:
  2800. .DB %01111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111110 ;bovenste lijn
  2801. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;witregel
  2802. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2803. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2804. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2805. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2806. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2807. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;witregel
  2808. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2809. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2810. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2811. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2812. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
  2813. .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;witregel
  2814. VakjeMiddenOnderkant:
  2815. .DB %01111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 ;onderste lijn
  2816. .DB %00111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 ;schaduw
  2817. VakjeZijkantLinks:
  2818. .DB %01111111, %11000000
  2819. .DB %01000000, %01100000
  2820. .DB %01000000, %01100000
  2821. .DB %01000000, %01100000
  2822. .DB %01000000, %01100000
  2823. .DB %01000000, %01100000
  2824. .DB %01000000, %01100000
  2825. .DB %01000000, %01100000
  2826. .DB %01000000, %01100000
  2827. .DB %01000000, %01100000
  2828. .DB %01000000, %01100000
  2829. .DB %01000000, %01100000
  2830. .DB %01000000, %01100000
  2831. .DB %01000000, %01100000
  2832. .DB %01000000, %01100000
  2833. .DB %01000000, %01100000
  2834. .DB %01000000, %01100000
  2835. .DB %01000000, %01100000
  2836. .DB %01000000, %01100000
  2837. .DB %01000000, %01100000
  2838. .DB %01000000, %01100000
  2839. .DB %01000000, %01100000
  2840. .DB %01000000, %01100000
  2841. .DB %01000000, %01100000
  2842. .DB %01000000, %01100000
  2843. .DB %01000000, %01100000
  2844. .DB %01000000, %01100000
  2845. .DB %01000000, %01100000
  2846. .DB %01000000, %01100000
  2847. .DB %01000000, %01100000
  2848. .DB %01000000, %01100000
  2849. .DB %01000000, %01100000
  2850. .DB %01000000, %01100000
  2851. .DB %01000000, %01100000
  2852. .DB %01000000, %01100000
  2853. .DB %01000000, %01100000
  2854. .DB %01000000, %01100000
  2855. .DB %01000000, %01100000
  2856. .DB %01000000, %01100000
  2857. .DB %01000000, %01100000
  2858. .DB %01000000, %01100000
  2859. .DB %01000000, %01100000
  2860. .DB %01000000, %01100000
  2861. .DB %01000000, %01100000
  2862. .DB %01000000, %01100000
  2863. .DB %01000000, %01100000
  2864. .DB %01000000, %01100000
  2865. .DB %01000000, %01100000
  2866. .DB %01000000, %01100000
  2867. .DB %01000000, %01100000
  2868. .DB %01000000, %01100000
  2869. .DB %01000000, %01100000
  2870. .DB %01111111, %11100000
  2871. .DB %00111111, %11100000
  2872. LijnVerticaal:
  2873. .DB %10000000
  2874. .DB %10000000
  2875. .DB %10000000
  2876. .DB %10000000
  2877. .DB %10000000
  2878. .DB %10000000
  2879. .DB %10000000
  2880. .DB %10000000
  2881. .DB %10000000
  2882. .DB %10000000
  2883. LijnHorizontaal:
  2884. .DB %00011111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111100
  2885. VolumeText:
  2886. .DB "Volume", 0
  2887. VolumeTextExtra:
  2888. .DB "DM", SCube, 0
  2889. MassaText:
  2890. .DB "Massa", 0
  2891. MassaTextExtra:
  2892. .DB "G", 0
  2893. AantalMolText:
  2894. .DB "Aantal mol", 0
  2895. AantalMolTextExtra:
  2896. .Db "MOL", 0
  2897. AantalMoleculenText:
  2898. .DB "Aantal moleculen", 0
  2899. AantalMoleculenTextExtra:
  2900. .DB "<Geen eenheid>", 0
  2901. GasvolumeText:
  2902. .DB "Gasvolume", 0
  2903. GasvolumeTextExtra:
  2904. .DB "DM", SCube, 0
  2905. LiterOplossingText:
  2906. .DB "Liter oplossing", 0
  2907. LiterOplossingTextExtra:
  2908. .Db "L", 0
  2909. DichtheidText:
  2910. .DB "Dichtheid", 0
  2911. DichtheidTextExtra:
  2912. .DB "G/DM", SCube, 0
  2913. MolairGewichtText:
  2914. .DB "Molair gewicht", 0
  2915. MolairGewichtTextExtra:
  2916. .DB "G/MOL", 0
  2917. MolGetalText:
  2918. .DB "6.022*10^23", 0
  2919. MolGetalTextExtra:
  2920. .DB "<Geen eenheid>", 0
  2921. MolairVolumeText:
  2922. .DB "Molair volume", 0
  2923. MolairVolumeTextExtra:
  2924. .DB "DM", SCube, "/MOL", 0
  2925. ConcentratieText:
  2926. .DB "Concentratie", 0
  2927. ConcentratieTextExtra:
  2928. .DB "MOL/L", 0
  2929. RechtsCapA:
  2930. .DB 3
  2931. .DB %11110000
  2932. .DB %00101000
  2933. .DB %11110000
  2934. RechtsCapC:
  2935. .DB 3
  2936. .DB %01110000
  2937. .DB %10001000
  2938. .DB %10001000
  2939. RechtsCapG:
  2940. .DB 3
  2941. .DB %01110000
  2942. .DB %10001000
  2943. .DB %11101000
  2944. RechtsCapM:
  2945. .DB 3
  2946. .DB %11111000
  2947. .Db %00110000
  2948. .DB %11111000
  2949. RechtsA:
  2950. .DB 3
  2951. .DB %01100000
  2952. .DB %10010000
  2953. .DB %11110000
  2954. RechtsC:
  2955. .DB 3
  2956. .DB %01100000
  2957. .DB %10010000
  2958. .DB %10010000
  2959. RechtsE:
  2960. .DB 3
  2961. .DB %01100000
  2962. .DB %11010000
  2963. .DB %10100000
  2964. RechtsI:
  2965. .DB 1
  2966. .DB %11101000
  2967. RechtsL:
  2968. .DB 2
  2969. .DB %00001000
  2970. .DB %11111000
  2971. RechtsM:
  2972. .DB 5
  2973. .DB %11110000
  2974. .DB %00010000
  2975. .DB %01100000
  2976. .DB %00010000
  2977. .DB %11100000
  2978. RechtsN:
  2979. .DB 3
  2980. .DB %11110000
  2981. .Db %00010000
  2982. .DB %11100000
  2983. RechtsO:
  2984. .DB 3
  2985. .DB %01100000
  2986. .DB %10010000
  2987. .DB %01100000
  2988. RechtsR:
  2989. .DB 3
  2990. .DB %11110000
  2991. .DB %00100000
  2992. .DB %00010000
  2993. RechtsS:
  2994. .DB 2
  2995. .DB %10110000
  2996. .DB %11010000
  2997. RechtsT:
  2998. .DB 2
  2999. .DB %01111000
  3000. .DB %10010000
  3001. RechtsU:
  3002. .DB 3
  3003. .DB %11110000
  3004. .DB %10000000
  3005. .DB %11110000
  3006. RechtsV:
  3007. .DB 3
  3008. .DB %00110000
  3009. .DB %11000000
  3010. .DB %00110000
  3011.  
  3012. LinksCapA:
  3013. .DB 3
  3014. .DB %00001111
  3015. .DB %00010100
  3016. .DB %00001111
  3017. LinksCapC:
  3018. .DB 3
  3019. .DB %00001110
  3020. .DB %00010001
  3021. .DB %00010001
  3022. LinksCapL:
  3023. .DB 3
  3024. .DB %00011111
  3025. .DB %00000001
  3026. .DB %00000001
  3027. LinksCapM:
  3028. .DB 3
  3029. .DB %00011111
  3030. .DB %00001100
  3031. .DB %00011111
  3032. LinksA:
  3033. .DB 3
  3034. .DB %0000110
  3035. .DB %0001001
  3036. .DB %0001111
  3037. LinksC:
  3038. .DB 3
  3039. .DB %00000110
  3040. .DB %00001001
  3041. .DB %00001001
  3042. LinksE:
  3043. .DB 3
  3044. .DB %00000110
  3045. .DB %00001011
  3046. .Db %00000101
  3047. LinksG:
  3048. .DB 3
  3049. .DB %00001001
  3050. .DB %00010101
  3051. .DB %00011110
  3052. LinksI:
  3053. .DB 1
  3054. .DB %00010111
  3055. LinksL:
  3056. .DB 2
  3057. .DB %00010000
  3058. .DB %00011111
  3059. LinksM:
  3060. .DB 5
  3061. .DB %00011111
  3062. .DB %00010000
  3063. .DB %00001110
  3064. .DB %00010000
  3065. .DB %00001111
  3066. LinksN:
  3067. .DB 3
  3068. .DB %00001111
  3069. .DB %00001000
  3070. .DB %00000111
  3071. LinksO:
  3072. .DB 3
  3073. .DB %00000110
  3074. .DB %00001001
  3075. .DB %00000110
  3076. LinksP:
  3077. .DB 3
  3078. .DB %00001111
  3079. .Db %00001010
  3080. .DB %00000100
  3081. LinksR:
  3082. .DB 3
  3083. .Db %00001111
  3084. .DB %00000100
  3085. .Db %00001000
  3086. LinksS:
  3087. .DB 2
  3088. .DB %00001101
  3089. .DB %00001011
  3090. LinksT:
  3091. .DB 2
  3092. .DB %00011110
  3093. .DB %00001001
  3094. LinksU:
  3095. .DB 3
  3096. .DB %00001111
  3097. .DB %00000001
  3098. .DB %00001111
  3099. LinksV:
  3100. .DB 3
  3101. .DB %00001100
  3102. .Db %00000011
  3103. .DB %00001100
  3104. ArrowLeft:
  3105. .DB 3
  3106. .DB %00010000
  3107. .DB %00111110
  3108. .DB %00010000
  3109. ArrowRight:
  3110. .DB 3
  3111. .DB %00000100
  3112. .DB %00111110
  3113. .DB %00000100
  3114. SideMultiply:
  3115. .DB 5
  3116. .DB %00010100
  3117. .DB %00001000
  3118. .DB %00111110
  3119. .DB %00001000
  3120. .DB %00010100
  3121. SideDevide:
  3122. .DB 3
  3123. .DB %00110000
  3124. .DB %00001000
  3125. .DB %00000110
  3126.  
  3127. HelpMenuBovenkant:
  3128. .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111110
  3129. HelpMenuMidden:
  3130. .DB %10000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011
  3131. HelpMenuOnder:
  3132. .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
  3133. HelpMenuSchaduw:
  3134. .DB %01111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
  3135. HelpMenuText:
  3136. .DB "Pijlen om te navigeren", 0
  3137. .DB "Menu:terug naar het menu", 0
  3138. .DB "Van:gegeven invullen", 0
  3139. .DB "Zoom:in/uitzoomen", 0
  3140. .DB "Naar:berekenen", 0
  3141. .DB "Help:help-menu", 0
  3142. InputVensterBovenkant:
  3143. .DB %00001111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11110000
  3144. InputVensterMiddenSchoon:
  3145. .DB %11111000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00111111
  3146. InputVensterMidden:
  3147. .Db %00001000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00110000
  3148. InputVensterOnder:
  3149. .DB %00001111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11110000
  3150. InputVensterSchaduw:
  3151. .DB %00000111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11110000
  3152. InputTextVolume: .DB "Volume:", 0
  3153. InputTextMassa: .DB "Massa:", 0
  3154. InputTextAantalMol: .DB "Aantal mol:", 0
  3155. InputTextAantalMoleculen: .DB "Aantal moleculen:", 0
  3156. InputTextGasvolume: .DB "Gasvolume:", 0
  3157. InputTextAantalLiterOplossing: .DB "Liter oplossing:", 0
  3158. InputTextDichtheid: .DB "Dichtheid:", 0
  3159. InputTextMolairGewicht: .DB "Moleculair gewicht:", 0
  3160. InputTextMolairVolume: .DB "Molair volume:", 0
  3161. InputTextConcentratie: .DB "Concentratie:", 0
  3162. ResultatenText: .DB "Resultaten:", 0
  3163. InputTextMolairGewicht2: .DB "Molair gewicht:", 0
  3164. InputTextAantalMoleculen2: .DB "Aantal molecu:", 0
  3165. InputNumbAantalMoleculen: .DB $00, $97, $60, $22, $00, $00, $00, $00, $00
  3166. DownMultiply:
  3167. .DB "*", LDownArrow, 0
  3168. UpMultiply:
  3169. .DB LUpArrow, " *", 0
  3170. DownDevide:
  3171. .DB "/", LDownArrow, 0
  3172. UpDevide:
  3173. .DB LUpArrow, " /", 0
  3174. TempInput:
  3175. .DB $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
  3176. ResultaatPenRow: .DB $00
  3177. .end
  3178. .end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement