;STAND:13.10.89 ;Umwandlung HEX-Zahl (ASCII) in Register ; (DE)=1.Zeichen ;R:CY=0 HL=Zahl ; CY=1 unzulaessige HEX-Ziffer ;-------------------------------- HEXDU: LD HL,0 ;Anfangswert LD A,(DE) ;1.Ziffer HEXD1: CALL ASHEX ;Kontrolle, Konvertierung eine Ziffer RET C ;Falsche Ziffer AND 0FH LD C,A LD B,0 ;BC=aktuelle Zahl ; ADD HL,HL ;*2 RET C ;>FFFF ADD HL,HL ;*4 RET C ;>FFFF ADD HL,HL ;*8 RET C ;>FFFF ADD HL,HL ;*16 RET C ;>FFFF ADD HL,BC ;+Zahl RET C ;>FFFF ; INC DE LD A,(DE) ;naechste Ziffer CP ' ' RET Z CP 'H' RET Z ;fertig JR HEXD1 ;-------------------------------- ;A='0'...'F' in A=30...3F ASHEX: CP '0' RET C ;00...2F CP ':' CCF RET NC ;30...39 Ziffern AND 11011111B ;in Grossbuchstaben SUB 7 ;3A 3B 3C 3D 3E 3F 40 :;<=>?@ CP ':' ;33 34 35 36 37 38 39 RET C ;3A...40 CP 40H ;41 42 43 44 45 46 ABCDEF CCF RET ;CY=0 41...46 ;CY=1 47...FF ;================================