************************************ * ZAHLENAUSGABE IN ASSEMBLER * * LISTING 2 - SUBSTARKTIONSMETHODE* * ATMAS-II PETER FINZEL 1985 * ************************************ VDLSTL EQU $230 DISPLAY-LIST ZEIGER BZAHL EQU $D4 HILFSREGISTER IN ZEROPAGE ORG $A800 IM RESERVIERTEN BEREICH ************************************** * TESTPROGRAMM: ZAEHLER AM BILDSCHIRM ************************************** TEST CLD WIR RECHNEN BINAER LDA #0 ZAEHLUNG BEGINNT STA ZAHL BEI NULL STA ZAHL+1 JSR SETDL DISPLAY-LIST ZAEHLER LDA ZAHL ZAEHLERINHALT LDX ZAHL+1 AN WANDELPROGRAMM JSR BINDEZ UMWANDELN LDY #13 ZENTRIEREN JSR PRINT AUSGEBEN INC ZAHL UND WEITERZAEHLEN BNE ZAEHLER INC ZAHL+1 AUCH DAS MSB JMP ZAEHLER ZAHL DFW 0 ZAEHLER-REGISTER ************************************** * WANDLUNGSROUTINE BINAER IN DEZIMAL * : LSB, :MSB ************************************** BINDEZ STA BZAHL PARAMETER SPEICHERN STX BZAHL+1 LDX #4 VORBES LDA #$10 AUSGABEBUFFER STA ZIFFER,X MIT B.-CODE FUER DEX NULL VORBESETZEN BPL VORBES LDX #0 STELLENZAEHLER STELLE LDA BZAHL+1 ZEHNER-POTENZ CMP DECHI,X GROESSER ALS BNE TSTHI RESTLICHE ZAHL? LDA BZAHL CMP DECLO,X TSTHI BCC KLEINER POTENZ ZU GROSS * * ZEHNER-POTENZ ABZIEHEN, ZIFFER ERHOEHEN * SEC LDA BZAHL DIE AKTUELLE SBC DECLO,X ZEHNERPOTENZ STA BZAHL ABZIEHEN LDA BZAHL+1 SBC DECHI,X STA BZAHL+1 INC ZIFFER,X ZIFFER ERHOEHEN JMP STELLE GLEICHE STELLE NOCHMAL * * KLEINERE ZEHNERPOTENZ ANWAEHLEN * KLEINER INX SCHON VIER STELLEN CPX #4 BEARBEITET? BNE STELLE NEIN -> * * NUR NOCH EINERSTELLE DA * CLC EINERSTELLE LDA BZAHL IN AUSGABEBUFFER ADC ZIFFER+4 ADDIEREN STA ZIFFER+4 RTS * * TABELLEN DER ZEHNERPOTENZEN * GETRENNTE TABELLEN F. LSB UND MSB * DECLO DFB 10000,1000,100,10 DECHI DFB 10000/256,1000/256,0,0 * * AUSGABEBUFFER * ZIFFER ASC %00000% ************************************** * GEWANDELTE ZAHL AUS ZIFFER IN DEN * BILDSCHIRM KOPIEREN * :LETZTE SPALTE ************************************** PRINT LDX #4 5 ZAHLEN NZIF LDA ZIFFER,X AUS BUFFER STA BLDRAM,Y IN BILDSCHIRM DEY DEX BPL NZIF NAECHSTE --> RTS ************************************** * SPEZIAL-DISPLAYLIST AUS EINER ZEILE ************************************** SETDL LDA #DLIST ZEIGER AUF STA VDLSTL NEUE DISPLAY- LDA #DLIST/256 LIST EINTRAGEN STA VDLSTL+1 RTS * * DISPLAY-LIST * DLIST DFB $70,$70,$70,$70 DFB $70,$70,$70,$70 DFB $47 GRAPHICS 2 DFW BLDRAM DFB $41 SPRUNG AUF DFW DLIST ANFANG DER D.-LIST * * VIDEO-RAM (20 BYTES LANG) * ASC ERZEUGT HIER BILDSCHIRMCODE! * BLDRAM ASC % SCORE: %