;STAND:08.11.89 ;Unterprogramm Dezimalanzeige BCDEHL bleiben PRDEZ: PUSH BC PUSH DE PUSH HL LD C,0 LD DE,10000 CALL PRD LD DE,1000 CALL PRD LD DE,100 CALL PRD LD DE,10 CALL PRD INC C LD DE,1 CALL PRD POP HL POP DE POP BC RET ;-------------------------------- PRD: LD B,-1 OR A PRD1: INC B SBC HL,DE JR NC,PRD1 ADD HL,DE ; LD A,C ;fuehrende Null OR A LD A,B ;aktuelle Ziffer JR NZ,PRD2 ;nein -> anzeigen ; OR A JR Z,PRNSP ;fuehrende Null als Leerzeichen anzeigen PRD2: INC C ;<>0 ADD A,'0' JR PRNA ;================================ ;Unterprogramm Hexadezimalanzeige BCDEHL bleiben PRNAD: LD A,H CALL PRNBY LD A,L PRNBY: PUSH AF RLCA RLCA RLCA RLCA CALL NUMP1 POP AF NUMP1: AND 0FH ADD A,'0' CP 3AH JR C,NUMP2 ADD A,7 NUMP2: JR PRNA ;================================ ;Unterprogramm Zeichenkette anzeigen BCHL bleiben (DE)='$' PRNST: LD A,(DE) CP '$' RET Z CALL PRNA INC DE JR PRNST ;================================ ;Unterprogramm SPACE PRNSP: LD A,' ' JR PRNA ;================================ ;Unterprogramm CR/LF PCRLF: LD A,0DH ;CR CALL PRNA LD A,0AH ;LF JR PRNA ;================================ ;Unterprogramm Ausgabe Zeichen aus A PRNA: PUSH BC PUSH DE PUSH HL IF SCP LD C,2 LD E,A CALL 5 ELSE ;SCP CALL BIORSL+12 ENDIF ;SCP POP HL POP DE POP BC RET ;================================