Download
Programmcode |
2000: 3E 00 P1: LD A, 00 ; Lade A mit 0
2002: 32 50 23 LD (2350), A ; Lade (2350) mit A(0)
2005: 32 51 23 LD (2351), A ; Lade (2350) mit A(0)
2008: 32 00 23 LD (2300), A ; Lade (2301) mit A(0)
200B: 32 01 23 LD (2301), A ; Lade (2301) mit A(0)
200E: 32 02 23 LD (2302), A ; Lade (2302) mit A(0)
2011: 32 03 23 LD (2303), A ; Lade (2303) mit A(0)
2014: 32 04 23 LD (2304), A ; Lade (2304) mit A(0)
2017: 32 05 23 LD (2305), A ; Lade (2305) mit A(0)
201A: 16 00 LD D, 0 ; Lade D mit 0
201C: DD 21 00 23 LD IX 0023 ; Lade IX mit 2300H
2020: CD 5A 08 CAll (085A) ; Aufruf DAK1(085A)
2023: FE 10 CP A, 10 ; A mit 10 vergleichen
2025: DA 30 20 JP C ; Springe Carry zu Nummern eingabe
2028: C3 60 20 JP ub. ; Springe zu Operatoren eingabe
202B: CA 60 20 HALT
202E: 76
Nummerneingabe:
2030: 21 50 23 LD HL, (2350) ; Lade HL (2350)
2033: 4F LD C, A ; Lade C mit A
2034: 7A LD A, D ; Lade A mit D
2035: FE 01 CP D 01 ; Vergleiche A mit 01
2037: CA 3D 20 JPZ (203D) ; Springe Wenn A = 01 einsweiter
203A: C3 3E 20 JP (203E) ; Springe anderen falls 1 weiter
203D: 23 INC HL ; erhöhe hl um 1
203E: 7E LD A, HL ; Lade A mit HL
203F: FE 00 CP 00 ; Vergleiche A mit 00
2041: CA 4C 20 JPZ 00 00 ; Springe A = 00 nach weiter machen
2044: 47 LD B, A ; Lade B, A
2045: 3E 00 LD A, 00 ; Lade A, 00
2047: M1: C6 10 ADD 10 ; Addiere A 10
2049: 77 LD HL, A ; in HL schreiben
204A: 10 FB DJNZ M1 ; DJNZ
204C: 7E LD A, HL ; Lade A, HL
204D: 81 ADD A, B ; Addiere C zu a // Fehler3
204E: 77 LD HL, A ; Schreibe A in HL
204F: 21 00 23 LD HL, 2300 ; Lade HL 2300
2052: CD D9 O8 CAll (08D9) ; Aufruf TWOSEG
2055: C3 1C 20 JP (201C) ; Sprung (201C)
Operatoren Eingabe
2060: FE 10 CP A, 10 ; CP A mit 10 und setze E auf 1
2062: CA 68 20 JP Z, (2068)
2065: C3 6C 20 JP (206C)
2068: 1E 01 LD E, 01
206A: 16 01 LD D, 01
206C: FE 11 CP A, 11 ; CP A mit 11 und setze E auf 2
206E: CA 74 20 JP Z, (2074)
2071: C3 78 20 JP (2078)
2074: 1E 02 LD E, 02
2076: 16 01 LD D, 01
2078: FE 19 CP A, 19 ; CP A mit 19 und setze E auf 3
207A: CA 80 20 JP Z,(2080)
207D: C3 84 20 JP (2084)
2080: 1E 03 LD E, 03
2082: 16 01 LD D, 01
2084: FE 14 CP A, 14 ; CP A mit 14 und setze E auf 4
2086: CA 8C 20 JP Z, (208C)
2089: C3 90 20 JP (2090)
208C: 1E 04 LD E, 04
208E: 16 01 LD D, 01
2090: FE 12 CP A, 12 ; CP A mit 12 und springe Execute (Ausrechenen)
2092: CA A0 20 JP Z, (20A0)
2095: FE 1F CP A, 1F ; CP A mit 1F und springe 2000 (Reset)
2097: CA 00 20 JP Z, (2200)
209A: C3 1C 20 JP M2
Execute
20A0: 7B LD A, E ; Lade A mit E
20A1: FE 01 CP 01 ; CP A mit 1 -> JP Add
20A3: CA C0 20 JPZ (20C0)
20A6: FE 02 CP 02 ; CP A mit 2 -> JP Sub
20A8: CA 05 21 JPZ (2105)
20AB: FE 03 CP 03 ; CP A mit 3 -> JP Mult
20AD: CA 30 21 JPZ (2130)
20B0: FE 04 CP 04 ; CP A mit 2 -> JP DIV
20B2: CA 80 21 JPZ (2180)
20B5: C3 1C 20 JP (201C)
Add
20C0: 3A 51 23 LD A, (2351) ; Lade A mit (2351)
20C3: 32 52 23 LD (2352), A ; Lade (2352) mit A
20C6: 3E 00 LD A, 00 ; Lade A mit 00
20C8: 32 51 23 LD (2351), A ; Lade (2351) mit A
20cB: 32 53 23 LD (2353), A ; Lade (2353) mit A
20CE: 2A 50 23 LD HL, (2350) ; Lade HL mit (2350)
20D1: ED 4B 52 23 LD BC, (2352) ; Lade BC mit (2352)
20D5: 09 ADD HL, BC ; ADD HL, BC
20D6: 22 50 23 LD (2350), HL ; Lade (2350) mit HL
20D9: 21 00 23 LD HL, 2300 ; Lade HL mit 2300
20DC: 3A 50 23 LD A, (2350) ; Lade A mit (3250)
20DF: CD D9 O8 CAll (08D9) ; Rufe TWOSEG
20E2: 3A 51 23 LD A, (2351) ; Lade A mit (3251)
20E5: 21 02 23 LD HL, 2302 ; Lade HL mit 2302
20E8: CD D9 O8 CAll (08D9) ; Rufe TWOSEG
20EB: 3E 00 LD A, 00 ; LADE A, 00
20ED: 57 LD D, A ; Lade D, A
20EE: 5F LD E, A ; Lade E, A
20EF: DD 21 00 23 LD IX, 2300 ; Lade IX 2300
20F3: CD 5A 08 CAll (085A) ; Rufe DAK 1
20F6: CD 50 22 Call (2250) ; Rufe (2250)
20F9: C3 23 20 JP (2023) ; Springe
SUB
2105: 21 00 23 LD HL, 2300 ; Lade HL 2300
2108: 3A 51 23 LD A, (2351) ; Lade A mit (2351)
210B: 47 LD B, A ; Lade B, A
210C: 3A 50 23 LD A, (2350) ; Lade A mit (2350)
210F: 90 SUB A, B ; SUB A, B
2110: CD D9 O8 CAll (08D9) ; TWOSEG
2113: 3E 00 LD A, 00 ; LADE A, 00
2115: 57 LD D, A ; Lade D, A
2116: 5F LD E, A ; Lade E, A
2117: DD 21 00 23 LD IX, 2300 ; Lade IX 2300
211B: CD 5A 08 CAll (085A) ; Rufe DAK 1
211E: CD 50 22 CALL (2250) ; Rufe (2250)
2121: C3 23 20 JP (2023) ; Springe
Mult:
2130: 3E 00 LD A, 00 ; Lade A mit 00
2132: 32 52 23 LD (2352), A ; Lade (2351) mit A
2135: 3A 50 23 LD A, (2350) ; Lade A mit 2350
2138: FE 00 CP A, 00 ; Vergleiche A mit 00
213A: CA 00 22 JP Z Null ; Springe Null
213D: 21 00 00 LD HL, 0000 ; Lade HL, 0000
2140: ED 5B 51 23 LD DE, (2351) ; Lade DE mit (2351)
2144: 47 LD B, A ; Lade B mit A
2145: 19 ADD HL, DE ; ADD HL, DE
2146: 10 FD DJNZ ; DJNZ
2148: 22 50 23 LD (2350), HL ; Lade (2350) mit HL
214B: 21 00 23 LD HL, 2300 ; Lade HL mit 2300
214E: 3A 50 23 LD A, (2350) ; Lade A mit (2350)
2151: CD D9 08 CALL (08D9) ; Rufe TWOSEG
2154: 21 02 23 LD HL, 2302 ; Lade HL mit 2302
2157: 3A 51 23 LD A, (2351) ; Lade A mit (2351)
215A: CD D9 08 CALL (08D9) ; Rufe TWOSEG
215D: 3E 00 LD A, 00 ; Lade A, 00
215F: 57 LD D, A ; Lade D, A
2160: 5F LD E, A ; Lade E, A
2161: DD 21 00 23 LD IX, 2300 ; Lade IX 2300
2165: CD 5A 08 CAll (085A) ; Rufe DAK1
2168: CD 50 22 CALL (2250) ; Rufe (2250)
216B: C3 23 20 JP ; Springe
Div:
2180: 3A 51 23 LD A, (2351) ; Lade A mit (2351)
2183: 0E 00 LD C, 00 ; Lade C mit 00
2185: FE 00 CP A, 00 ; CP A, 00
2187: CA 11 22 JP Z (22 11) ; JP Z MAth Error
218A: 47 LD B, A ; Lade B mit A
218B: 3A 50 23 LD A, (2350) ; Lade A mit (2350)
218E: B8 CP A, B ; Vergleiche A mit B
218F: DA 97 21 JP C ; Wenn B größer Springe rest anzeige
2192: 90 SUB A, B ; Sutrahiere B von A
2193: 0C INC C ; erhöhe C um eins
2194: C3 8E 21 JP back ; Springe Vergleich
2197: 21 00 23 LD HL, 2300 ; Lade HL mit 2300
219A: CD D9 08 CALL (08D9) ; Rufe TWOSEG
219D: 36 48 LD M, 48 ; Lade HL mit Segcode für R
219F: 79 LD A, C ; Lade A mit C
21A0: 23 INC HL ; Increment HL
21A1: CD D9 08 CALL (08D9) ; TWOSEG
21A4: 16 00 LD D, 00 ; Lade D, A
21A6: 1E 00 LD E, 00 ; Lade E, A
21A8: DD 21 00 23 LD IX, 2300 ; Lade IX 2300
21AC: CD 5A 08 Call (085A) ; Rufe DAK1
21AF: CD 50 22 CALL (2250) ; Rufe Reset
21B2: C3 23 20 JP (2023) ; Springe
2200: 3E E7 LD A, E7 ; Lade A, E7
2204: 32 00 23 LD (2300), A ; Lade (2300) mit A
2205: 32 01 23 LD (2301), A ; Lade (2301) mit A
2208: CD 5A 08 Call (085A) ; Rufe DAK1
220B: CD 50 22 CALL (2250) ; Rufe Reset
220E: C3 23 20 JP (2023) ; Springe
2211: 3E 48
2213: 32 00 23 LD (2300), A ; Lade (2300) mit A
2216: 3E E8
2218: 32 01 23 LD (2300), A ; Lade (2300) mit A
221B: 3E 48
221D: 32 02 23 LD (2300), A ; Lade (2300) mit A
2220: 32 03 23 LD (2300), A ; Lade (2300) mit A
2223: 3E CE
2225: 32 04 23 LD (2300), A ; Lade (2300) mit A
2228: CD 5A 08 Call (085A) ; Rufe DAK1
222B: CD 50 22 CALL (2250) ; Rufe Reset
222E: C3 23 20 JP (2023) ; Springe
RESET:
2250: D9 EXX ; Lade Alternativregister
2251: 06 06 LD B, 06 ; Lade B mit 06
2253: 3E 00 LD A, 00 ; Lade A mit 00
2255: 21 00 23 LD HL, 2300 ; Lade HL 2300
2258: 77 LD M, A ; Lade M mit A
2259: 23 INC HL ; HL + 1
225A: 10 FC DJNZ
225C: 32 50 23 LD (2350), A
225F: 32 51 23 LD (2351), A
2262: D9 EXX
2263: 16 00 LD D, 00
2265: 1E 00 LD E, 00
2267: C9 RET
|
Download als .txt |
Assamblercode |
ORG 02000H
M1: LD A, 000h ; Lade A mit 0
LD (02350H), A ; Lade 2350 mit A(0)
LD (02351H), A ; Lade 2350 mit A(0)
LD (02300H), A ; Lade 2301 mit A(0)
LD (02301H), A ; Lade 2301 mit A(0)
LD (02302H), A ; Lade 2302 mit A(0)
LD (02303H), A ; Lade 2303 mit A(0)
LD (02304H), A ; Lade 2304 mit A(0)
LD (02305H), A ; Lade 2305 mit A(0)
LD D, 000H ; Lade D mit 0
M2: LD IX, 02300H ; Lade IX mit 2300H
CAll 085AH ; Aufruf DAK1(085A)
M3: CP 010h ; A mit 10 vergleichen
JP C, M4 ; Springe Carry zu Nummern eingabe
JP M9 ; Springe zu Operatoren eingabe
JP Z, M9 ; Springe zu Operatoren eingabe
HALT
;Nummerneingabe:
M4: LD HL, 02350H ; Lade HL 2350
LD C, A ; Lade C mit A
LD A, D ; Lade A mit D
CP 001H ; Vergleiche A mit 01
JP Z, M5 ; Springe Wenn A = 01 einsweiter
JP M6 ; Springe anderen falls 1 weiter
M5: INC HL ; erhöhe hl um 1
M6: LD A, (HL) ; Lade A mit HL
CP 000H ; Vergleiche A mit 00
JP Z, M8 ; Springe A = 00 nach weiter machen
LD B, A ; Lade B, A
LD A, 00H ; Lade A, 00
M7: ADD A, 010H ; Addiere A 10
LD (HL), A ; in HL schreiben
DJNZ M7 ; DJNZ
M8: LD A, (HL) ; Lade A, HL
ADD A, B ; Addiere C zu a // Fehler3
LD (HL), A ; Schreibe A in HL
LD HL, 02300H ; Lade HL 2300
CAll 008D9H ; Aufruf TWOSEG
JP M2 ; Sprung 201C
;Operatoren Eingabe
M9: CP 010H ; CP A mit 10 und setze E auf 1
JP Z, M10
JP M11
M10: LD E, 001H
LD D, 001H
M11: CP 011H ; CP A mit 11 und setze E auf 2
JP Z, M12
JP M13
M12: LD E, 002H
LD D, 001H
M13: CP 019H ; CP A mit 19 und setze E auf 3
JP Z, M14
JP M15
M14: LD E, 003H
LD D, 001H
M15: CP 014H ; CP A mit 14 und setze E auf 4
JP Z, M16
JP M17
M16: LD E, 004H
LD D, 001H
M17: CP 012H ; CP A mit 12 und springe Execute (Ausrechenen)
JP Z, M18
CP 01FH ; CP A mit 1F und springe 2000 (Reset)
JP Z, M1
JP M2
;Execute
M18: LD A, E ; Lade A mit E
CP 01 ; CP A mit 1 -> JP Add
JP Z, M19
CP 02 ; CP A mit 2 -> JP Sub
JP Z, M20
CP 03 ; CP A mit 3 -> JP Mult
JP Z, M21
CP 04 ; CP A mit 4 -> JP DIV
JP Z, M23
JP M2
;Add
M19: LD A, (02351H) ; Lade A mit 2351
LD (02352H), A ; Lade 2352 mit A
LD A, 000H ; Lade A mit 00
LD (02351H), A ; Lade 2351 mit A
LD (02353H), A ; Lade 2353 mit A
LD HL, (02350H) ; Lade HL mit 2350
LD BC, (02352H) ; Lade BC mit 2352
ADD HL, BC ; ADD HL, BC
LD (02350H), HL ; Lade 2350 mit HL
LD HL, 02300H ; Lade HL mit 2300
LD A, (02350H) ; Lade A mit 3250
CALL 008D9H ; Rufe TWOSEG
LD A, (02351H) ; Lade A mit 3251
LD HL, 02302H ; Lade HL mit 2302
CALL 008D9H ; Rufe TWOSEG
LD A, 000H ; LADE A, 00
LD D, A ; Lade D, A
LD E, A ; Lade E, A
LD IX, 02300H ; Lade IX 2300
CALL 0085AH ; Rufe DAK 1
CALL M27 ; Rufe 2250
JP M3 ; Springe
;SUB
M20: LD HL, 2300 ; Lade HL 2300
LD A, (02351H) ; Lade A mit 2351
LD B, A ; Lade B, A
LD A, (02350H) ; Lade A mit 2350
SUB A, B ; SUB A, B
CAll 008D9H ; TWOSEG
LD A, 000H ; LADE A, 00
LD D, A ; Lade D, A
LD E, A ; Lade E, A
LD IX, 02300H ; Lade IX 2300
CAll 0085AH ; Rufe DAK 1
CALL M27 ; Rufe 2250
JP M3 ; Springe
;Mult:
M21: LD A, 000H ; Lade A mit 00
LD (02352H), A ; Lade 2351 mit A
LD A, (02350H) ; Lade A mit 2350
CP 000H ; Vergleiche A mit 00
JP Z, M25 ; Springe Null
LD HL, 00000H ; Lade HL, 0000
LD DE, (02351H) ; Lade DE mit (2351)
LD B, A ; Lade B mit A
M22: ADD HL, DE ; ADD HL, DE
DJNZ M22 ; DJNZ
LD (02350H), HL ; Lade 2350 mit HL
LD HL, 02300H ; Lade HL mit 2300
LD A, (02350H) ; Lade A mit 2350
CALL 008D9H ; Rufe TWOSEG
LD HL, 02302H ; Lade HL mit 2302
LD A, (02351H) ; Lade A mit 2351
CALL 008D9H ; Rufe TWOSEG
LD A, 00 ; Lade A, 00
LD D, A ; Lade D, A
LD E, A ; Lade E, A
LD IX, 02300H ; Lade IX 2300
CAll 0085AH ; Rufe DAK1
CALL M27 ; Rufe 2250
JP M3 ; Springe
;Div:
M23: LD A, (02351H) ; Lade A mit 2351
LD C, 000H ; Lade C mit 00
CP 000H ; CP A, 00
JP Z, M26 ; JP Z MAth Error
LD B, A ; Lade B mit A
LD A, (02350H) ; Lade A mit 2350
M24: CP B ; Vergleiche A mit B
JP C, 02197H ; Wenn B größer Springe rest anzeige
SUB B ; Sutrahiere B von A
INC C ; erhöhe C um eins
JP M24 ; Springe Vergleich
LD HL, 02300H ; Lade HL mit 2300
CALL 008D9H ; Rufe TWOSEG
LD HL, 048H ; Lade HL mit Segcode für R
LD A, C ; Lade A mit C
INC HL ; Increment HL
CALL 008D9H ; TWOSEG
LD D, 000H ; Lade D, A
LD E, 000H ; Lade E, A
LD IX, 02300H ; Lade IX 2300
Call 0085AH ; Rufe DAK1
CALL M27 ; Rufe Reset
JP M3 ; Springe
;NULL
M25: LD A, 0E7H ; Lade A, E7
LD (02300H), A ; Lade 2300 mit A
LD (02301H), A ; Lade 2301 mit A
Call 0085AH ; Rufe DAK1
CALL 02250H ; Rufe Reset
JP M3 ; Springe
M26: LD A, 048H
LD (02300H), A ; Lade 2300 mit A
LD A, 0E8H
LD (02300H), A ; Lade 2300 mit A
LD A, 048H
LD (02300H), A ; Lade 2300 mit A
LD (02300H), A ; Lade 2300 mit A
LD A, 0CEH
LD (02300H), A ; Lade 2300 mit A
Call 0085AH ; Rufe DAK1
CALL 02250H ; Rufe Reset
JP M3 ; Springe
;RESET:
M27: EXX ; Lade Alternativregister
LD B, 006H ; Lade B mit 06
LD A, 000H ; Lade A mit 00
LD HL, 02300H ; Lade HL 2300
M28: LD (HL), A ; Lade M mit A
INC HL ; HL + 1
DJNZ M28
LD (02350H), A
LD (02351H), A
EXX
LD D, 000H
LD E, 000H
RET
|
Download als .asm |
|