
*************************************
*  ZAHLENAUSGABE IN ASSEMBLER       *
*  LISTING 1 - FLOATING POINT       *
*  MIT DER FLOATING-POINT PACKAGE   *
*  ATMAS-II PETER FINZEL 1985       *
*************************************
*
* KONSTANTE FUER FLOATING-POINT
*

FASC     EQU $D8E6         FP NACH ASCII
IFP      EQU $D9AA         INTEGER NACH FP
FR0      EQU $D4  FP-AKKU 0
INBUFF   EQU $F3  ZEIGER AUF ASCII-ERGEBNIS

*
* IOCB-KONSTANTE
*

CIOV     EQU $E456
ICCOM    EQU $342
ICBAL    EQU $344
ICBAH    EQU $345
ICBLL    EQU $348
ICBLH    EQU $349

*
* CIO-BEFEHLSCODE
*
CPBIN    EQU  11  GET BINARY RECORD
*
* CURSORSTEUERUNG
*

ROWCRS   EQU $54  CURSOR-ZEILE
COLCRS   EQU $55  CURSOR-SPALTE
CRSINH   EQU $2F0 CURSOR EIN=0/AUS=1

**************************************
* TESTPROGRAMM:ZAEHLER AM BILDSCHIRM
**************************************

         ORG $A800         IM RES. BEREICH

TEST     LDA #0   ZAEHLUNG BEGINNT
         STA ZAHL BEI NULL
         STA ZAHL+1
         LDA #1   CURSOR AUS
         STA CRSINH
ZAEHLER  LDA ZAHL ZU WANDELNDE
         LDX ZAHL+1        ZAHL UEBERGEBEN
         JSR BINASC        UMWANDELN
         LDX #18  IN DIE MITTE
         LDY #11  DES BILDSCHIRMES
         JSR PRINT         AUSGEBEN
         INC ZAHL UND WEITERZAEHLEN
         BNE ZAEHLER
         INC ZAHL+1        AUCH DAS MSB
         JMP ZAEHLER       ENDLOSE SCHLEIFE=>

ZAHL     DFW 0    ZAEHL-REGISTER

**************************************
* WANDLUNG BINAER NACH ATASCII
* <A>: LSB, <X>:MSB
**************************************

BINASC   STA FR0  ZAHL IN FP-REGISTER
         STX FR0+1         NR. 0 EINTRAGEN
         JSR IFP  IN FP UMWANDELN
         JSR FASC FP IN ATASCII
         RTS      UMWANDELN

**************************************
* AUSGABE DER ZAHL AUF BILDSCHIRM
* UEBER CIO-INTERFACE
* <X>:SPALTE  <Y>:ZEILE
**************************************

PRINT    STX COLCRS        POSITION AUSFUEHERN
         STY ROWCRS
         LDX #0            
         STX COLCRS+1      MSB DER SPALTE
         STX ICBLL         NUR 1 ZEICHEN
         STX ICBLH         AUSGEBEN
         STX INBPTR        INBUFF-ZEIGER AUF NULL
         LDA #CPBIN        ZEICHENAUSGABE
         STA ICCOM

NXTCHR   LDY INBPTR        ZEIGER IN INBUFF
         LDA (INBUFF),Y    ZEICHEN AUS BUFFER
         BMI PRTEND        LETZTES ZEICHEN
         JSR CIOV AUSGEBEN
         INC INBPTR        ZEIGER WEITER
         JMP NXTCHR        UND NAECHSTES->

*
* LETZTES ZEICHEN: 8.BIT LOESCHEN U. AUSGEBEN
*

PRTEND   AND #$7F HI-BIT LOESCHEN
         JSR CIOV UND ZEICHEN 'RAUS
         RTS

INBPTR   DFB 0    INDEX FUER INBUFF

