Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .nolist
- #include "ti83plus.inc"
- #define ProgStart $9D95
- Cycle .equ 0
- Point .equ 1
- Exponent .equ 2
- .list
- .org ProgStart - 2
- .db t2ByteTok, tAsmCmp
- ;Flags:
- ;Asm_flag1: 0: RES = Output of menu in C
- ; SET = Output of menu in L
- ; 1: RES = Display the first 8 lines of text in the mainscreen
- ; SET = Display the last 8 lines of text in the mainscreen
- ; 2: RES = Van hasn't been entered yet
- ; SET = Van has already been entered
- ; 3: RES = HelpMenu is off
- ; SET = HelpMenu is on
- SET TextWrite, (IY + SGrFlags)
- RES 1, (IY + Asm_flag1)
- RES 2, (IY + Asm_flag1)
- MainMenu:
- CALL Menu
- .DB " Mol: ", 0 ;The menutitle (16 characters and a 0)
- .DB 4 ;The number of options
- .DB "Rekenschema " ;The first option
- .DB "Berekenen " ;The second option
- .DB "Credits " ;The fourth option
- .DB "Afsluiten " ;The third option
- BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
- JR Z, OutputInC ;If the flag is reset, the output is in C
- LD A, L ;Load L into A
- JR Checking ;Go ahead to check the option
- OutputInC:
- LD A, C ;Load C into A
- Checking:
- CP 1 ;If the option selected is 1...
- JR Z, Rekenschema ;Goto Rekenschema
- CP 2 ;If the option selected is 2...
- JP Z, Berekenen ;Goto Berekenen
- CP 3 ;If the option selected is 3...
- JP Z, Credits ;Goto Credits
- CP 4 ;If the option selected is 4...
- JP Z, Afsluiten ;Goto Afsluiten
- ;Rekenschema------------------------------------------------------------------------------------------------------------------------
- Rekenschema:
- CALL GraphClear
- ;Scherm 1: Het hoofdscherm..........................................................................................................
- ;Next, drawing the left part of the screen, which is fixed
- LD HL, RekenschemaDisplay ;Load the start address of the image into HL
- LD DE, PlotSScreen + 12 ;Load the address to store the image
- LD A, 54 ;54 rows of pixels
- DrawNextLine:
- LD BC, 5 ;5 bytes per row (40 pixels)
- LDIR ;Move the bytes to the desired location
- EX DE, HL ;DE = Address of image, HL = Address of PlotSScreen
- PUSH DE ;Store it temporarely
- LD DE, 7 ;Add 7 to HL
- ADD HL, DE
- POP DE ;Restore DE
- EX DE, HL ;HL = Address of image, DE = Address of PlotSScreen (incremented by 7)
- DEC A ;Decline one row
- JR NZ, DrawNextLine ;If there are more rows to draw, go back to DrawNextLine
- b_call(_GrBufCpy) ;Draw the actual image
- ;Next stop, the menubar
- BIT 2, (IY + Asm_flag1) ;Check the flag
- JR Z, MainScreenVanNotBeenEntered
- LD HL, MenuBar11011 ;Load the lable into HL
- JR DrawMenuBar
- MainScreenVanNotBeenEntered:
- LD HL, MenuBar11001 ;Load the lable into HL
- DrawMenuBar:
- LD DE, PlotSScreen + 684 ;684 bytes to skip in PlotSScreen
- LD BC, 84 ;84 bytes to display
- LDIR ;Move the bytes into PlotSScreen
- b_call(_GrBufCpy) ;Refresh the graphscreen
- MainScreenTextDraw:
- b_call(_GrBufCpy) ;Erase all the texts
- ;Drawing the title
- LD HL, $001E ;Load the pen
- LD (PenCol), HL
- LD HL, RekenschemaText ;Load the text
- b_call(_VPutS) ;Display the text
- ;Now, the text to the right
- ;C = the number of rows
- ;DE = Address of PenRow
- ;HL = Address of text to display
- LD C, 8 ;Load the number of rows of text
- LD HL, $0627 ;Load the cursor
- LD (PenCol), HL
- LD DE, PenRow ;Load the address of PenRow into DE
- BIT 1, (IY + Asm_flag1) ;Check if the flag is set or reset
- JR NZ, TextScrolledDown ;If it's set, goto textscrolleddown
- LD HL, RekenschemaText1 ;Load the address of the text into HL
- JR DisplayTextRekenSchema
- TextScrolledDown:
- LD HL, RekenschemaText2 ;Load the address of the text into HL
- DisplayTextRekenschema:
- LD A, $27 ;Set PenCol to $27
- LD (PenCol), A
- b_call(_VPutS) ;Display the text
- EX DE, HL ;DE = Address of text, HL = PenRow
- LD B, 6 ;6 pixels down for next row
- Incline_HL_:
- INC (HL) ;Incline PenRow
- DJNZ Incline_HL_ ;Repeat this 6 times
- EX DE, HL ;DE = PenRow, HL = Address of text
- DEC C ;Decline C
- JR NZ, DisplayTextRekenschema ;Repeat this 8 times
- b_call(_GrBufCpy)
- SchermHomeGetKey:
- b_call(_getKey) ;Wait for a key to be pressed
- CP kDown ;If down is pressed...
- JR Z, TextScrollSet ;Goto set the scrolltext flag
- CP kUp ;If up is pressed...
- JR Z, TextScrollReset ;Goto reset the scrolltext flag
- CP k1
- JP Z, Scherm1
- CP k2
- JP Z, Scherm2
- CP k3
- JP Z, Scherm3
- CP k4
- JP Z, Scherm4
- CP k5
- JP Z, Scherm5
- CP k6
- JP Z, Scherm6
- CP k7
- JP Z, Scherm7
- CP k8
- JP Z, Scherm8
- Cp k9
- JP Z, Scherm9
- CP k0
- JP Z, Scherm0
- CP kAdd
- JP Z, SchermPlus
- CP kYequ
- JP Z, MainMenu
- BIT 3, (IY + Asm_Flag1)
- JR NZ, SchermHomeHelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP SchermHomeGetKey
- SchermHomeHelpMenuOn:
- CP kGraph
- JR NZ, SchermHomeGetKey
- RES 3, (IY + Asm_Flag1)
- JP Rekenschema
- RET
- TextScrollReset:
- RES 1, (IY + Asm_flag1)
- JP MainScreenTextDraw
- TextScrollSet:
- SET 1, (IY + Asm_flag1)
- JP MainScreenTextDraw
- ;De andere schermen.................................................................................................................
- DrawMenuBar2:
- LD DE, PlotSScreen + 684
- LD BC, 84
- LDIR
- b_call(_GrBufCpy)
- RET
- SchermSelect:
- RES 3, (IY + Asm_Flag1)
- PUSH AF
- CALL GraphClear
- POP AF
- BIT 4, A
- PUSH AF
- CALL Z, DisplayVakjeMidden
- POP AF
- BIT 0, A
- PUSH AF
- CALL NZ, DisplayVakjeOnder
- POP AF
- BIT 1, A
- PUSH AF
- CALL NZ, DisplayVakjeBoven
- POP AF
- BIT 2, A
- PUSH AF
- CALL NZ, DisplayVakjeRechts
- POP AF
- BIT 3, A
- PUSH AF
- CALL NZ, DisplayVakjeLinks
- POP AF
- BIT 5, A
- PUSH AF
- CALL NZ, DisplayLineHorizontal
- POP AF
- BIT 2, (IY + Asm_flag1)
- JR Z, DisplayMenuBar11101
- LD HL, MenuBar11111
- JR ContinueSchermSelect
- DisplayMenuBar11101:
- LD HL, MenuBar11101
- ContinueSchermSelect:
- CALL DrawMenuBar2
- RET
- Scherm1:
- LD A, %00000010
- CALL SchermSelect
- LD HL, $1625
- LD (PenCol), HL
- LD HL, VolumeText
- b_call(_VPutS)
- LD DE, $1C2C
- LD (PenCol), DE
- b_call(_VPutS)
- LD DE, $0227
- LD (PenCol), DE
- b_call(_VPutS)
- LD HL, $0C21
- LD (PenCol), HL
- LD HL, DichtheidText
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm1GetKey:
- b_call(_getKey)
- CP kUP
- JP Z, Scherm7
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm1HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm1GetKey
- Scherm1HelpMenuOn:
- CP kGraph
- JR NZ, Scherm1GetKey
- RES 3, (IY + Asm_Flag1)
- JR Scherm1
- Scherm2:
- LD A, %00000011
- CALL SchermSelect
- LD HL, $1627
- LD (PenCol), HL
- LD HL, MassaText
- b_call(_VPutS)
- LD DE, $1C2F
- LD (PenCol), DE
- b_call(_VPutS)
- LD DE, $021F
- LD (PenCol), DE
- b_call(_VPutS)
- LD HL, $2F25
- LD (PenCol), HL
- LD HL, VolumeText
- b_call(_VPutS)
- LD HL, $0C18
- LD (PenCol), HL
- LD HL, MolairGewichtText
- b_call(_VPutS)
- LD HL, $2621
- LD (PenCol), HL
- LD HL, DichtheidText
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm2GetKey:
- b_call(_getKey)
- CP kDown
- JP Z, Scherm7
- CP kUp
- JP Z, Scherm8
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm2HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm2GetKey
- Scherm2HelpMenuOn:
- CP kGraph
- JR NZ, Scherm2GetKey
- RES 3, (IY + Asm_Flag1)
- JR Scherm2
- Scherm3:
- LD A, %00001111
- CALL SchermSelect
- LD DE, PlotSScreen + 624
- LD HL, LinksCapL
- CALL DisplayCharacter2
- LD HL, LinksI
- CALL DisplayCharacter2
- LD HL, LinksT
- CALL DisplayCharacter2
- LD HL, LinksE
- CALL DisplayCharacter2
- LD HL, LinksR
- CALL DisplayCharacter2
- CALL Spatie2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksP
- CALL DisplayCharacter2
- LD HL, LinksL
- CALL DisplayCharacter2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksS
- CALL DisplayCharacter2
- LD HL, LinksS
- CALL DisplayCharacter2
- LD HL, LinksI
- CALL DisplayCharacter2
- LD HL, LinksN
- CALL DisplayCharacter2
- LD HL, LinksG
- CALL DisplayCharacter2
- LD DE, PlotSScreen + 601
- LD HL, LinksCapC
- CALL DisplayCharacter2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksN
- CALL DisplayCharacter2
- LD HL, LinksC
- CALL DisplayCharacter2
- LD HL, LinksE
- CALL DisplayCharacter2
- LD HL, LinksN
- CALL DisplayCharacter2
- LD HL, LinksT
- CALL DisplayCharacter2
- LD HL, LinksR
- CALL DisplayCharacter2
- LD HL, LinksA
- CALL DisplayCharacter2
- LD HL, LinksT
- CALL DisplayCharacter2
- LD HL, LinksI
- CALL DisplayCharacter2
- LD HL, LinksE
- CALL DisplayCharacter2
- LD DE, PlotSScreen + 143
- LD HL, RechtsCapG
- CALL DisplayCharacter
- LD HL, RechtsA
- CALL DisplayCharacter
- LD HL, RechtsS
- CALL DisplayCharacter
- LD HL, RechtsV
- CALL DisplayCharacter
- LD HL, RechtsO
- CALL DisplayCharacter
- LD HL, RechtsL
- CALL DisplayCharacter
- LD HL, RechtsU
- CALL DisplayCharacter
- LD HL, RechtsM
- CALL DisplayCharacter
- LD HL, RechtsE
- CALL DisplayCharacter
- LD DE, PlotSScreen + 82
- LD HL, RechtsCapM
- CALL DisplayCharacter
- LD HL, RechtsO
- CALL DisplayCharacter
- LD HL, RechtsL
- CALL DisplayCharacter
- LD HL, RechtsA
- CALL DisplayCharacter
- LD HL, RechtsI
- CALL DisplayCharacter
- LD HL, RechtsR
- CALL DisplayCharacter
- CALL Spatie
- LD HL, RechtsV
- CALL DisplayCharacter
- LD HL, RechtsO
- CALL DisplayCharacter
- LD HL, RechtsL
- CALL DisplayCharacter
- LD HL, RechtsU
- CALL DisplayCharacter
- LD HL, RechtsM
- CALL DisplayCharacter
- LD HL, RechtsE
- CALL DisplayCharacter
- LD HL, $161F
- LD (PenCol), HL
- LD HL, AantalMolText
- b_call(_VPutS)
- LD DE, $1C2C
- LD (PenCol), DE
- b_call(_VPutS)
- LD DE, $0213
- LD (PenCol), DE
- b_call(_VPutS)
- LD HL, $0C1A
- LD (PenCol), HL
- LD HL, MolGetalText
- b_call(_VPutS)
- LD HL, $2F27
- LD (PenCol), HL
- LD HL, MassaText
- b_call(_VPutS)
- LD HL, $2618
- LD (PenCol), HL
- LD HL, MolairGewichtText
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm3GetKey:
- b_call(_getKey)
- CP kDown
- JP Z, Scherm8
- CP kUp
- JP Z, Scherm9
- CP kLeft
- JP Z, SchermPlus
- CP kRight
- JP Z, Scherm0
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm3HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm3GetKey
- Scherm3HelpMenuOn:
- CP kGraph
- JR NZ, Scherm3GetKey
- RES 3, (IY + Asm_Flag1)
- JP Scherm3
- Scherm4:
- LD A, %00000001
- CALL SchermSelect
- LD HL, $1613
- LD (PenCol), HL
- LD HL, AantalMoleculenText
- b_call(_VPutS)
- LD DE, $1C17
- LD (PenCol), DE
- b_call(_VPutS)
- LD DE, $2F1E
- LD (PenCol), DE
- LD HL, AantalMolText
- b_call(_VPutS)
- LD DE, $261A
- LD (PenCol), DE
- LD HL, MolGetalText
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm4GetKey:
- b_call(_getKey)
- CP kDown
- JP Z, Scherm9
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm4HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm4GetKey
- Scherm4HelpMenuOn:
- CP kGraph
- JR NZ, Scherm4GetKey
- RES 3, (IY + Asm_Flag1)
- JR Scherm4
- Scherm5:
- LD A, %00001000
- CALL SchermSelect
- LD DE, PlotSScreen + 625
- LD HL, LinksCapM
- CALL DisplayCharacter2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksL
- CALL DisplayCharacter2
- LD HL, LinksA
- CALL DisplayCharacter2
- LD HL, LinksI
- CALL DisplayCharacter2
- LD HL, LinksR
- CALL DisplayCharacter2
- CALL Spatie2
- LD HL, LinksV
- CALL DisplayCharacter2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksL
- CALL DisplayCharacter2
- LD HL, LinksU
- CALL DisplayCharacter2
- LD HL, LinksM
- CALL DisplayCharacter2
- LD HL, LinksE
- CALL DisplayCharacter2
- LD DE, PlotSScreen + 552
- LD HL, LinksCapA
- CALL DisplayCharacter2
- LD HL, LinksA
- CALL DisplayCharacter2
- LD HL, LinksN
- CALL DisplayCharacter2
- LD HL, LinksT
- CALL DisplayCharacter2
- LD HL, LinksA
- CALL DisplayCharacter2
- LD HL, LinksL
- CALL DisplayCharacter2
- CALL Spatie2
- LD HL, LinksM
- CALL DisplayCharacter2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksL
- CALL DisplayCharacter2
- LD HL, $161F
- LD (PenCol), HL
- LD HL, GasvolumeText
- b_call(_VPutS)
- LD DE, $1C2B
- LD (PenCol), DE
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm5GetKey:
- b_call(_getKey)
- CP kLeft
- JP Z, Scherm0
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm5HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm5GetKey
- Scherm5HelpMenuOn:
- CP kGraph
- JR NZ, Scherm5GetKey
- RES 3, (IY + Asm_Flag1)
- JP Scherm5
- Scherm6:
- LD A, %00000100
- CALL SchermSelect
- LD DE, PlotSScreen + 143
- LD HL, RechtsCapA
- CALL DisplayCharacter
- LD HL, RechtsA
- CALL Displaycharacter
- LD HL, RechtsN
- CALL Displaycharacter
- LD HL, RechtsT
- CALL Displaycharacter
- LD HL, RechtsA
- CALL Displaycharacter
- LD HL, RechtsL
- CALL Displaycharacter
- CALL Spatie
- LD HL, RechtsM
- CALL Displaycharacter
- LD HL, RechtsO
- CALL Displaycharacter
- LD HL, RechtsL
- CALL Displaycharacter
- LD DE, PlotSScreen + 94
- LD HL, RechtsCapC
- CALL DisplayCharacter
- LD HL, RechtsO
- CALL DisplayCharacter
- LD HL, RechtsN
- CALL DisplayCharacter
- LD HL, RechtsC
- CALL DisplayCharacter
- LD HL, RechtsE
- CALL DisplayCharacter
- LD HL, RechtsN
- CALL DisplayCharacter
- LD HL, RechtsT
- CALL DisplayCharacter
- LD HL, RechtsR
- CALL DisplayCharacter
- LD HL, RechtsA
- CALL DisplayCharacter
- LD HL, RechtsT
- CALL DisplayCharacter
- LD HL, RechtsI
- CALL DisplayCharacter
- LD HL, RechtsE
- CALL DisplayCharacter
- LD HL, $1618
- LD (PenCol), HL
- LD HL, LiterOplossingText
- b_call(_VPutS)
- LD DE, $1C2F
- LD (PenCol), DE
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm6GetKey:
- b_call(_getKey)
- CP kRight
- JP Z, SchermPlus
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm6HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm6GetKey
- Scherm6HelpMenuOn:
- CP kGraph
- JR NZ, Scherm6GetKey
- RES 3, (IY + Asm_Flag1)
- JP Scherm6
- Scherm7:
- LD A, %00010011
- CALL SchermSelect
- LD HL, $1621
- LD (PenCol), HL
- LD HL, DichtheidText
- b_call(_VPutS)
- LD DE, $1C27
- LD (PenCol), DE
- b_call(_VPutS)
- LD HL, $2F25
- LD (PenCol), HL
- LD HL, VolumeText
- b_call(_VPutS)
- LD HL, $0227
- LD (PenCol), HL
- LD HL, MassaText
- b_call(_VPutS)
- LD HL, $0D32
- LD (PenCol), HL
- LD HL, UpMultiply
- b_call(_VPutS)
- LD HL, $2632
- LD (PenCol), HL
- LD HL, UpMultiply
- b_call(_VPutS)
- LD HL, $0D28
- LD (PenCol), HL
- LD HL, DownDevide
- b_call(_VPutS)
- LD HL, $2628
- LD (PenCol), HL
- LD HL, DownDevide
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm7GetKey:
- b_call(_getKey)
- CP kUP
- JP Z, Scherm2
- CP kDown
- JP Z, Scherm1
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm7HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm7GetKey
- Scherm7HelpMenuOn:
- CP kGraph
- JR NZ, Scherm7GetKey
- RES 3, (IY + Asm_Flag1)
- JP Scherm7
- Scherm8:
- LD A, %00010011
- CALL SchermSelect
- LD HL, $1618
- LD (PenCol), HL
- LD HL, MolairGewichtText
- b_call(_VPutS)
- LD DE, $1C27
- LD (PenCol), DE
- b_call(_VPutS)
- LD HL, $2F27
- LD (PenCol), HL
- LD HL, MassaText
- b_call(_VPutS)
- LD HL, $021F
- LD (PenCol), HL
- LD HL, AantalMolText
- b_call(_VPutS)
- LD HL, $0D32
- LD (PenCol), HL
- LD HL, UpDevide
- b_call(_VPutS)
- LD HL, $2632
- LD (PenCol), HL
- LD HL, UpDevide
- b_call(_VPutS)
- LD HL, $0D26
- LD (PenCol), HL
- LD HL, DownMultiply
- b_call(_VPutS)
- LD HL, $2626
- LD (PenCol), HL
- LD HL, DownMultiply
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm8GetKey:
- b_call(_getKey)
- CP kUp
- JP Z, Scherm3
- CP kDown
- JP Z, Scherm2
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm8HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm8GetKey
- Scherm8HelpMenuOn:
- CP kGraph
- JR NZ, Scherm8GetKey
- RES 3, (IY + Asm_Flag1)
- JP Scherm8
- Scherm9:
- LD A, %00010011
- CALL SchermSelect
- LD HL, MenuBar10101
- CALL DrawMenuBar2
- LD HL, $161A
- LD (PenCol), HL
- LD HL, MolGetalText
- b_call(_VPutS)
- LD DE, $1C17
- LD (PenCol), DE
- b_call(_VPutS)
- LD HL, $0213
- LD (PenCol), HL
- LD HL, AantalMoleculenText
- b_call(_VPutS)
- LD HL, $2F1F
- LD (PenCol), HL
- LD HL, AantalMolText
- b_call(_VPutS)
- LD HL, $0D32
- LD (PenCol), HL
- LD HL, UpMultiply
- b_call(_VPutS)
- LD HL, $2632
- LD (PenCol), HL
- LD HL, UpMultiply
- b_call(_VPutS)
- LD HL, $0D28
- LD (PenCol), HL
- LD HL, DownDevide
- b_call(_VPutS)
- LD HL, $2628
- LD (PenCol), HL
- LD HL, DownDevide
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm9GetKey:
- b_call(_getKey)
- CP kUP
- JP Z, Scherm4
- CP kDown
- JP Z, Scherm3
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm9HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm9GetKey
- Scherm9HelpMenuOn:
- CP kGraph
- JR NZ, Scherm9GetKey
- RES 3, (IY + Asm_Flag1)
- JP Scherm9
- Scherm0:
- LD A, %00111100
- CALL SchermSelect
- LD DE, PlotSScreen + 552
- LD HL, LinksCapA
- CALL DisplayCharacter2
- LD HL, LinksA
- CALL DisplayCharacter2
- LD HL, LinksN
- CALL DisplayCharacter2
- LD HL, LinksT
- CALL DisplayCharacter2
- LD HL, LinksA
- CALL DisplayCharacter2
- LD HL, LinksL
- CALL DisplayCharacter2
- CALL Spatie2
- LD HL, LinksM
- CALL DisplayCharacter2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksL
- CALL DisplayCharacter2
- LD DE, PlotSScreen + 143
- LD HL, RechtsCapG
- CALL DisplayCharacter
- LD HL, RechtsA
- CALL DisplayCharacter
- LD HL, RechtsS
- CALL DisplayCharacter
- LD HL, RechtsV
- CALL DisplayCharacter
- LD HL, RechtsO
- CALL DisplayCharacter
- LD HL, RechtsL
- CALL DisplayCharacter
- LD HL, RechtsU
- CALL DisplayCharacter
- LD HL, RechtsM
- CALL DisplayCharacter
- LD HL, RechtsE
- CALL DisplayCharacter
- LD HL, $1619
- LD (PenCol), HL
- LD HL, MolairVolumeText
- b_call(_VPutS)
- LD DE, $1C23
- LD (PenCol), DE
- b_call(_VPutS)
- b_call(_GrBufCpy)
- Scherm0GetKey:
- b_call(_getKey)
- CP kLeft
- JP Z, Scherm3
- CP kRight
- JP Z, Scherm5
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, Scherm0HelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP Scherm0GetKey
- Scherm0HelpMenuOn:
- CP kGraph
- JR NZ, Scherm0GetKey
- RES 3, (IY + Asm_Flag1)
- JP Scherm0
- SchermPlus:
- LD A, %00111100
- CALL SchermSelect
- LD DE, PlotSScreen + 624
- LD HL, LinksCapL
- CALL DisplayCharacter2
- LD HL, LinksI
- CALL DisplayCharacter2
- LD HL, LinksT
- CALL DisplayCharacter2
- LD HL, LinksE
- CALL DisplayCharacter2
- LD HL, LinksR
- CALL DisplayCharacter2
- CALL Spatie2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksP
- CALL DisplayCharacter2
- LD HL, LinksL
- CALL DisplayCharacter2
- LD HL, LinksO
- CALL DisplayCharacter2
- LD HL, LinksS
- CALL DisplayCharacter2
- LD HL, LinksS
- CALL DisplayCharacter2
- LD HL, LinksI
- CALL DisplayCharacter2
- LD HL, LinksN
- CALL DisplayCharacter2
- LD HL, LinksG
- CALL DisplayCharacter2
- LD DE, PlotSScreen + 143
- LD HL, RechtsCapA
- CALL DisplayCharacter
- LD HL, RechtsA
- CALL Displaycharacter
- LD HL, RechtsN
- CALL Displaycharacter
- LD HL, RechtsT
- CALL Displaycharacter
- LD HL, RechtsA
- CALL Displaycharacter
- LD HL, RechtsL
- CALL Displaycharacter
- CALL Spatie
- LD HL, RechtsM
- CALL Displaycharacter
- LD HL, RechtsO
- CALL Displaycharacter
- LD HL, RechtsL
- CALL Displaycharacter
- LD HL, $161A
- LD (PenCol), HL
- LD HL, ConcentratieText
- b_call(_VPutS)
- LD DE, $1C27
- LD (PenCol), DE
- b_call(_VPutS)
- b_call(_GrBufCpy)
- SchermPlusGetKey:
- b_call(_getKey)
- CP kLeft
- JP Z, Scherm6
- CP kRight
- JP Z, Scherm3
- CP kYequ
- JP Z, MainMenu
- CP kZoom
- JP Z, Rekenschema
- BIT 3, (IY + Asm_Flag1)
- JR NZ, SchermPlusHelpMenuOn
- CP kGraph
- CALL Z, HelpMenu
- JP SchermPlusGetKey
- SchermPlusHelpMenuOn:
- CP kGraph
- JR NZ, SchermPlusGetKey
- RES 3, (IY + Asm_Flag1)
- JP SchermPlus
- DisplayVakjeMidden:
- LD HL, VakjeMidden
- LD DE, PlotSScreen + 254
- LD BC, 8
- LD A, 16
- MoveImage:
- LDIR
- EX DE, HL
- PUSH DE
- LD DE, 4
- ADD HL, DE
- POP DE
- EX DE, HL
- LD BC, 8
- DEC A
- JR NZ, MoveImage
- b_call(_GrBufCpy)
- RET
- DisplayVakjeBoven:
- LD HL, VakjeMidden
- LD DE, PlotSScreen + 14
- LD BC, 8
- LD A, 8
- MoveImage2:
- LDIR
- EX DE, HL
- PUSH DE
- LD DE, 4
- ADD HL, DE
- POP DE
- EX DE, HL
- LD BC, 8
- DEC A
- JR NZ, MoveImage2
- LD HL, VakjeMiddenOnderkant
- LD BC, 8
- LD A, 2
- MoveImage3:
- LDIR
- EX DE, HL
- PUSH DE
- LD DE, 4
- ADD HL, DE
- POP DE
- EX DE, HL
- LD BC, 8
- DEC A
- JR NZ, MoveImage3
- EX DE, HL
- LD DE, 4
- ADD HL, DE
- EX DE, HL
- LD HL, LijnVerticaal
- LD BC, 1
- LD A, 10
- MoveImage4:
- LDIR
- EX DE, HL
- PUSH DE
- LD DE, 11
- ADD HL, DE
- POP DE
- EX DE, HL
- LD BC, 1
- DEC A
- JR NZ, MoveImage4
- b_call(_GrBufCpy)
- RET
- DisplayVakjeOnder:
- LD HL, LijnVerticaal
- LD DE, PlotSScreen + 450
- LD BC, 1
- LD A, 9
- MoveImage5:
- LDIR
- EX DE, HL
- PUSH DE
- LD DE, 11
- ADD HL, DE
- POP DE
- EX DE, HL
- LD BC, 1
- DEC A
- JR NZ, MoveImage5
- EX DE, HL
- LD DE, 4
- OR A
- SBC HL, DE
- EX DE, HL
- LD HL, VakjeMidden
- LD BC, 8
- LD A, 8
- MoveImage6:
- LDIR
- EX DE, HL
- PUSH DE
- LD DE, 4
- ADD HL, DE
- POP DE
- EX DE, HL
- LD BC, 8
- DEC A
- JR NZ, MoveImage6
- LD HL, VakjeMiddenOnderkant
- LD BC, 8
- LD A, 2
- MoveImage7:
- LDIR
- EX DE, HL
- PUSH DE
- LD DE, 4
- ADD HL, DE
- POP DE
- EX DE, HL
- LD BC, 8
- DEC A
- JR NZ, MoveImage7
- b_call(_GrBufCpy)
- RET
- DisplayVakjeLinks:
- LD HL, VakjeZijkantLinks
- LD DE, PlotSScreen + 24
- LD BC, 2
- LD A, 54
- MoveImage8:
- LDIR
- EX DE, HL
- PUSH DE
- LD DE, 10
- ADD HL, DE
- POP DE
- EX DE, HL
- LD BC, 2
- DEC A
- JR NZ, MoveImage8
- b_call(_GrBufCpy)
- RET
- DisplayVakjeRechts:
- LD IX, VakjeZijkantLinks
- LD HL, PlotSScreen + 34
- LD B, 54
- MoveImage9:
- LD E, (IX)
- LD A, (IX + 1)
- SRL E
- RRA
- SRL E
- RRA
- SRL E
- RRA
- SRL E
- RRA
- SRL E
- RRA
- LD (HL), E
- INC HL
- LD (HL), A
- LD DE, 11
- ADD HL, DE
- INC IX
- INC IX
- DJNZ MoveImage9
- b_call(_GrBufCpy)
- RET
- ;Displaying characters
- ;Input: DE = Address in RAM
- ;Input: HL = Address of letter
- DisplayCharacter:
- LD B, (HL)
- INC HL
- UpdatePlotSScreen:
- LD A, (DE)
- OR (HL)
- LD (DE), A
- INC HL
- LD C, 12
- InclineDE:
- INC DE
- DEC C
- JR NZ, InclineDE
- DJNZ UpdatePlotSScreen
- Spatie:
- EX DE, HL
- LD DE, 12
- ADD HL, DE
- EX DE, HL
- RET
- DisplayCharacter2:
- LD B, (HL)
- INC HL
- UpdatePlotSScreen2:
- LD A, (DE)
- OR (HL)
- LD (DE), A
- INC HL
- LD C, 12
- DeclineDE2:
- DEC DE
- DEC C
- JR NZ, DeclineDE2
- DJNZ UpdatePlotSScreen2
- Spatie2:
- EX DE, HL
- LD DE, 12
- OR A
- SBC HL, DE
- EX DE, HL
- RET
- HelpMenu:
- SET 3, (IY + Asm_Flag1)
- LD HL, HelpMenuBovenkant
- LD DE, PlotSScreen + 192
- LD BC, 12
- LDIR
- LD A, 37
- DisplayHelpMenuMidden:
- LD HL, HelpMenuMidden
- LD BC, 12
- LDIR
- DEC A
- JR NZ, DisplayHelpMenuMidden
- LD BC, 24
- LDIR
- b_call(_GrBufCpy)
- ;Next: Text
- LD HL, $110C
- LD (PenCol), HL
- LD HL, HelpMenuText
- b_call(_VPutS)
- LD DE, $1705
- LD (PenCol), DE
- b_call(_VPutS)
- LD DE, $1D0C
- LD (PenCol), DE
- b_call(_VPutS)
- LD DE, $2310
- LD (PenCol), DE
- b_call(_VPutS)
- LD DE, $2916
- LD (PenCol), DE
- b_call(_VPutS)
- LD DE, $2F16
- LD (PenCol), DE
- b_call(_VPutS)
- b_call(_GrBufCpy)
- RET
- DisplayLineHorizontal:
- LD HL, LijnHorizontaal
- LD DE, PlotSScreen + 325
- LD B, 10
- Hehe:
- LD A, (DE)
- OR (HL)
- LD (DE), A
- INC HL
- INC DE
- DJNZ Hehe
- LD HL, ArrowLeft
- LD DE, PlotSScreen + 278
- CALL DisplayCharacter
- LD HL, ArrowLeft
- LD DE, PlotSScreen + 285
- CALL DisplayCharacter
- LD HL, ArrowRight
- LD DE, PlotSScreen + 350
- CALL DisplayCharacter
- LD HL, ArrowRight
- LD DE, PlotSScreen + 357
- CALL DisplayCharacter
- LD HL, SideDevide
- LD DE, PlotSScreen + 230
- CALL DisplayCharacter
- LD HL, SideDevide
- LD DE, PlotSScreen + 237
- CALL DisplayCharacter
- LD HL, SideMultiply
- LD DE, PlotSScreen + 398
- CALL DisplayCharacter
- LD HL, SideMultiply
- LD DE, PlotSScreen + 405
- CALL DisplayCharacter
- b_call(_GrBufCpy)
- RET
- ;-----------------------------------------------------------------------------------------------------------------------------------
- Berekenen:
- CALL Menu
- .DB " Van: ", 0
- .DB 7
- .DB "Volume "
- .DB "Massa "
- .DB "Aantal mol "
- .DB "Aantal molecu "
- .DB "Gasvolume "
- .DB "Liter oplossi "
- .DB "Anders "
- BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
- JR Z, OutputInC2 ;If the flag is reset, the output is in C
- LD A, L ;Load L into A
- JR Checking2 ;Go ahead to check the option
- OutputInC2:
- LD A, C ;Load C into A
- Checking2:
- LD D, A
- CP 7
- JR NZ, BerekenenNaar
- CALL Menu
- .DB " Van (vervolg): ", 0
- .DB 5
- .DB "Dichtheid "
- .DB "Molair gewicht"
- .DB "Molair volume "
- .DB "Concentratie "
- .DB "Terug "
- BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
- JR Z, OutputInC3 ;If the flag is reset, the output is in C
- LD A, L ;Load L into A
- JR Checking3 ;Go ahead to check the option
- OutputInC3:
- LD A, C ;Load C into A
- Checking3:
- CP 5
- JP Z, MainMenu
- ADD A, 6
- LD D, A
- BerekenenNaar:
- PUSH DE
- CALL Menu
- .DB " Naar: ", 0
- .DB 7
- .DB "Volume "
- .DB "Massa "
- .DB "Aantal mol "
- .DB "Aantal molecu "
- .DB "Gasvolume "
- .DB "Liter oplossi "
- .DB "Anders "
- BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
- JR Z, OutputInC4 ;If the flag is reset, the output is in C
- LD A, L ;Load L into A
- JR Checking4 ;Go ahead to check the option
- OutputInC4:
- LD A, C ;Load C into A
- Checking4:
- POP DE
- LD E, A
- CP 7
- JR NZ, BerekenenScherm
- PUSH DE
- CALL Menu
- .DB " Naar (vervolg):", 0
- .DB 5
- .DB "Dichtheid "
- .DB "Molair gewicht"
- .DB "Molair volume "
- .DB "Concentratie "
- .DB "Terug "
- BIT 0, (IY + Asm_flag1) ;Check the flag, to know whether the output is in L or C
- JR Z, OutputInC5 ;If the flag is reset, the output is in C
- LD A, L ;Load L into A
- JR Checking5 ;Go ahead to check the option
- OutputInC5:
- LD A, C ;Load C into A
- Checking5:
- POP DE
- CP 5
- JP Z, MainMenu
- ADD A, 6
- LD E, A
- BerekenenScherm:
- PUSH DE
- LD HL, HelpMenuBovenkant
- LD DE, PlotSScreen + 3*12
- LD BC, 12
- LDIR
- LD A, 51
- BerekenenSchermDisplayMidden:
- LD HL, HelpMenuMidden
- LD BC, 12
- LDIR
- DEC A
- JR NZ, BerekenenSchermDisplayMidden
- LD BC, 24
- LDIR
- LD HL, $041D
- LD (PenCol), HL
- LD HL, ResultatenText
- b_call(_VPutS)
- CALL BerekenenSchermOpslaan
- LD HL, $0103
- LD (CurRow), HL
- POP DE
- LD A, 1
- CP D
- JR Z, VanIsVolume
- INC A
- CP D
- JP Z, VanIsMassa
- INC A
- CP D
- JP Z, VanIsAantalMol
- INC A
- CP D
- JP Z, VanIsAantalMoleculen
- INC A
- CP D
- JP Z, VanIsGasvolume
- INC A
- CP D
- JP Z, VanIsAantalLiterOplossing
- INC A
- CP D
- JP Z, VanIsDichtheid
- INC A
- CP D
- JP Z, VanIsMolairGewicht
- INC A
- CP D
- JP Z, VanIsMolairVolume
- JP VanIsConcentratie
- VanIsVolume:
- PUSH DE
- CALL InputVolume
- CALL BerekenenSchermDisplay
- LD HL, $0A08
- LD (PenCol), HL
- LD HL, InputTextVolume
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- CALL BerekenenSchermOpslaan
- POP DE
- LD A, E
- CP 1
- JR NZ, VanIsVolume_NaarIsNietVolume
- b_call(_getKey)
- JP MainMenu
- VanIsVolume_NaarIsNietVolume:
- CP 7
- JR NZ, VanIsVolume_NaarIsNietDichtheid
- b_call(_OP1ExOP2)
- CALL InputMassa
- CALL BerekenenSchermDisplay
- LD A, $0A
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextMassa
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_FPDiv)
- CALL BerekenenSchermRecip
- LD HL, InputTextDichtheid
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- b_call(_getKey)
- JP MainMenu
- VanIsVolume_NaarIsNietDichtheid:
- PUSH AF
- b_call(_OP1ExOP2)
- CALL InputDichtheid
- CALL BerekenenSchermDisplay
- LD A, $0A
- LD (PenRow), A
- ADD A, 12
- LD (ResultaatPenRow), A
- CALL BerekenenSchermMult
- LD HL, InputTextDichtheid
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_FPMult)
- CALL BerekenenSchermNormal
- LD HL, InputTextMassa
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- CALL BerekenenSChermOpslaan
- POP AF
- CP 2
- JR NZ, VanIsVolume_NaarIsNietMassa
- b_call(_getKey)
- JP MainMenu
- VanIsVolume_NaarIsNietMassa:
- CP 8
- JR NZ, VanIsVolume_NaarIsNietMolairGewicht
- CALL MassaNaarMolairGewicht
- b_call(_getKey)
- JP MainMenu
- VanIsVolume_NaarIsNietMolairGewicht:
- PUSH AF
- CALL MassaNaarAantalMol
- POP AF
- CP 3
- JR NZ, VanIsVolume_NaarIsNietAantalMol
- b_call(_getKey)
- JP MainMenu
- VanIsVolume_NaarIsNietAantalMol:
- CP 4
- JR NZ, VanIsVolume_NaarIsNietAantalMoleculen
- NaarAantalMoleculen:
- CALL AantalMolNaarAantalMoleculen
- b_call(_getKey)
- JP MainMenu
- VanIsVolume_NaarIsNietAantalMoleculen:
- CP 5
- JR NZ, VanIsVolume_NaarIsNietGasVolume
- NaarGasVolume:
- CALL AantalMolNaarGasVolume
- b_call(_getKey)
- JP MainMenu
- VanIsVolume_NaarIsNietGasvolume:
- CP 9
- JR NZ, VanIsVolume_NaarIsNietMolairVolume
- NaarMolairVolume:
- CALL AantalMolNaarMolairVolume
- b_call(_getKey)
- JP MainMenu
- vanIsVolume_NaarIsNietMolairVolume:
- CP 6
- JR NZ, VanIsVolume_NaarIsNietAantalLiterOplossing
- NaarAantalLiterOplossing:
- CALL AantalMolNaarAantalLiterOplossing
- b_call(_getKey)
- JP MainMenu
- VanIsVolume_NaarIsNietAantalLiterOplossing:
- NaarConcentratie:
- CALL AantalMolNaarConcentratie
- b_call(_getKey)
- JP MainMenu
- VanIsMassa:
- PUSH DE
- CALL InputMassa
- CALL BerekenenSchermDisplay
- LD HL, $0A08
- LD (PenCol), HL
- LD A, H
- LD (ResultaatPenRow), A
- LD HL, InputTextMassa
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- CALL BerekenenSchermOpslaan
- POP DE
- LD A, E
- CP 2
- JR NZ, VanIsMassa_NaarIsNietMassa
- b_call(_getKey)
- JP MainMenu
- VanIsMassa_NaarIsNietMassa:
- CP 1
- JP Z, VanIsLiterOplossing_NaarIsNietDichtheid
- CP 7
- JP Z, VanIsLiterOplossing_NaarIsNietMassa
- JP VanIsVolume_NaarIsNietMassa
- VanIsAantalMol:
- PUSH DE
- CALL InputAantalMol
- CALL BerekenenSchermDisplay
- LD HL, $0A08
- LD (PenCol), HL
- LD A, H
- LD (ResultaatPenRow), A
- LD HL, InputTextAantalMol
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- CALL BerekenenSchermOpslaan
- POP DE
- LD A, E
- CP 3
- JR NZ, VanIsAantalMol_NaarIsNietAantalMol
- b_call(_getKey)
- JP MainMenu
- VanIsAantalMol_NaarIsNietAantalMol:
- CP 3
- JP C, VanIsLiterOplossing_NaarIsNietAantalMoleculen
- CP 7
- JP Z, VanIsLiterOplossing_NaarIsNietAantalMoleculen
- CP 8
- JP Z, VanIsLiterOplossing_NaarIsNietAantalMoleculen
- JP VanIsVolume_NaarIsNietAantalMol
- VanIsAantalMoleculen:
- PUSH DE
- CALL InputAantalMoleculen
- CALL BerekenenSchermDisplay
- LD HL, $0A08
- LD (PenCol), HL
- LD A, H
- LD (ResultaatPenRow), A
- LD HL, InputTextAantalMoleculen
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- CALL BerekenenSchermOpslaan
- POP DE
- LD A, E
- CP 4
- JR NZ, VanIsAantalMoleculen_NaarIsNietAantalMoleculen
- b_call(_getKey)
- JP MainMenu
- VanIsAantalMoleculen_NaarIsNietAantalMoleculen:
- PUSH AF
- b_call(_OP1ToOp2)
- LD HL, InputNumbAantalMoleculen
- b_call(_Mov9ToOP1)
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- CALL BerekenenSchermGetal
- b_call(_FPDiv)
- CALL BerekenenSchermNormal
- LD HL, InputTextAantalMol
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- CALL BerekenenSchermOpslaan
- POP AF
- CP 3
- JR NZ, VanIsAantalMoleculen_NaarIsNietAantalMol
- b_call(_getKey)
- JP MainMenu
- VanIsAantalMoleculen_NaarIsNietAantalMol:
- CP 3
- JP C, VanIsLiterOplossing_NaarIsNietAantalMoleculen
- CP 7
- JP C, VanIsVolume_NaarIsNietAantalMol
- CP 9
- JP C, VanIsLiterOplossing_NaarIsNietAantalMoleculen
- JP VanIsVolume_NaarIsNietAantalMol
- VanIsGasvolume:
- VanIsAantalLiterOplossing:
- PUSH DE
- CALL InputAantalLiterOplossing
- CALL BerekenenSchermDisplay
- LD HL, $0A08
- LD (PenCol), HL
- LD HL, InputTextAantalLiterOplossing
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- CALL BerekenenSchermOpslaan
- POP DE
- LD A, E
- CP 6
- JR NZ, VanIsLiterOplossing_NaarIsDatNiet
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOplossing_NaarIsDatNiet:
- CP 10
- JR NZ, VanIsLiterOplossing_NaarIsNietConcentratie
- b_call(_OP1ToOP2)
- CALL InputAantalMol
- CALL BerekenenSchermDisplay
- LD A, $0A
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextAantalMol
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_FPDiv)
- CALL BerekenenSchermRecip
- LD HL, InputTextConcentratie
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOplossing_NaarIsNietConcentratie:
- PUSH AF
- b_call(_OP1ToOP2)
- CALL InputConcentratie
- CALL BerekenenSchermDisplay
- LD A, $0A
- LD (PenRow), A
- ADD A, 12
- LD (ResultaatPenrow), A
- CALL BerekenenSchermMult
- LD HL, InputTextConcentratie
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_FPMult)
- CALL BerekenenSchermNormal
- LD HL, InputTextAantalMol
- b_call(_VPUtS)
- CALL BerekenenSchermGetal
- CALL BerekenenSchermOpslaan
- b_call(_GrBufCpy)
- POP AF
- CP 3
- JR NZ, VanIsLiterOplossing_NaarIsNietAantalMol
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOplossing_NaarIsNietAantalMol:
- CP 9
- JR NZ, VanIsLiterOplossing_NaarIsNietMolairVolume
- CALL AantalMolNaarMolairvolume
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOplossing_NaarIsNietMolairVolume:
- CP 5
- JR NZ, VanIsLiterOplossing_NaarIsNietGasVolume
- CALL AantalMolNaarGasVolume
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOplossing_NaarIsNietGasVolume:
- CP 4
- JR NZ, VanIsLiterOplossing_NaarIsNietAantalMoleculen
- CALL AantalMolNaarAantalMoleculen
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOplossing_NaarIsNietAantalMoleculen:
- CP 8
- JR NZ, VanIsLiterOplossing_NaarIsNietMolairGewicht
- CALL AantalMolNaarMolairGewicht
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOplossing_NaarIsNietMolairGewicht:
- PUSH AF
- CALL AantalMolNaarMassa
- POP AF
- CP 2
- JR NZ, VanIsLiterOplossing_NaarIsNietMassa
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOplossing_NaarIsNietMassa:
- CP 7
- JR NZ, VanIsLiterOPlossing_NaarIsNietDichtheid
- CALL MassaNaarDichtheid
- b_call(_getKey)
- JP MainMenu
- VanIsLiterOPlossing_NaarIsNietDichtheid:
- CALL MassaNaarVolume
- b_call(_getKey)
- JP MainMenu
- VanIsDichtheid:
- VanIsMolairGewicht:
- VanIsMOlairVolume:
- VanIsConcentratie:
- CALL InputMassa
- b_call(_getKey)
- CALL InputAantalMol
- b_call(_getKey)
- CALL InputAantalMoleculen
- b_call(_getKey)
- CALL InputGasvolume
- b_call(_getKey)
- CALL InputAantalLiterOplossing
- b_call(_getKey)
- CALL InputDichtheid
- b_call(_getKey)
- CALL InputMolairGewicht
- b_call(_getKey)
- CALL InputMolairVolume
- b_call(_getKey)
- CALL InputConcentratie
- b_call(_getKey)
- JP MainMenu
- MassaNaarMolairGewicht:
- b_call(_OP1ToOP2)
- CALL InputAantalMol
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextAantalMol
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_OP1ExOP2)
- b_call(_FPDiv)
- CALL BerekenenSchermNormal
- LD HL, InputTextMolairGewicht2
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- MassaNaarAantalMol:
- b_call(_OP1ToOP2)
- CALL InputMolairGewicht
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextMolairGewicht2
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_OP1ExOP2)
- b_call(_FPDiv)
- CALL BerekenenSchermNormal
- LD HL, InputTextAantalMol
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- CALL BerekenenSchermOpslaan
- b_call(_GrBufCpy)
- RET
- MassaNaarDichtheid:
- b_call(_OP1ToOP2)
- CALL InputVolume
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextVolume
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_OP1ExOP2)
- b_call(_FPDiv)
- CALL BerekenenSchermNormal
- LD HL, InputTextDichtheid
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- MassaNaarVolume:
- b_call(_OP1ToOP2)
- CALL InputDichtheid
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextDichtheid
- b_call(_VPutS)
- CALL BerekenenSChermGetal
- b_call(_OP1ExOP2)
- b_call(_FPDiv)
- CALL BerekenenSchermNormal
- LD HL, InputTextVolume
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- AantalMolNaarAantalMoleculen:
- CALL BerekenenSchermDisplay
- b_call(_OP1ToOP2)
- LD HL, InputNumbAantalMoleculen
- b_call(_Mov9ToOP1)
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermMult
- CALL BerekenenSchermGetal
- b_call(_FPMult)
- CALL BerekenenSchermNormal
- LD HL, InputTextAantalMoleculen2
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- AantalMolNaarGasVolume:
- b_call(_OP1ToOP2)
- CALL InputMolairVolume
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermMult
- LD HL, InputTextMolairVolume
- b_call(_VPutS)
- CALL BerekenenSChermGetal
- b_call(_FPMult)
- CALL BerekenenSchermNormal
- LD HL, InputTextGasvolume
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- AantalMolNaarMolairVolume:
- b_call(_OP1ToOP2)
- CALL InputGasVolume
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextGasvolume
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_FPDiv)
- CALL BerekenenSChermRecip
- LD HL, InputTextMolairVolume
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- AantalMolNaarAantalLiterOplossing:
- b_call(_OP1ToOp2)
- CALL InputConcentratie
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextConcentratie
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_Op1ExOp2)
- b_call(_FPDiv)
- CALL BerekenenSchermNormal
- LD HL, InputTextAantalLiterOplossing
- b_call(_VputS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- AantalMolNaarConcentratie:
- b_call(_OP1ToOP2)
- CALL InputAantalLiterOplossing
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextAantalLiterOplossing
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_OP1ExOP2)
- b_call(_FPDiv)
- CALL BerekenenSchermNormal
- LD HL, InputTextConcentratie
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- AantalMolNaarMolairGewicht:
- b_call(_OP1ToOP2)
- CALL InputMassa
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermDiv
- LD HL, InputTextMassa
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_FPDiv)
- CALL BerekenenSChermRecip
- LD HL, InputTextMolairGewicht2
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_GrBufCpy)
- RET
- AantalMolNaarMassa
- b_call(_OP1ToOP2)
- CALL InputMolairGewicht
- CALL BerekenenSchermDisplay
- LD A, (ResultaatPenRow)
- LD (PenRow), A
- CALL BerekenenSchermMult
- LD HL, InputTextMolairGewicht2
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- b_call(_FPMult)
- CALL BerekenenSchermNormal
- LD HL, InputTextMassa
- b_call(_VPutS)
- CALL BerekenenSchermGetal
- CALL BerekenenSchermOpslaan
- b_call(_GrBufCpy)
- RET
- InputVolume:
- CALL InputScherm
- LD HL, $1123
- LD (PenCol), HL
- LD HL, InputTextVolume
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputMassa:
- CALL InputScherm
- LD HL, $1126
- LD (PenCol), HL
- LD HL, InputTextMassa
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputAantalMol:
- CALL InputScherm
- LD HL, $111C
- LD (PenCol), HL
- LD HL, InputTextAantalMol
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputAantalMoleculen:
- CALL InputScherm
- LD HL, $1112
- LD (PenCol), HL
- LD HL, InputTextAantalMoleculen
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputGasvolume:
- CALL InputScherm
- LD HL, $111D
- LD (PenCol), HL
- LD HL, InputTextGasVolume
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputAantalLiterOplossing:
- CALL InputScherm
- LD HL, $1117
- LD (PenCol), HL
- LD HL, InputTextAantalLiterOplossing
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputDichtheid:
- CALL InputScherm
- LD HL, $1120
- LD (PenCol), HL
- LD HL, InputTextDichtheid
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputMolairGewicht:
- CALL InputScherm
- LD HL, $110F
- LD (PenCol), HL
- LD HL, InputTextMolairGewicht
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputMolairVolume:
- CALL InputScherm
- LD HL, $1118
- LD (PenCol), HL
- LD HL, InputTextMolairVolume
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- InputConcentratie:
- CALL InputScherm
- LD HL, $1119
- LD (PenCol), HL
- LD HL, InputTextConcentratie
- b_call(_VPutS)
- b_call(_GrBufCpy)
- LD HL, $0103
- LD (CurRow), HL
- LD C, 14
- CALL Input
- RET
- BerekenenSchermOpslaan:
- LD HL, PlotSScreen
- LD DE, AppBackupScreen
- LD BC, 768
- LDIR
- RET
- BerekenenSchermDisplay:
- LD HL, AppBackupScreen
- LD DE, PlotSScreen
- LD BC, 768
- LDIR
- RET
- InputScherm:
- LD HL, InputVensterBovenkant
- LD DE, PlotSScreen + 16*12
- LD B, 12
- InputSchermBovenkantDisplay:
- LD A, (DE)
- OR (HL)
- LD (DE), A
- INC DE
- INC HL
- DJNZ InputSchermBovenkantDisplay
- LD C, 15
- InputSchermMiddenDisplay2:
- LD B, 12
- LD HL, InputVensterMidden
- LD IX, InputVensterMiddenSchoon
- InputSchermMiddenDisplay:
- LD A, (DE)
- AND (IX)
- OR (HL)
- LD (DE), A
- INC HL
- INC DE
- INC IX
- DJNZ InputSchermMiddenDisplay
- DEC C
- JR NZ, InputSchermMIddenDisplay2
- LD B, 24
- InputSchermOnderDisplay:
- LD A, (DE)
- OR (HL)
- LD (DE), A
- INC HL
- INC DE
- DJNZ InputSchermOnderDisplay
- RET
- BerekenenSchermMult:
- LD A, $02
- LD (PenCol), A
- CALL BerekenenSchermNewLine
- LD A, "*"
- b_call(_VPutMap)
- LD A, $08
- LD (PenCol), A
- RET
- BerekenenSchermDiv:
- LD A, $04
- LD (PenCol), A
- CALL BerekenenSchermNewLine
- LD A, "/"
- b_call(_VPutMap)
- LD A, $08
- LD (PenCol), A
- RET
- BerekenenSChermRecip:
- LD A, $03
- LD (PenCol), A
- CALL BerekenenSchermNewLine
- LD A, SInverse
- b_call(_VPutMap)
- LD A, $08
- LD (PenCol), A
- RET
- BerekenenSchermNormal:
- LD A, $08
- LD (PenCol), A
- CALL BerekenenSchermNewLine
- RET
- BerekenenSchermGetal:
- LD A, $3B
- LD (PenCol), A
- LD A, 9
- b_call(_DispOP1A)
- RET
- BerekenenSchermNewLine:
- LD A, (PenRow)
- ADD A, 6
- LD (PenRow), A
- LD (ResultaatPenRow), A
- RET
- ;-----------------------------------------------------------------------------------------------------------------------------------
- Credits:
- b_call(_ClrLCDFull)
- LD HL, 0
- LD (CurRow), HL
- LD HL, CreditText
- b_call(_PutS)
- b_call(_getKey)
- JP MainMenu
- ;-----------------------------------------------------------------------------------------------------------------------------------
- Afsluiten:
- b_call(_ClrScrnFull)
- LD HL, 0
- LD (CurRow), HL
- LD (PenCol), HL
- RES TextWrite, (IY + SGrFlags)
- RET
- ;-----------------------------------------------------------------------------------------------------------------------------------
- Menu:
- ;This routine will make a menu, almost the same as the TI-basic one.
- ;The screen will be cleared after this routine has been completed.
- ;INPUT: The text via the code stream.
- ;OUTPUT:
- ; If bit 0, (IY + Asm_flag1) is reset, the output is in C
- ; If bit 0, (IY + Asm_flag1) is set, the output is in L
- RES AppAutoScroll, (IY + AppFlags) ;Keep the screen from rolling
- b_call(_ClrLCDFull) ;Clear the screen
- CALL TextInverseOn ;Set textinverse
- ld hl, $0000 ;Set cursor to (0,0)
- ld (CurRow), hl
- POP HL ;Pop the address of the menutitle
- LD D, H ;Store HL into DE
- LD E, L
- b_call(_PutS) ;Display the menutitle
- CALL TextInverseOff ;Reset textinverse
- LD B, 17 ;Seventeen bytes to advance, including the 0
- IncrementDE:
- INC DE
- DJNZ IncrementDE
- ;Drawing the text
- LD HL, $0201 ;Load the cursor for the first string
- LD (CurRow), HL
- LD HL, CurCol ;Load the address of the cursor in HL
- EX DE, HL ;Load the address of the number of rows to be drawn into HL
- LD C, (HL) ;Load that number into C
- PUSH BC ;Save C, because we're going to need it once more
- INC HL ;Load the address of the first character of the first option in the menu
- LD B, 14 ;14 characters per string
- DisplayText:
- LD A, (HL) ;Load the first character of the string into A
- b_call(_PutC) ;Display the character, and advance the cursor
- INC HL ;Set the address for the next character
- DJNZ DisplayText ;Repeat this 14 times
- EX DE, HL ;HL = Address of cursor, DE = Address of MenuText
- LD (HL), 2 ;Set (CurCol) to 2
- EX DE, HL ;HL = Address of MenuText, DE = Address of cursor
- LD B, 14 ;14 characters again.
- DEC C ;Decline number of times to repeat this
- JR NZ, DisplayText ;If the number of times to repeat this <> 0, repeat this
- POP BC ;Restore C, the number of options in the menu
- PUSH HL ;Store the address to jump to after the procedure has ended
- ld b, c ;Store the number of options into B
- ld h, b ;Save this number in h
- ;Drawing the numbers next
- DrawNumbersComplete:
- ld c, 1 ;C keeps track of the current option selected
- DrawNumbersSet:
- ld b, h ;Restore the number of numbers to be drawn into b.
- xor a ;Reset CurCol to 0
- ld (CurCol), A
- ld l, $31 ;load the hexvalue of "1" in L
- ld de, CurRow ;load the address of CurRow in DE
- ld a, 1 ;A keeps track of the current row to be drawn
- DrawNumbers:
- ld (DE), a ;CorRow now equals the number to be drawn
- cp c ;If C = A
- CALL Z, TextInverseOn ;Textinverse = on
- cp c ;If C <> A
- CALL NZ, TextInverseOff ;Textinverse = off
- PUSH AF ;Save A because it is needed to display characters
- ld a, l ;load the ASCII code of the number into A
- b_call(_PutC) ;Display the character, and advance the cursor
- ld a, Lcolon ;load the ASCII code of the ":" into A
- b_call(_PutMap) ;Display the character, not advance the cursor
- xor a ;Reset CurCol
- ld (CurCol), a
- inc hl ;Incline the number, because the numbers are placed right behind each other in ROM
- POP AF ;Recover A
- inc A ;Incline the row
- DJNZ DrawNumbers ;Repeat this, the number of times of the number of options
- UserInput:
- RES 0, (IY + Asm_Flag1) ;Resets the flag
- PUSH HL ;Save HL temporarely, because b_call(_getKey) messes it up
- b_call(_getKey) ;Gets the key pressed, and saves it in A
- POP HL ;Restore HL
- CP kDown ;If down is pressed...
- JR Z, InclineMenu ;Incline C
- CP kUP ;If up is pressed...
- JR Z, DeclineMenu ;Decline C
- CP kEnter ;If enter is pressed...
- RET Z ;Exit the procedure
- SET 0, (IY + Asm_Flag1) ;Sets the flag
- LD L, 1 ;L will save the option selected, if it was accessed by a number key
- LD B, H ;Load the number of options into B
- LD E, 7 ;7 keys to check max
- LD D, k1 ;Load the address of the first key into D
- CheckForNumber:
- CP D ;Substract D (only modifying flags)
- RET Z ;Exit the procedure if the right key is met
- DEC B ;Decline B
- JR Z, UserInput ;If 0, go to the userinput
- INC L ;Incline L
- INC D ;Incline D
- DEC E ;Decline E
- JR NZ, CheckForNumber ;Repeat this until either B or E met 0
- JR UserInput ;Go to userinput
- InclineMenu:
- INC C
- LD A, C
- DEC A
- CP H
- JP Z, DrawNumbersComplete
- JP DrawNumbersSet
- DeclineMenu:
- DEC C
- JP NZ, DrawNumbersSet
- LD C, H
- JP DrawNumbersSet
- TextInverseOn:
- SET TextInverse, (IY + TextFlags)
- RET
- TextInverseOff:
- RES TextInverse, (IY + TextFlags)
- RET
- GraphClear:
- LD HL, PlotSScreen ;Load the position of PlotSScreen into HL
- LD BC, 768 ;768 bytes to reset
- ClearOneByteOfScreen:
- LD (HL), 0 ;Load 0 into HL
- INC HL ;Incline HL
- DEC C ;Decline C
- JR NZ, ClearOneByteOfScreen ;Repeat this 768 times
- DEC B
- JR NZ, ClearOneByteOfScreen
- b_call(_GrBufCpy)
- RET
- ;Input routine:
- Input:
- PUSH DE
- CALL Input2
- POP DE
- CALL NumInput
- RET
- Input2:
- ;This routine is just like the input command in BASIC
- ;INPUT:
- ; C = Max. number of characters
- ; DE = Start of eventual storingsplace
- ;Info:
- ; B = Number of characters displayed
- ;Data: ScanCodeEqueates: (Down to numbers, ., - and e)
- ; $01 = skDown (v) -- (--) -- (--) -- --
- ; $02 = skLeft (<) -- (--) -- (--) -- --
- ; $03 = skRight (>) -- (--) -- (--) -- --
- ; $04 = skUp (^) -- (--) -- (--) -- --
- ; $05 = undefined
- ; $06 = undefined
- ; $07 = undefined
- ; $08 = undefined
- ; $09 = skEnter (ENTER) -- (ENTRY) -- (SOLVE) -- --
- ; $0A = skAdd (+) + (MEM) -- (") " "
- ; $0B = skSub (-) - (]) ] (W) W w
- ; $0C = skMul (*) * ([) [ (R) R r
- ; $0D = skDiv (/) / (e) e (M) M m
- ; $0E = skPower (^) ^ (pi) pi (H) H h
- ; $0F = skClear (CLEAR) -- (--) -- (--) -- --
- ; $10 = undefined
- ; $11 = skChs ((-)) (-) (ANS) -- (?) ? ?
- ; $12 = sk3 (3) 3 (L3) -- (Theta) Theta Theta
- ; $13 = sk6 (6) 6 (L6) -- (V) V v
- ; $14 = sk9 (9) 9 (w) w (Q) Q q
- ; $15 = skRParen ()) ) (}) } (L) L l
- ; $16 = skTan (Tan) -- (TAN^-1) -- (G) G g
- ; $17 = skVars (VARS) -- (DISTR) -- (--) -- --
- ; $18 = undefined
- ; $19 = skDecPnt (.) . (i) i (:) : :
- ; $1A = sk2 (2) 2 (L2) -- (Z) Z z
- ; $1B = sk5 (5) 5 (L5) -- (U) U u
- ; $1C = sk8 (8) 8 (v) v (P) P p
- ; $1D = skLParen (() ( ({) { (K) K k
- ; $1E = skCos (COS) -- (COS^-1) -- (F) F f
- ; $1F = skPrgm (PRGM) -- (DRAW) -- (C) C c
- ; $20 = skStat (STAT) -- (LIST) -- (--) -- --
- ; $21 = sk0 (0) 0 (CATALOG) -- ( )
- ; $22 = sk1 (1) 1 (L1) -- (Y) Y y
- ; $23 = sk4 (4) 4 (L4) -- (T) T t
- ; $24 = sk7 (7) 7 (u) u (O) O o
- ; $25 = skComma (,) , (EE) E (J) J j
- ; $26 = skSin (SIN) -- (SIN^-1) -- (E) E e
- ; $27 = skMatrix (APPS) -- (ANGLE) -- (B) B b
- ; $28 = skGraphVar (X,T,Q,n) X (LINK) -- (--) -- --
- ; $29 = undefined
- ; $2A = skStore (STO>) -- (RCL) -- (X) X x
- ; $2B = skLn (LN) -- (e^x) -- (S) S s
- ; $2C = skLog (LOG) -- (10^x) -- (N) N n
- ; $2D = skSquare (x²) ² (SQRT) -- (I) I i
- ; $2E = skRecip (x^-1) ^-1 (MATRIX) -- (D) D d
- ; $2F = skMath (MATH) -- (TEST) -- (A) A a
- ; $30 = skAlpha (ALPHA) -- (A-LOCK) -- (--) -- --
- ; $31 = skGraph (GRAPH) -- (TABLE) -- (F5) -- --
- ; $32 = skTrace (TRACE) -- (CALC) -- (F4) -- --
- ; $33 = skZoom (ZOOM) -- (FORMAT) -- (F3) -- --
- ; $34 = skWindow (WINDOW) -- (TBLSET) -- (F2) -- --
- ; $35 = skYequ (Y=) -- (STAT PLOT) -- (F1) -- --
- ; $36 = sk2nd (2nd) -- (--) -- (--) -- --
- ; $37 = skMode (MODE) -- (QUIT) -- (--) -- --
- ; $38 = skDel (DEL) -- (INS) -- (--) -- --
- RES Shift2nd, (IY + ShiftFlags)
- LD B, 0
- InputKey:
- SET CurOn, (IY + CurFlags)
- LD A, $FF
- LD (CurTime), A
- InputKey2:
- BIT Shift2nd, (IY + ShiftFlags)
- JR NZ, InputCur2nd
- LD L, LCurO
- JR InputKey4
- InputCur2nd:
- LD L, LCurO2
- InputKey4:
- LD A, (CurTime)
- DEC A
- LD (CurTime), A
- CALL Z, InputFlipCurState
- BIT CurOn, (IY + CurFlags)
- CALL Z, InputResetCur
- LD A, L
- b_call(_PutMap)
- InputKey3:
- PUSH HL
- b_call(_getCSC) ;Get a key
- POP HL
- OR A ;If no key is pressed...
- JR Z, InputKey2 ;...Abort
- CP skEnter ;If enter is pressed...
- RET Z ;...Exit the procedure
- CP skClear ;If clear is pressed...
- JP Z, InputClear ;...Go to InputClear
- CP skDel ;If DEl is pressed...
- JP Z, InputDel ;...Go to InputDel
- LD H, A
- LD A, B
- CP C
- JR Z, InputKey3
- LD A, H
- CP sk2nd ;If 2nd is pressed...
- JP Z, Input2nd ;...Go to Input2nd
- SUB $10 ;If the key pressed is outside the range...
- JR C, InputKey ;...Abort
- CP 27 ;If the key pressed is outisde the range...
- JR NC, InputKey ;...Abort
- BIT Shift2nd, (IY + ShiftFlags)
- JR NZ, Input2ndLUT
- LD HL, NormalLUT ;Load the LUT
- JR InputContinue
- Input2ndLUT:
- LD HL, 2ndLUT
- InputContinue:
- PUSH BC
- LD C, A ;Add the character
- LD B, 0
- ADD HL, BC
- POP BC
- LD A, (HL) ;Load the character
- OR A ;If not a correct symbol was found...
- JP Z, InputKey ;...Abort
- b_call(_PutC) ;Display it
- LD (DE), A
- INC DE
- INC B
- BIT Shift2nd, (IY + ShiftFlags)
- JR NZ, InputReset2nd
- JP InputKey
- InputFlipCurState:
- LD A, $FF
- LD (CurTime), A
- BIT CurOn, (IY + CurFlags)
- JR Z, InputCurOff
- RES CurOn, (IY + CurFlags)
- RET
- InputCurOff:
- SET CurOn, (IY + CurFlags)
- RET
- InputResetCur:
- LD L, " "
- RET
- Input2nd:
- BIT Shift2nd, (IY + ShiftFlags)
- JR Z, Input2ndOff
- InputReset2nd: RES Shift2nd, (IY + ShiftFlags)
- JP InputKey
- Input2ndOff:
- SET Shift2nd, (IY + ShiftFlags)
- JP InputKey
- InputClear:
- LD A, " "
- b_call(_PutMap)
- LD A, (CurRow) ;Get CurRow and CurCol into HL
- LD H, A
- LD A, (CurCol)
- LD L, A
- OR A ;Reset Carry
- SUB B ;Substract BC from HL
- InputCheckLineJumped:
- CP 16 ;If it did not jump a line...
- JR C, InputNoLineJumped ;...Go to InputNoLineJumped
- SUB $F0 ;If it did, substract $F0...
- DEC H
- JR InputCheckLineJumped ;...and check again.
- InputNoLineJumped:
- LD L, A
- LD A, H ;Save CurCol and CurRow again
- LD (CurRow), A
- LD A, L
- LD (CurCol), A
- LD HL, (CurRow) ;Save the cursor locations in HL
- LD A, " " ;Load space into A
- InputInsertSpace:
- b_call(_PutC) ;Display Space
- PUSH AF
- XOR A ;Make A 0
- DEC DE ;Decline InputData pointer
- LD (DE), A ;Clear 1 byte of InputData
- POP AF
- DJNZ InputInsertSpace ;Do this B times (and B was the number of digits)
- LD (CurRow), HL ;Reset the cursor locations
- JP InputKey ;Return
- InputDel:
- LD A, " "
- b_call(_PutMap)
- LD A, B
- OR A
- JP Z, InputKey
- LD A, (CurCol)
- OR A
- JR Z, InputDelJumpLine
- DEC A
- LD (CurCol), A
- JR InputDelContinue
- InputDelJumpLine:
- LD A, 15
- LD (CurCol), A
- LD HL, CurRow
- DEC (HL)
- InputDelContinue:
- DEC DE
- XOR A
- LD (DE), A
- DEC B
- JP InputKey
- NormalLUT:
- .DB 0, Lneg, "369",0, 0, 0, 0, ".258", 0
- .DB 0, 0, 0, "0147,"
- 2ndLUT:
- .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- .DB 0, 0, 0, 0, 0, 0, 0, Lexponent
- InputData:
- .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ;The data will be stored here... eventually
- .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- .DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- NumInput:
- ;This routine will retrieve a number out of a string.
- ;INPUT:
- ; DE = Null-terminated start of data
- SET Cycle, (IY + Asm_Flag1)
- RES Point, (IY + Asm_Flag1)
- RES Exponent, (IY + Asm_Flag1)
- b_call(_OP1Set0)
- LD C, 0
- LD B, 0
- LD HL, OP1 + 2
- LD IX, OP1 + 1
- DEC (IX)
- NumInputFurtherChecking:
- LD A, (DE)
- CP L0
- JR Z, NumInputFirstIsZero
- CP Lneg
- JR NZ, NumInputNumberChecking
- LD A, $80
- DEC HL
- DEC HL
- LD (HL), A
- INC HL
- INC HL
- INC DE
- JR NumInputNumberChecking
- NumInputFirstIsZero:
- INC DE
- JR NumInputFurtherChecking
- NumInputNumberChecking:
- LD A, (DE)
- OR A
- JR NZ, NumInputNoEnd
- BIT Exponent, (IY + Asm_Flag1)
- JR NumInputExponentEnd
- RET Z
- NumInputNoEnd:
- CP LPeriod
- JR Z, NumInputPointSet
- CP LExponent
- JR Z, NumInputExponentSet
- SUB $30
- JR C, NumInputError
- CP 10
- JR NC, NumInputError
- BIT Exponent, (IY + Asm_Flag1)
- JR NZ, NumInputExponent
- BIT Cycle, (IY + Asm_Flag1)
- JR Z, NumInputNoCycle
- SLA A
- SLA A
- SLA A
- SLA A
- LD (HL), A
- RES Cycle, (IY + Asm_Flag1)
- INC B
- INC DE
- BIT Point, (IY + Asm_Flag1)
- JR NZ, NumInputNumberChecking
- INC (IX)
- JR NumInputNumberChecking
- NumInputNoCycle:
- OR (HL)
- LD (HL), A
- SET Cycle, (IY + Asm_Flag1)
- INC HL
- INC DE
- INC B
- BIT Point, (IY + Asm_Flag1)
- JR NZ, NumInputNumberChecking
- INC (IX)
- JR NumInputNumberChecking
- NumInputPointSet:
- BIT Point, (IY + Asm_Flag1)
- JR NZ, NumInputError
- SET Point, (IY + Asm_Flag1)
- INC DE
- JR NumInputNumberChecking
- NumInputExponentSet:
- BIT Exponent, (IY + Asm_Flag1)
- JR NZ, NumInputError
- SET Exponent, (IY + Asm_Flag1)
- LD B, 0
- INC DE
- JR NumInputNumberChecking
- NumInputExponent:
- PUSH AF
- LD A, B
- CP 3
- JR Z, NumInputError2
- LD A, C
- SLA A
- LD C, A
- SLA A
- SLA A
- ADD A, C
- LD C, A
- POP AF
- ADD A, C
- LD C, A
- INC DE
- INC B
- JP NumInputNumberChecking
- NumInputExponentEnd:
- LD A, C
- ADD A, (IX)
- LD (IX), A
- RET
- NumInputError2:
- POP AF
- NumInputError:
- SCF
- RET
- ;***********************************************************************************************************************************
- ;All the data used.
- CreditText:
- .DB "Credits: MOL", "----------------", "Programma: Arjan", "Cornelissen, V4A", "Versie: 3.1", "Datum: 22-03-'11", "In opdracht van:", "GR84+ Hugo Arjan", 0
- RekenschemaText:
- .DB "Rekenschema", 0
- RekenschemaDisplay:
- .DB %00000000, %00000001, %11111111, %00000000, %00000000
- .DB %00000000, %00000001, %00000001, %00000000, %00000000
- .DB %00000000, %00000001, %00100001, %00000000, %00000000
- .DB %00000000, %00000001, %00101001, %00000000, %00000000
- .DB %00000000, %00000001, %00111001, %00000000, %00000000
- .DB %00000000, %00000001, %00001001, %00000000, %00000000
- .DB %00000000, %00000001, %00001001, %00000000, %00000000
- .DB %00000000, %00000001, %00000001, %00000000, %00000000
- .DB %00000000, %00000001, %11111111, %00000000, %00000000
- .DB %00000000, %00000000, %00010000, %00000000, %00000000
- .DB %00000000, %00000001, %11010000, %00000000, %00000000
- .DB %00000000, %00000001, %01010000, %00000000, %00000000
- .DB %00000000, %00000001, %11010000, %00000000, %00000000
- .DB %00000000, %00000000, %01010000, %00100000, %00000000
- .DB %00000000, %00001001, %10010000, %01010000, %00000000
- .DB %01111111, %11011101, %11111111, %01010111, %11111100
- .DB %01000000, %01001001, %00000001, %01010100, %00000100
- .DB %01000110, %01000001, %00110001, %00100100, %11100100
- .DB %01001000, %01000001, %00001001, %00000100, %10000100
- .DB %01001110, %01111111, %00010001, %11111100, %11000100
- .DB %01001010, %01000001, %00001001, %00000100, %00100100
- .DB %01001110, %01000001, %00110001, %00000100, %11000100
- .DB %01000000, %01000001, %00000001, %00000100, %00000100
- .DB %01111111, %11000001, %11111111, %00000111, %11111100
- .DB %00000000, %00000000, %00010000, %00000000, %00000000
- .DB %00000000, %00000001, %11010000, %00000000, %00000000
- .DB %00000000, %00000001, %01010000, %00000000, %00000000
- .DB %00000000, %00000001, %11010000, %00000000, %00000000
- .DB %00000000, %00000001, %01010000, %00000000, %00000000
- .DB %00000000, %00000001, %11010000, %00000000, %00000000
- .DB %00000000, %00000001, %11111111, %00000000, %00000000
- .DB %00000000, %00000001, %00000001, %00000000, %00000000
- .DB %00000000, %00000001, %00110001, %00000000, %00000000
- .DB %00000000, %00000001, %00001001, %00000000, %00000000
- .DB %00000000, %00000001, %00010001, %00000000, %00000000
- .DB %00000000, %00000001, %00100001, %00000000, %00000000
- .DB %00000000, %00000001, %00111001, %00000000, %00000000
- .DB %00000000, %00000001, %00000001, %00000000, %00000000
- .DB %00000000, %00000001, %11111111, %00000000, %00000000
- .DB %00000000, %00000000, %00010000, %00000000, %00000000
- .DB %00000000, %00000001, %11010000, %00000000, %00000000
- .DB %00000000, %00000000, %01010000, %00000000, %00000000
- .DB %00000000, %00000000, %10010000, %00000000, %00000000
- .DB %00000000, %00000001, %00010000, %00000000, %00000000
- .DB %00000000, %00000001, %00010000, %00000000, %00000000
- .DB %00000000, %00000001, %11111111, %00000000, %00000000
- .DB %00000000, %00000001, %00000001, %00000000, %00000000
- .DB %00000000, %00000001, %00010001, %00000000, %00000000
- .DB %00000000, %00000001, %00110001, %00000000, %00000000
- .DB %00000000, %00000001, %00010001, %00000000, %00000000
- .DB %00000000, %00000001, %00010001, %00000000, %00000000
- .DB %00000000, %00000001, %00111001, %00000000, %00000000
- .DB %00000000, %00000001, %00000001, %00000000, %00000000
- .DB %00000000, %00000001, %11111111, %00000000, %00000000
- MenuBar11111:
- .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
- .DB %00000000, %00000000, %00010000, %00000000, %00000100, %00000000, %00000000, %01000000, %00000000, %00000100, %00000000, %00000000
- .DB %00101000, %00000000, %00010001, %01000000, %00000101, %11000000, %00000000, %01001100, %00000000, %00000100, %10100000, %11000000
- .DB %00111001, %00110010, %10010001, %01001101, %10000100, %01001000, %10011010, %01001010, %01100110, %10100100, %10100100, %01011000
- .DB %00101010, %10101010, %10010001, %01010101, %01000100, %10010101, %01010101, %01001010, %10101010, %11000100, %11101010, %01010100
- .DB %00101011, %00101010, %10010000, %10010101, %01000101, %00010101, %01010101, %01001010, %10101010, %10000100, %10101100, %01011000
- .DB %00101001, %10101011, %10010000, %10001101, %01000101, %11001000, %10010001, %01001010, %01100110, %10000100, %10100110, %01010000
- MenuBar11011:
- .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
- .DB %00000000, %00000000, %00010000, %00000000, %00000111, %10000000, %00000011, %11000000, %00000000, %00000100, %00000000, %00000000
- .DB %00101000, %00000000, %00010001, %01000000, %00000100, %01110000, %00011100, %01001100, %00000000, %00000100, %10100000, %11000000
- .DB %00111001, %00110010, %10010001, %01001101, %10000100, %00001111, %11100000, %01001010, %01100110, %10100100, %10100100, %01011000
- .DB %00101010, %10101010, %10010001, %01010101, %01000100, %00001111, %11100000, %01001010, %10101010, %11000100, %11101010, %01010100
- .DB %00101011, %00101010, %10010000, %10010101, %01000100, %01110000, %00011100, %01001010, %10101010, %10000100, %10101100, %01011000
- .DB %00101001, %10101011, %10010000, %10001101, %01000111, %10000000, %00000011, %11001010, %01100110, %10000100, %10100110, %01010000
- MenuBar11001:
- .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
- .DB %00000000, %00000000, %00010000, %00000000, %00000111, %10000000, %00000011, %11111000, %00000000, %00111100, %00000000, %00000000
- .DB %00101000, %00000000, %00010001, %01000000, %00000100, %01110000, %00011100, %01000111, %00000001, %11000100, %10100000, %11000000
- .DB %00111001, %00110010, %10010001, %01001101, %10000100, %00001111, %11100000, %01000000, %11111110, %00000100, %10100100, %01011000
- .DB %00101010, %10101010, %10010001, %01010101, %01000100, %00001111, %11100000, %01000000, %11111110, %00000100, %11101010, %01010100
- .DB %00101011, %00101010, %10010000, %10010101, %01000100, %01110000, %00011100, %01000111, %00000001, %11000100, %10101100, %01011000
- .DB %00101001, %10101011, %10010000, %10001101, %01000111, %10000000, %00000011, %11111000, %00000000, %00111100, %10100110, %01010000
- MenuBar10101:
- .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
- .DB %00000000, %00000000, %00011110, %00000000, %00111100, %00000000, %00000000, %01111000, %00000000, %00111100, %00000000, %00000000
- .DB %00101000, %00000000, %00010001, %11000000, %11000101, %11000000, %00000000, %01000111, %00000001, %11000100, %10100000, %11000000
- .DB %00111001, %00110010, %10010000, %00111110, %00000100, %01001000, %10011010, %01000000, %11111110, %00000100, %10100100, %01011000
- .DB %00101010, %10101010, %10010000, %00111110, %00000100, %10010101, %01010101, %01000000, %11111110, %00000100, %11101010, %01010100
- .DB %00101011, %00101010, %10010001, %11000001, %11000101, %00010101, %01010101, %01000111, %00000001, %11000100, %10101100, %01011000
- .DB %00101001, %10101011, %10011110, %00000000, %00111101, %11001000, %10010001, %01111000, %00000000, %00111100, %10100110, %01010000
- MenuBar11101:
- .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
- .DB %00000000, %00000000, %00010000, %00000000, %00000100, %00000000, %00000000, %01111000, %00000000, %00111100, %00000000, %00000000
- .DB %00101000, %00000000, %00010001, %01000000, %00000101, %11000000, %00000000, %01000111, %00000001, %11000100, %10100000, %11000000
- .DB %00111001, %00110010, %10010001, %01001101, %10000100, %01001000, %10011010, %01000000, %11111110, %00000100, %10100100, %01011000
- .DB %00101010, %10101010, %10010001, %01010101, %01000100, %10010101, %01010101, %01000000, %11111110, %00000100, %11101010, %01010100
- .DB %00101011, %00101010, %10010000, %10010101, %01000101, %00010101, %01010101, %01000111, %00000001, %11000100, %10101100, %01011000
- .DB %00101001, %10101011, %10010000, %10001101, %01000101, %11001000, %10010001, %01111000, %00000000, %00111100, %10100110, %01010000
- RekenschemaText1:
- .DB "1:Volume", 0
- .DB "2:Massa", 0
- .DB "3:Aantal mol", 0
- RekenschemaText2:
- .DB "4:Aantal molecu.", 0
- .DB "5:Gasvolume", 0
- .DB "6:Liter oplossing", 0
- .DB "7:Dichtheid", 0
- .DB "8:Molair gewicht", 0
- .DB "9:6.022*10^23", 0
- .DB "0:Molair volume", 0
- .DB "+:Concentratie", 0
- VakjeMidden:
- .DB %01111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111110 ;bovenste lijn
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;witregel
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;witregel
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;text
- .DB %01000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011 ;witregel
- VakjeMiddenOnderkant:
- .DB %01111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 ;onderste lijn
- .DB %00111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 ;schaduw
- VakjeZijkantLinks:
- .DB %01111111, %11000000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01000000, %01100000
- .DB %01111111, %11100000
- .DB %00111111, %11100000
- LijnVerticaal:
- .DB %10000000
- .DB %10000000
- .DB %10000000
- .DB %10000000
- .DB %10000000
- .DB %10000000
- .DB %10000000
- .DB %10000000
- .DB %10000000
- .DB %10000000
- LijnHorizontaal:
- .DB %00011111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111100
- VolumeText:
- .DB "Volume", 0
- VolumeTextExtra:
- .DB "DM", SCube, 0
- MassaText:
- .DB "Massa", 0
- MassaTextExtra:
- .DB "G", 0
- AantalMolText:
- .DB "Aantal mol", 0
- AantalMolTextExtra:
- .Db "MOL", 0
- AantalMoleculenText:
- .DB "Aantal moleculen", 0
- AantalMoleculenTextExtra:
- .DB "<Geen eenheid>", 0
- GasvolumeText:
- .DB "Gasvolume", 0
- GasvolumeTextExtra:
- .DB "DM", SCube, 0
- LiterOplossingText:
- .DB "Liter oplossing", 0
- LiterOplossingTextExtra:
- .Db "L", 0
- DichtheidText:
- .DB "Dichtheid", 0
- DichtheidTextExtra:
- .DB "G/DM", SCube, 0
- MolairGewichtText:
- .DB "Molair gewicht", 0
- MolairGewichtTextExtra:
- .DB "G/MOL", 0
- MolGetalText:
- .DB "6.022*10^23", 0
- MolGetalTextExtra:
- .DB "<Geen eenheid>", 0
- MolairVolumeText:
- .DB "Molair volume", 0
- MolairVolumeTextExtra:
- .DB "DM", SCube, "/MOL", 0
- ConcentratieText:
- .DB "Concentratie", 0
- ConcentratieTextExtra:
- .DB "MOL/L", 0
- RechtsCapA:
- .DB 3
- .DB %11110000
- .DB %00101000
- .DB %11110000
- RechtsCapC:
- .DB 3
- .DB %01110000
- .DB %10001000
- .DB %10001000
- RechtsCapG:
- .DB 3
- .DB %01110000
- .DB %10001000
- .DB %11101000
- RechtsCapM:
- .DB 3
- .DB %11111000
- .Db %00110000
- .DB %11111000
- RechtsA:
- .DB 3
- .DB %01100000
- .DB %10010000
- .DB %11110000
- RechtsC:
- .DB 3
- .DB %01100000
- .DB %10010000
- .DB %10010000
- RechtsE:
- .DB 3
- .DB %01100000
- .DB %11010000
- .DB %10100000
- RechtsI:
- .DB 1
- .DB %11101000
- RechtsL:
- .DB 2
- .DB %00001000
- .DB %11111000
- RechtsM:
- .DB 5
- .DB %11110000
- .DB %00010000
- .DB %01100000
- .DB %00010000
- .DB %11100000
- RechtsN:
- .DB 3
- .DB %11110000
- .Db %00010000
- .DB %11100000
- RechtsO:
- .DB 3
- .DB %01100000
- .DB %10010000
- .DB %01100000
- RechtsR:
- .DB 3
- .DB %11110000
- .DB %00100000
- .DB %00010000
- RechtsS:
- .DB 2
- .DB %10110000
- .DB %11010000
- RechtsT:
- .DB 2
- .DB %01111000
- .DB %10010000
- RechtsU:
- .DB 3
- .DB %11110000
- .DB %10000000
- .DB %11110000
- RechtsV:
- .DB 3
- .DB %00110000
- .DB %11000000
- .DB %00110000
- LinksCapA:
- .DB 3
- .DB %00001111
- .DB %00010100
- .DB %00001111
- LinksCapC:
- .DB 3
- .DB %00001110
- .DB %00010001
- .DB %00010001
- LinksCapL:
- .DB 3
- .DB %00011111
- .DB %00000001
- .DB %00000001
- LinksCapM:
- .DB 3
- .DB %00011111
- .DB %00001100
- .DB %00011111
- LinksA:
- .DB 3
- .DB %0000110
- .DB %0001001
- .DB %0001111
- LinksC:
- .DB 3
- .DB %00000110
- .DB %00001001
- .DB %00001001
- LinksE:
- .DB 3
- .DB %00000110
- .DB %00001011
- .Db %00000101
- LinksG:
- .DB 3
- .DB %00001001
- .DB %00010101
- .DB %00011110
- LinksI:
- .DB 1
- .DB %00010111
- LinksL:
- .DB 2
- .DB %00010000
- .DB %00011111
- LinksM:
- .DB 5
- .DB %00011111
- .DB %00010000
- .DB %00001110
- .DB %00010000
- .DB %00001111
- LinksN:
- .DB 3
- .DB %00001111
- .DB %00001000
- .DB %00000111
- LinksO:
- .DB 3
- .DB %00000110
- .DB %00001001
- .DB %00000110
- LinksP:
- .DB 3
- .DB %00001111
- .Db %00001010
- .DB %00000100
- LinksR:
- .DB 3
- .Db %00001111
- .DB %00000100
- .Db %00001000
- LinksS:
- .DB 2
- .DB %00001101
- .DB %00001011
- LinksT:
- .DB 2
- .DB %00011110
- .DB %00001001
- LinksU:
- .DB 3
- .DB %00001111
- .DB %00000001
- .DB %00001111
- LinksV:
- .DB 3
- .DB %00001100
- .Db %00000011
- .DB %00001100
- ArrowLeft:
- .DB 3
- .DB %00010000
- .DB %00111110
- .DB %00010000
- ArrowRight:
- .DB 3
- .DB %00000100
- .DB %00111110
- .DB %00000100
- SideMultiply:
- .DB 5
- .DB %00010100
- .DB %00001000
- .DB %00111110
- .DB %00001000
- .DB %00010100
- SideDevide:
- .DB 3
- .DB %00110000
- .DB %00001000
- .DB %00000110
- HelpMenuBovenkant:
- .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111110
- HelpMenuMidden:
- .DB %10000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000011
- HelpMenuOnder:
- .DB %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
- HelpMenuSchaduw:
- .DB %01111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111
- HelpMenuText:
- .DB "Pijlen om te navigeren", 0
- .DB "Menu:terug naar het menu", 0
- .DB "Van:gegeven invullen", 0
- .DB "Zoom:in/uitzoomen", 0
- .DB "Naar:berekenen", 0
- .DB "Help:help-menu", 0
- InputVensterBovenkant:
- .DB %00001111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11110000
- InputVensterMiddenSchoon:
- .DB %11111000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00111111
- InputVensterMidden:
- .Db %00001000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00000000, %00110000
- InputVensterOnder:
- .DB %00001111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11110000
- InputVensterSchaduw:
- .DB %00000111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11110000
- InputTextVolume: .DB "Volume:", 0
- InputTextMassa: .DB "Massa:", 0
- InputTextAantalMol: .DB "Aantal mol:", 0
- InputTextAantalMoleculen: .DB "Aantal moleculen:", 0
- InputTextGasvolume: .DB "Gasvolume:", 0
- InputTextAantalLiterOplossing: .DB "Liter oplossing:", 0
- InputTextDichtheid: .DB "Dichtheid:", 0
- InputTextMolairGewicht: .DB "Moleculair gewicht:", 0
- InputTextMolairVolume: .DB "Molair volume:", 0
- InputTextConcentratie: .DB "Concentratie:", 0
- ResultatenText: .DB "Resultaten:", 0
- InputTextMolairGewicht2: .DB "Molair gewicht:", 0
- InputTextAantalMoleculen2: .DB "Aantal molecu:", 0
- InputNumbAantalMoleculen: .DB $00, $97, $60, $22, $00, $00, $00, $00, $00
- DownMultiply:
- .DB "*", LDownArrow, 0
- UpMultiply:
- .DB LUpArrow, " *", 0
- DownDevide:
- .DB "/", LDownArrow, 0
- UpDevide:
- .DB LUpArrow, " /", 0
- TempInput:
- .DB $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
- ResultaatPenRow: .DB $00
- .end
- .end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement