************************************* * 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 * : LSB, :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 * :SPALTE :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