Es una balanza digital, donde calcula el precio a pagar a partir una cantidad medida y el precio por kg, solo con numero enteros
1: ORG 2000H
2: LD SP,3DDDH
3: INICIO: CALL BORRAR
4: LD IX,TTOTAL
5: LD IY,THEX
6: LD HL,TASCII3
7: LD B,5
8: LIMPIAR LD (IX),0
9: LD (IY),0
10: LD (HL),20H
11: INC IX
12: INC IY
13: DJNZ LIMPIAR
14: LD B,4
15: LD IX,TASCII
16: LIMPIAR2: LD (IX),20H
17: INC IX
18: DJNZ LIMPIAR2
19: LD IX,TASCII2
20: LD (IX),20H
21: LD IX,MENSAJE1
22: LD A,1
23: CALL ENVIAR_MEN
24: LD IX,MENSAJE3
25: LD A,2
26: CALL ENVIAR_MEN
27: LD C,0
28: LD B,4
29: LD HL,TASCII
30: LD IY,THEX
31: AQUI: CALL SCAN
32: CP 20H
33: JP Z,ROTO
34: CP 30H
35: JP C,AQUI
36: CP 3AH
37: JP NC,AQUI
38: LD (HL),A
39: INC HL
40: CALL ONU
41: LD (IY+1),A
42: INC IY
43: INC C
44: LD IX,MENSAJE1
45: LD A,1
46: CALL ENVIAR_MEN
47: DJNZ AQUI
48: JP L2
49: ONU: SUB 30H
50: RET
51: L2: LD HL,TASCII2
52: AQUI2: CALL SCAN
53: CP 30H
54: JP Z,AQUI9
55: JP C,AQUI2
56: CP 3AH
57: JP NC,AQUI2
58: LD (HL),A
59: INC HL
60: SUB 30H
61: LD B,A
62: LD A,1
63: LD IX,MENSAJE1
64: CALL ENVIAR_MEN
65: AQUI4: SCF
66: CCF
67: LD C,5
68: LD IX,THEX
69: LD IY,TTOTAL
70: AQUI7: LD A,(IX+4)
71: ADC A,(IY+4)
72: DAA
73: CP 0AH
74: JP NC,AJUSTO
75: CCF
76: AQUI8: LD (IY+4),A
77: DEC IY
78: DEC IX
79: DEC C
80: JP NZ,AQUI7
81: DJNZ AQUI4
82: AQUI9: LD IX,TASCII3
83: LD IY,TTOTAL
84: LD B,5
85: AQUI6: LD A,(IY+4)
86: CALL HEXASC
87: LD (IX+4),A
88: DEC IX
89: DEC IY
90: DJNZ AQUI6
91: CALL CHECK
92: LD IX,MENSAJE3
93: LD A,2
94: CALL ENVIAR_MEN
95: JP FINAL
96: AJUSTO: AND 0FH
97: SCF
98: JP AQUI8
99: FINAL: CALL SCAN
100: CP 20H
101: JP NZ,INICIO
102: FINISH: RST 30H
103: CHECK: LD IX,TASCII3
104: LD B,5
105: LD A,30H
106: AQUI10: CP (IX)
107: JP NZ,NADA
108: LD (IX),20H
109: INC IX
110: DJNZ AQUI10
111: NADA: RET
112: ROTO: LD A,C
113: CP 0
114: JP Z,AQUI
115: CALL MOVER
116: JP L2
117: MOVER: LD IX,THEX
118: LD A,C
119: CP 1
120: JP Z,MOV3
121: CP 2
122: JP Z,MOV2
123: ROTA: LD A,(IX+3)
124: LD (IX+4),A
125: LD A,(IX+2)
126: LD (IX+3),A
127: LD A,(IX+1)
128: LD (IX+2),A
129: LD A,(IX)
130: LD (IX+1),A
131: RET
132: MOV2: CALL ROTA
133: CALL ROTA
134: RET
135: MOV3: CALL ROTA
136: CALL ROTA
137: CALL ROTA
138: RET
139:
140: ORG 2500H
141: MENSAJE1 DB " Bs. POR KILO: "
142: TASCII DB " "
143: MENSAJE2 DB " Kg. PESADOS: "
144: TASCII2 DB " $"
145: MENSAJE3 DB " TOTAL EN Bs. "
146: TASCII3 DB " $"
147: THEX DS 5
148: TTOTAL DS 5
149: SCAN EQU 04F1H
150: ENVIAR_MEN EQU 052BH
151: BORRAR EQU 055CH
152: HEXASC EQU 056FH
153: END
No hay comentarios:
Publicar un comentario