home *** CD-ROM | disk | FTP | other *** search
- '─╘╩ ├ALCULATOR ═ODULE
- 'BY ┴. ┬ERNHARDT
- 'AS OF 910525
-
- ORG 40961
- NAM "CALC.MOD"
-
- JMP "START"
-
- "BUFFER" DFL 513
- "-READY" DFL 49152
- "-BASIC" DFL 49159
- "-ERROR" DFL 49186
-
- '--------------------------------------
- '╘HIS SUBROUTINE IS COPIED TO &C000:
-
- "+READY" LDA 6
- STA (1)
- JMP "READY"
- "+BASIC" LDA 7
- STA (1)
- JSR 42361 'TOKENIZE
- LDA 6
- STA (1)
- JSR "SYSCHECK"
- LDA 7
- STA (1)
- JSR 115
- JSR 42989
- JMP "-READY"
- "+ERROR" LDA 7
- STA (1)
- TXA
- PHA
- JSR 65484
- LDX 2
- JSR 65478
- LDX 2
- JSR 65481
- LDA &0D
- JSR 65490
- LDA $?
- JSR 65490
- PLA
- ASL
- TAX
- LDA (41766),X
- STA (34)
- LDA (41767),X
- STA (35)
- LDY 0
- "ER00" LDA [34],Y
- PHA
- AND 127
- JSR 65490
- INY
- PLA
- BPL "ER00"
- LDX 25
- STX (22)
- LDA 0
- STA (62)
- STA (16)
- LDA 6
- STA (1)
- LDY 0
- "ER01" LDA ("ERTEXT"),Y
- BEQ "ER02"
- JSR 65490
- INY
- BPL"ER01"
- "ER02" JMP "READY"
-
- '--------------------------------------
-
- "TITLE" DF $─╘╩-┬┬╙ ├ALCULATOR ╓1.0
- DF &0D0D
- DF $╨RESS ╥┼╘╒╥╬ BY ITSELF TO EXIT.
- DF &0D0D00
- "PROMPT" DF &0D
- DF $READY.
- DF &0D00
- "ERTEXT" DF $ ERROR
- DF &00
- "VECSAV" DF &000000000000000000000000
- "RNDSAV" DF &0000000000
-
- '--------------------------------------
-
- "START" LDY 0
- "ST00" LDA ("+READY"),Y
- STA (49152),Y
- INY
- CPY 150
- BNE "ST00"
- LDY 11
- "ST01" LDA (768),Y
- STA ("VECSAV"),Y
- DEY
- BPL "ST01"
- LDA L"-ERROR"
- STA (768)
- LDA H"-ERROR"
- STA (769)
- LDA L"-READY"
- STA (770)
- LDA H"-READY"
- STA (771)
- LDX 5
- "ST02" LDA (57),X
- PHA
- DEX
- BPL"ST02"
- LDA (122)
- PHA
- LDA (123)
- PHA
- TSX
- STX ("SAVS")
- JSR 65484
- LDX 2
- JSR 65478
- LDX 2
- JSR 65481
- LDY 0
- "ST03" LDA ("TITLE"),Y
- BEQ "READY"
- JSR 65490
- INY
- BCC "ST03"
- "READY" LDX ("SAVS")
- TXS
- JSR 65484
- LDX 2
- JSR 65478
- LDX 2
- JSR 65481
- LDY 0
- "RE00" LDA ("PROMPT"),Y
- BEQ "RE01"
- JSR 65490
- INY
- BCC "RE00"
- "RE01" LDY 0
- "RE02" JSR &C17D 'GET CHAR
- BCS "EXIT"
- CMP &0D
- BEQ "RE04"
- CMP &14
- BEQ "RE03"
- CMP &20
- BCC "RE02"
- CMP &3A
- BEQ "RE02"
- CPY 70
- BCS "RE02"
- JSR 65490
- STA ("BUFFER"),Y
- INY
- BNE "RE02"
- "RE03" CPY 0
- BEQ "RE02"
- JSR 65490
- DEY
- BPL "RE02"
- "RE04" JSR 65490
- CPY 0
- BNE "CALC"
-
- "EXIT" LDY 11
- "EX00" LDA ("VECSAV"),Y
- STA (768),Y
- DEY
- BPL "EX00"
- DF &A2
- "SAVS" DF &00
- PLA
- STA (123)
- PLA
- STA (122)
- LDX 0
- "EX01" PLA
- STA (57),X
- INX
- CPX 6
- BNE "EX01"
- JMP 65484
-
- "CALC" LDA 0
- STA ("BUFFER"),Y
- LDA $?
- STA (512)
- LDY 2
- LDX 255
- STX (58)
- INX
- STX (122)
- STY (123)
- JMP "-BASIC"
-
- "SYSCHECK" JSR "NORNDUSR"
- LDA (1028)
- CMP &D3
- BNE "SY01"
- "SY00" RTS
- "SY01" LDY 0
- STY (212)
- "SY02" LDA (512),Y
- BEQ "SY00"
- CMP &C2
- BEQ "SY05"
- CMP $E
- BEQ "SY06"
- CMP $A
- BCC "SY03"
- CMP $[
- BCS "SY03"
- LDA (212)
- BNE "SY03"
- "SY05" LDX 25
- JMP "-ERROR"
- "SY03" CMP 34
- BNE "SY04"
- LDA (212)
- EOR 255
- STA (212)
- "SY04" INY
- BNE "SY02"
- "SY06" DEY
- LDA (512),Y
- INY
- CMP $0
- BCC "SY05"
- CMP $:
- BCS "SY05"
- BCC "SY04"
-
- "NORNDUSR" LDY 0
- "NO00" LDA (512),Y
- BEQ "NO01"
- CMP &BB
- BEQ "SY05"
- CMP &B7
- BEQ "SY05"
- INY
- "NO01" RTS
-