home *** CD-ROM | disk | FTP | other *** search
/ Strange Invasion 1994 February / Strange_Invasion_1994_02_Lausberg_Stefan_Side_D.atr / kurs5.lst < prev    next >
File List  |  2023-02-26  |  9KB  |  1 lines

  1. ¢00010          .LI OFF¢00020 ------------------------------¢00030          .IN "D:PRTNUM.INC" Die Routinen zur Zahlenausgabe¢00040          .IN "D:CIO.INC"    Die Textausgaberoutinen¢00050          .IN "D:MULT.INC"   Die Multiplikationsroutinen¢00060 ------------------------------¢00070 START¢00080          LDA #'E      E-Handler initialisieren¢00090          LDY #8¢00100          LDX #$60¢00110          JSR CIOINIT¢00120 ;¢00130 ; zwei 8-Bit Zahlen ohne Vorzeichen¢00140 ;¢00150          LDA ZAHL8_1    Die erste Zahl...¢00160          STA OPERATOR1  ...als ersten Operand verwenden...¢00170          JSR PRTNUM8    ...und auf den Bildschirm ausgeben¢00180          JSR PRT_MAL    dazu noch das Multiplikationszeichen¢00190          LDA ZAHL8_2    analog wird mit der zweiten Zahl verfahren¢00200          STA OPERATOR2¢00210          JSR PRTNUM8¢00220          JSR PRT_GLEICH und noch ein "=" ausgeben¢00230          JSR MULT8      Jetzt wird multipliziert¢00240          LDA RESULT     und das Ergebnis...¢00250          LDX RESULT+1¢00260          JSR PRTNUM16   ...wie gehabt ausgegeben (16 Bit!)¢00270          JSR PRT_EOL    zum Schluss ein End-Of-Line Zeichen¢00280 ;¢00290 ; zwei 8-Bit Zahlen mit Vorzeichen¢00300 ;¢00310          LDA ZAHL8S_1¢00320          STA OPERATOR1¢00330          JSR PRTNUM8S¢00340          JSR PRT_MAL¢00350          LDA ZAHL8S_2¢00360          STA OPERATOR2¢00370          JSR PRTNUM8S¢00380          JSR PRT_GLEICH¢00390          JSR MULT8S     mit Vorzeichenbeachtung multiplizieren¢00400          LDA RESULT¢00410          LDX RESULT+1¢00420          JSR PRTNUM16S¢00430          JSR PRT_EOL¢00440 ;¢00450 ; zwei 16-Bit Zahlen ohne Vorzeichen¢00460 ;¢00470          LDA ZAHL16_1¢00480          STA OPERATOR1¢00490          LDX ZAHL16_1+1  das Hi-Byte muss ins X-Register...¢00500          STX OPERATOR1+1¢00510          JSR PRTNUM16    ...damit die Zahl ausgegeben werden kann¢00520          JSR PRT_MAL¢00530          LDA ZAHL16_2¢00540          STA OPERATOR2¢00550          LDX ZAHL16_2+1¢00560          STX OPERATOR2+1¢00570          JSR PRTNUM16    diesmal wird die 16-Bit Routine verwendet¢00580          JSR PRT_GLEICH¢00590          JSR MULT16¢00600          LDA RESULT¢00610          STA PRTNUM¢00620          LDA RESULT+1¢00630          STA PRTNUM+1¢00640          LDA RESULT+2¢00650          STA PRTNUM+2¢00660          LDA RESULT+3¢00670          STA PRTNUM+3¢00680          JSR PRTNUM32    das Ergebnis kann 32 Bit haben!¢00690          JSR PRT_EOL¢00700 ;¢00710 ; 16 Bit mit Vorzeichen:¢00720 ;¢00730          LDA ZAHL16S_1¢00740          STA OPERATOR1¢00750          LDX ZAHL16S_1+1¢00760          STX OPERATOR1+1¢00770          JSR PRTNUM16S¢00780          JSR PRT_MAL¢00790          LDA ZAHL16S_2¢00800          STA OPERATOR2¢00810          LDX ZAHL16S_2+1¢00820          STX OPERATOR2+1¢00830          JSR PRTNUM16S¢00840          JSR PRT_GLEICH¢00850          JSR MULT16S¢00860          LDA RESULT¢00870          STA PRTNUM¢00880          LDA RESULT+1¢00890          STA PRTNUM+1¢00900          LDA RESULT+2¢00910          STA PRTNUM+2¢00920          LDA RESULT+3¢00930          STA PRTNUM+3¢00940          JSR PRTNUM32S¢00950          JSR PRT_EOL¢00960 ;¢00970 ; 24 Bit ohne Vorzeichen:¢00980 ;¢00990          LDA ZAHL24_1¢01000          STA OPERATOR1¢01010          LDX ZAHL24_1+1¢01020          STX OPERATOR1+1¢01030          LDY ZAHL24_1+2¢01040          STY OPERATOR1+2¢01050          JSR PRTNUM24¢01060          JSR PRT_MAL¢01070          LDA ZAHL24_2¢01080          STA OPERATOR2¢01090          LDX ZAHL24_2+1¢01100          STX OPERATOR2+1¢01110          LDY ZAHL24_2+2¢01120          STY OPERATOR2+2¢01130          JSR PRTNUM24¢01140          JSR PRT_GLEICH¢01150          JSR MULT24¢01160          LDA RESULT¢01170          STA PRTNUM¢01180          LDA RESULT+1¢01190          STA PRTNUM+1¢01200          LDA RESULT+2¢01210          STA PRTNUM+2¢01220          LDA RESULT+3¢01230          STA PRTNUM+3¢01240          JSR PRTNUM32   wir koennen nur 32 Bit ausgeben!¢01250          JSR PRT_EOL¢01260 ;¢01270 ; 24 Byt mit Vorzeichen:¢01280 ;¢01290          LDA ZAHL24S_1¢01300          STA OPERATOR1¢01310          LDX ZAHL24S_1+1¢01320          STX OPERATOR1+1¢01330          LDY ZAHL24S_1+2¢01340          STY OPERATOR1+2¢01350          JSR PRTNUM24S¢01360          JSR PRT_MAL¢01370          LDA ZAHL24S_2¢01380          STA OPERATOR2¢01390          LDX ZAHL24S_2+1¢01400          STX OPERATOR2+1¢01410          LDY ZAHL24S_2+2¢01420          STY OPERATOR2+2¢01430          JSR PRTNUM24S¢01440          JSR PRT_GLEICH¢01450          JSR MULT24S¢01460          LDA RESULT¢01470          STA PRTNUM¢01480          LDA RESULT+1¢01490          STA PRTNUM+1¢01500          LDA RESULT+2¢01510          STA PRTNUM+2¢01520          LDA RESULT+3¢01530          STA PRTNUM+3¢01540          JSR PRTNUM32S¢01550          JSR PRT_EOL¢01560 ;¢01570 ; 32 Bit ohne Vorzeichen¢01580 ;¢01590          LDA ZAHL32_1¢01600          STA OPERATOR1¢01610          STA PRTNUM¢01620          LDA ZAHL32_1+1¢01630          STA OPERATOR1+1¢01640          STA PRTNUM+1¢01650          LDA ZAHL32_1+2¢01660          STA OPERATOR1+2¢01670          STA PRTNUM+2¢01680          LDA ZAHL32_1+3¢01690          STA OPERATOR1+3¢01700          STA PRTNUM+3¢01710          JSR PRTNUM32¢01720          JSR PRT_MAL¢01730          LDA ZAHL32_2¢01740          STA OPERATOR2¢01750          STA PRTNUM¢01760          LDA ZAHL32_2+1¢01770          STA OPERATOR2+1¢01780          STA PRTNUM+1¢01790          LDA ZAHL32_2+2¢01800          STA OPERATOR2+2¢01810          STA PRTNUM+2¢01820          LDA ZAHL32_2+3¢01830          STA OPERATOR2+3¢01840          STA PRTNUM+3¢01850          JSR PRTNUM32¢01860          JSR PRT_GLEICH¢01870          JSR MULT32¢01880          LDA RESULT¢01890          STA PRTNUM¢01900          LDA RESULT+1¢01910          STA PRTNUM+1¢01920          LDA RESULT+2¢01930          STA PRTNUM+2¢01940          LDA RESULT+3¢01950          STA PRTNUM+3¢01960          JSR PRTNUM32  Leider haben wir keine 64 Bit Ausgabe¢01970          JSR PRT_EOL¢01980 ;¢01990 ; 32 Bit mit Vorzeichen:¢02000 ;¢02010          LDA ZAHL32S_1¢02020          STA OPERATOR1¢02030          STA PRTNUM¢02040          LDA ZAHL32S_1+1¢02050          STA OPERATOR1+1¢02060          STA PRTNUM+1¢02070          LDA ZAHL32S_1+2¢02080          STA OPERATOR1+2¢02090          STA PRTNUM+2¢02100          LDA ZAHL32S_1+3¢02110          STA OPERATOR1+3¢02120          STA PRTNUM+3¢02130          JSR PRTNUM32S¢02140          JSR PRT_MAL¢02150          LDA ZAHL32S_2¢02160          STA OPERATOR2¢02170          STA PRTNUM¢02180          LDA ZAHL32S_2+1¢02190          STA OPERATOR2+1¢02200          STA PRTNUM+1¢02210          LDA ZAHL32S_2+2¢02220          STA OPERATOR2+2¢02230          STA PRTNUM+2¢02240          LDA ZAHL32S_2+3¢02250          STA OPERATOR2+3¢02260          STA PRTNUM+3¢02270          JSR PRTNUM32S¢02280          JSR PRT_GLEICH¢02290          JSR MULT32S¢02300          LDA RESULT¢02310          STA PRTNUM¢02320          LDA RESULT+1¢02330          STA PRTNUM+1¢02340          LDA RESULT+2¢02350          STA PRTNUM+2¢02360          LDA RESULT+3¢02370          STA PRTNUM+3¢02380          JSR PRTNUM32S¢02390          JSR PRT_EOL¢02400 ;¢02410          RTS           und tschuess¢02420 ------------------------------¢02430 ; Hier wird der String " * " ausgegeben¢02440 PRT_MAL¢02450          LDA #3             3 Zeichen¢02460          STA PRINT_LENGTH¢02470          LDA #0¢02480          STA PRINT_LENGTH+1¢02490          LDA #MAL_ZEICHEN   die Adresse des Strings¢02500          LDX /MAL_ZEICHEN¢02510          JSR PRINT          und auf den Bildschirm damit¢02520          RTS¢02530 ------------------------------¢02540 ; dasselbe fuer " = "¢02550 PRT_GLEICH¢02560          LDA #3¢02570          STA PRINT_LENGTH¢02580          LDA #0¢02590          STA PRINT_LENGTH+1¢02600          LDA #GLEICH_ZEICHEN¢02610          LDX /GLEICH_ZEICHEN¢02620          JSR PRINT¢02630          RTS¢02640 ------------------------------¢02650 ; Ein End-Of-Line ausgeben:¢02660 PRT_EOL¢02670          LDA #1             Diesmal nur ein Zeichen¢02680          STA PRINT_LENGTH¢02690          LDA #0¢02700          STA PRINT_LENGTH+1¢02710          LDA #EOL_ZEICHEN¢02720          LDX /EOL_ZEICHEN¢02730          JSR PRINT¢02740          RTS¢02750 ------------------------------¢02760 ; Die Strings fuer die drei Hilfsroutinen¢02770 MAL_ZEICHEN    .AS " * "¢02780 GLEICH_ZEICHEN .AS " = "¢02790 EOL_ZEICHEN    .HX 9B¢02800 ------------------------------¢02810 ; Hier kommen die auszugebenden Zahlen:¢02820 ZAHL8_1   .HX 12¢02830 ZAHL8_2   .HX 34¢02840 ZAHL8S_1  .HX FE¢02850 ZAHL8S_2  .HX 56¢02860 ;¢02870 ZAHL16_1  .HX 1234¢02880 ZAHL16_2  .HX 5678¢02890 ZAHL16S_1 .HX 2345¢02900 ZAHL16S_2 .HX 6789¢02910 ;¢02920 ZAHL24_1  .HX 89AB01¢02930 ZAHL24_2  .HX 321000¢02940 ZAHL24S_1 .HX 999999¢02950 ZAHL24S_2 .HX FFFFFF¢02960 ;¢02970 ZAHL32_1  .HX 54000000¢02980 ZAHL32_2  .HX 11111100¢02990 ZAHL32S_1 .HX 22222222¢03000 ZAHL32S_2 .HX 03000000¢03010 ------------------------------¢