Read Decimal, Hex and Binary values#
from BiboAssembler Tooldisk 1
00010 .LI OFF 00020 * 00030 * 00040 ------------------------------ 00050 * Eingaberoutinen fuer * 00060 * Dezimalzahlen, * 00070 * Hexadezimalzahlen und * 00080 * Binaerzahlen * 00090 * Ohne Korrekturmoeglichkeit * 00100 * * 00110 * ACHTUNG: Routinen benoeti- * 00120 * gen die Ein- und * 00130 * Ausgaberoutinen * 00140 * aus dem File * 00150 * INOUT.INC * 00160 * Sollten diese * 00170 * nicht schon an an-* 00180 * derer Stelle * 00190 * stehen muessen Sie* 00200 * sie hier mit ein- * 00210 * binden. * 00220 ------------------------------ 00230 * 00240 * 00250 * 00260 * 00270 * 00280 GETDEZ LDA #0 Wert 00290 STA WERT loeschen 00300 STA WERT+1 00310 .1 JSR GETKEY Taste holen 00320 CMP #$9B Nur RETURN 00330 BEQ OUT und 00340 CMP #'0 Ziffern 00350 BCC .1 von 0-9 00360 CMP #'9+1 zulassen 00370 BCS .1 00380 PHA 00390 JSR PUTCHAR ausgeben 00400 PLA 00410 AND #$F Nur untere 00420 PHA 4 Bits werden gebraucht 00430 * 00440 LDA WERT Wert 00450 STA HOLD wird 00460 LDA WERT+1 mit 10 00470 STA HOLD+1 multi- 00480 ASL HOLD pliziert 00490 ROL HOLD+1 plus 00500 ASL HOLD Ziffern 00510 ROL HOLD+1 wert 00520 CLC 00530 LDA HOLD 00540 ADC WERT 00550 STA WERT 00560 LDA HOLD+1 00570 ADC WERT+1 00580 STA WERT+1 00590 ASL WERT 00600 ROL WERT+1 00610 CLC 00620 PLA 00630 ADC WERT 00640 STA WERT 00650 BCC .2 00660 INC WERT+1 00670 .2 JMP .1 Zurueck in Schleife 00680 * 00690 OUT JMP PUTCHAR Ausstieg mit RETURN 00700 * 00710 WERT .HX 0000 Hilfsregister 00720 HOLD .HX 0000 00730 * 00740 ------------------------------ 00750 GETHEX LDA #0 Wert 00760 STA WERT loeschen 00770 STA WERT+1 00780 LDA #3 Nur 4 00790 STA HOLD Zeichen 00800 * 00810 .1 JSR GETKEY Taste holen 00820 CMP #$9B Nur 00830 BEQ OUT RETURN 00840 CMP #'0 sowie 00850 BCC .1 00860 CMP #'G 0-9 00870 BCS .1 und 00880 CMP #'9+1 A-F 00890 BCC .2 00900 CMP #'A zulassen 00910 BCC .1 00920 * 00930 PHA 00940 JSR PUTCHAR Ausgeben 00950 PLA 00960 .2 CMP #'9+1 Wert 00970 BCC .3 auf 0-15 00980 SEC umrechnen 00990 SBC #7 01000 .3 SEC 01010 SBC #$30 01020 LDX #3 Zahl*16 01030 .4 ASL WERT 01040 ROL WERT+1 01050 DEX 01060 BPL .4 01070 ORA WERT Wert+Zahl 01080 STA WERT Zahl 01090 DEC HOLD naechtes 01100 BPL .1 Zeichen 01110 OUT2 LDA #$9B Ausstieg mit 01120 JMP OUT Return 01130 * 01140 ------------------------------ 01150 * 01160 GETBIN LDA #0 Zahl 01170 STA WERT loeschen 01180 STA WERT+1 01190 LDA #7 8 Zeichen 01200 STA HOLD 01210 * 01220 .1 JSR GETKEY Taste holen 01230 CMP #$9B Nur 01240 BEQ OUT2 RETURN 01250 CMP #'0 und 01260 BCC .1 Ziffern 01270 CMP #'2 0 und 1 01280 BCS .1 zulassen 01290 PHA 01300 JSR PUTCHAR Ausgeben 01310 PLA 01320 AND #1 Nur ein 01330 LSR Bit wird 01340 ROL WERT gebraucht 01350 DEC HOLD naechtes Zeichen 01360 BPL .1 01370 JMP OUT2 Ausstieg