1 * OPT PAGE 4 * OPT LLEN=120 5 * OPT S 7 * REV 1.8 8 * 9 *PROGRAMME MONITEUR POUR MC 6809 10 * 11 *ASSEMBLE SUR EUROMAK LE 20 JUILLET 1982 13 ***************************************** 14 *PROGRAMME REALISE PAR CLAUDE VICIDOMINI* 15 ***************************************** 16 *SAISI LE 21 JANVIER 2013 PAR F LE DUIGOU 17 *FIN DE VERIFICATION LE 26 JANVIER 2013 19 *DEFINITION DES FONCTIONS: 20 ***P - PUNCH CHARGE UNE ZONE MEMOIRE EN CASSETTE 21 ***L - LOAD CHARGE LE CONTENU D'UNE CASSETTE EN MEMOIRE 22 ***M - MEMORY EXAMINE ET CHANGE LE CONTENU D'UNE MEMOIRE 23 ***AB- ABORT MET SOUS CONTROLE MONITEUR SANS INITIALISATION 24 ***R - REGISTER DISPLAY 25 * ORDRE DE VISUALISATION des REGISTRES:CC,A,B,DP,X,Y,U,PC,SP 26 * LE CONTENU DES REGISTRES PEUT ETRE CHANGE A LA DEMANDE 27 ***I - INCREMENT 28 * INCREMENTE D'UN PAS LORS D'UNE FONCTION MEMOIRE 29 * VISUALISE UN REGISTRE APRES L'AUTRE LORS D'UNE INTERRUPTION. 30 * STOCKE EN MEMOIRE LA DONNEE RENTREE 31 ***G - GO DEMARRE UN PROGRAMME APRES AVOIR PRECISE SON ADRESSE 32 * PERMET D'EFFECTUER UN CALCUL D'OFFSET POUR UN ADRESSAGE 33 * INDEXE OU POUR UN BRANCHEMENT RELATIF 34 ***CN- CONTINUE PERMET DE CONTINUER LE DEROULEMENT D'UN PROGRAMME 35 * APRES UN "ABORT". 36 ***DN- DECREMENTATION: PERMET DE DECREMENTER D'UN PAS LORS D'UNE 37 * FONCTION MEMOIRE OU DE VISUALISER LES REGISTRES DANS L'AUTRE 38 * SENS. 39 ***OF- OFFSET: CALCULE L'OFFSET LONG OU COURT LORS D'UNE 40 * FONCTION MEMOIRE ET LE PLACE AUTOMATIQUEMENT DANS LA 41 * MEMOIRE DE PROGRAMME, PUIS RETOURNE DANS LA FONCTION 42 * MEMOIRE. 43 *X-OF- POST OCTET: PERMET DE CALCULER L'OFFSET EN DECIMAL QU'IL FAUT 44 * DONNER AU POST OCTET; LE PROGRAMME LE CALCULE EN HEXA ET LE 45 * PLACE EN MEMOIRE. 46 ***BP- BREAKPOINT: INSERE UN SWI2 A UNE ADRESSE SPECIFIEE, VISUALISE 47 * LE CONTENU DES REGISTRES DU MPU, PUIS PLACE L'INSTRUCTION EN MEM 48 * A LA PLACE DU SWI2 49 * 50 * 51 * 52 * 53 ******************************************************************** 54 **LA PILE EST LOCALISEE A1 PARTIR DE L'ADRESSE $0780 "JUSQU'A $07CC" 55 **LA RAM PART DE L'ADRESSE $0000 JUSQU'A $07AF 56 **LE MONITEUR EST LOCALISE ENTRE $E000 ET $E7FF 57 **LE PIA EST LOCALISE ENTRE $A004 ET $A007 58 ******************************************************************** 59 ******************************************************************** 60 * LE RESET EST SITUE A L'ADRESSE $E219. 61 * LA ROUTINE DE NMI EST A L'ADRESSE $E27C. 62 * LE SWI EST A L'ADRESSE $E2A7. 63 * LE SWI2 EST A L'ADRESSE $E27C. 64 * LES AUTRES INTERRUPS SONT DEFINIES DS "EMPLACEMENT DES REGISTRES" 65 ******************************************************************** 66 E000 ORG $E000 67 * 68 * SCRUTATION DU CLAVIER * 69 * 70 * 0 1 2 3 71 E000 06 05 04 03 KEYTBL FCB $06,$05,$04,$03 72 * 73 * 4 5 6 7 74 E004 02 01 15 14 FCB $02,$01,$15,$14 75 * 76 * 8 9 A B 77 E008 13 12 11 25 FCB $13,$12,$11,$25 78 * 79 * C D E F 80 E00C 24 23 22 21 FCB $24,$23,$22,$21 82 * CODAGE DES SEGMENTS * 83 * 84 * 0 1 2 3 85 E010 7E 06 5B 1F DIGTBL FCB $7E,$06,$5B,$1F 86 * 87 * 4 5 6 7 88 E014 27 3D 7D 0E FCB $27,$3D,$7D,$0E 89 * 90 * 8 9 A B 91 E018 7F 3F 6F 75 FCB $7F,$3F,$6F,$75 92 * 93 * C D E F 94 E01C 78 57 79 69 FCB $78,$57,$79,$69 96 ************** GETKEY ROUTINE ************** 97 *SCRUTE LES LIGNES ET LES COLONNES DU CLAVIER* 98 ************ ALLUME LES AFFICHEURS *********** 100 E020 34 2C GETKEY PSHS Y,DP,B 101 00A0 SETDP $A0 102 E022 86 A0 LDA #$A0 103 E024 1F 8B TFR A,DP 104 E026 8D 53 FINCLA BSR DISPRE ALLUMER LES AFFICHEURS 105 E028 4F CLRA 106 E029 97 06 STA 0, DECREMENTE 320 E180 A6 80 LDA ,X+ PRENDRE DONNEE DS X ET X+1 321 E182 34 04 PREXIN PSHS B SAUVE AVANT STOCKAGE 322 E184 A1 E0 CMPA ,S+ MEMOIRE ABSENTE OU MEMOIRE MORTE? 323 E186 1026 009D LBNE RPOINT OUI, ALLUMER PROMPT ET SCRUTER 324 E18A 1F 10 TFR X,D NON, AFFICHE CASE MEMOIRE 325 E18C 17 FF6D LBSR L7SEG SUIVANTE OU PRECEDENTE 326 E18F 97 FA STA 0 OU <0 ****** 344 E1AE 8D B3 EXPOCT BSR INCREM POST OCTET EN MEM 345 E1B0 97 E4 STA 0 370 E1EB 81 10 CMPA #$10 TOUCHE DECREM? 371 E1ED 27 0C BEQ MOINS POSTOCTET<0 372 E1EF 30 01 INX 373 E1F1 16 FF3C LBRA REMEMO SINON RETOUR MEM 374 E1F4 86 6B PLUS LDA #$6B 375 E1F6 97 FF STA 80? 650 E41C 22 08 BHI ERREUR OUI, AFFICHE ERREUR 651 E41E 27 02 BEQ COMPAB 652 E420 20 66 BRA INTR16 NON, VAL 16 BITS 653 E422 C1 00 COMPAB CMPB #$00 654 E424 27 62 BEQ INTR16 655 E426 30 1F ERREUR LEAX -1,X 656 E428 1F 12 EREURE TFR X,Y 657 E42A 16 0384 LBRA CLIGNO 658 E42D 56 TSTSUI RORB 659 E42E C1 80 CMPB #$80 B>80? 660 E430 22 56 BHI INTR16 OUI, VAL 16BITS 661 E432 20 33 BRA INTR08 NON, VAL 8BITS 662 E434 58 INTR05 ASLB 663 E435 24 20 BCC POSITIF 664 E437 DC E7 LDD 10? 667 E43D 22 05 BHI TSTPOC OUI, TESTER POST OCTET 668 E43F 48 ASLA 669 E440 24 07 BCC POCPOS 670 E442 20 23 BRA INTR08 671 E444 48 TSTPOC ASLA 672 E445 24 E1 BCC EREURE POST INCORRECT 673 E447 20 1E BRA INTR08 VAL 8BITS POSSIBLE 674 E449 08 E3 POCPOS ASL 720MICROSEC. 870 E5B9 5D TSTB BIT CARAC.=0? 871 E5BA 2B 01 BMI AFSIGN OUI, AFFICHER SIGNE POUR 0 872 E5BC 47 ASRA NON, AFFICHER SIGNE POUR 1 873 E5BD B7 A004 AFSIGN STA DISREG 874 E5C0 5D TSTB 875 E5C1 35 86 PULS PC,B,A 877 ******** POSITIONNEMENT DU BIT DU CARACTERE ******** 878 ***** TRANSMIS DANS LE LSB DE L'ACCUMULATEUR B ***** 879 * 880 * 881 * 882 E5C3 34 02 BITLSB PSHS A 883 E5C5 8D D4 BITCA1 BSR RECBIT RECONNAISSANCE BIT TRANSMIS 884 E5C7 2A FC BPL BITCA1 BIT CARAC. = 1 885 E5C9 86 08 LDA #$08 RECONNAISSANCE BIT SUIVANTS 886 E5CB 8D CE CONROT BSR RECBIT BIT CARAC=0 RECON BITS SUIVANTS 887 E5CD 1C FE ANDCC #$FE CARRY=0 888 E5CF 2B 02 BMI BITCA0 BIT CARACTERE = 0 ? 889 E5D1 1A 01 ORCC #$01 NON, METRE CARRY A 1 890 E5D3 56 BITCA0 RORB OUI, DEPLACER LA CARRY 891 E5D4 4A DECA PAR ROTATIONS SUCCESSIVES 892 E5D5 26 F4 BNE CONROT CARRY DANS LSB DE ACCB 893 E5D7 35 82 PULS PC,A 895 ****** CHARGEMENT D'UN PROGRAMMA PROVENANT D'UNE CASSETTE ****** 896 **************************************************************** 898 E5D9 CC 0000 EXLOAD LDD #$0000 899 E5DC FD A006 STD SCNREG ACCES A DDRAB 900 E5DF CC FF7F LDD #$FF7F 901 E5E2 FD A004 STD DISREG PA ET PB EN SORTIE 902 E5E5 CC 0404 LDD #$0404 PB7 EN ENTREE 903 E5E8 FD A006 STD SCNREG ACCES DRAB 904 E5EB CC FF04 LDD #$FF04 ETEINDRE LES AFFICHEURS 905 E5EE FD A004 STD DISREG ET SELECTIONNER LE 1er DIGIT 906 E5F1 8D D0 DETECS BSR BITLSB DETECTE CARACTERE DEBUT CHARGEMENT 907 E5F3 C1 53 CMPB #$53 CARACTERE S TRANSMIS ? 908 E5F5 26 FA BNE DETECS NON, CONTINUER A CHERCHER CARACTERE 909 E5F7 8D CA BSR BITLSB OUI, CARACTERES SUIVANTS 910 E5F9 C1 31 CMPB #$31 CARACTERE 1 TRANSMIS ? 911 E5FB 27 08 BEQ CARSUI OUI, CARACTERES SUIVANTS 912 E5FD C1 4A CMPB #$4A NON, CARACTERE FIN = J ? 913 E5FF 26 F0 BNE DETECS NON, DETECTER CARACTERE DE FIN 914 E601 86 69 AFICHA LDA #$69 LDA #$69 OUI, AFFICHER FIN DU CHARGEMENT 915 E603 20 32 BRA DISFIN 917 ****** MISE EN MEMOIRE, POINTEE PAR X DES CARAC TRANSMIS ****** 918 *************************************************************** 920 E605 8D BC CARSUI BSR BITLSB CONVERSION INTERVALE 921 E607 D7 F0 STB 0 ? 1011 E6B7 84 F0 ANDA #$F0 1012 E6B9 34 04 PSHS B 1013 E6BB A1 E0 CMPA ,S+ COMPARE B A ACCA 1014 E6BD 26 AC BNE RECYCL OUI, RECOMMENCER UN CYCLE 1015 E6BF 8D 0F BSR DEBCHA NON, TRANSMETTRE DEBUT CHARGEMENT 1016 E6C1 96 F5 LDA 0 COURT POSSIBLE 1105 E750 ED A3 SUITEB STD ,--Y STOCKE OFFSET DS MEM PROG 1106 E752 8D 77 BSR AFFIAD AFFICHE ADRESSE 1107 E754 16 F9D9 LBRA REMEMO RETOUR DS FCT MEMOIRE 1109 ****** CALCULE L'OFFSET SUR 16 BITS ****** 1110 **** D CONTIENT L'OFFSET,Y=ADRESSE DEP *** 1111 * 1112 * 1113 * 1114 E757 1F 12 CALOFS TFR X,Y Y=ADRESSE DE DEPART 1115 E759 109F EA STY 0 *** 1123 * 1124 * 1125 * 1126 E763 CC 6F41 AFFIAR LDD #$6F41 AFFICHE AR DS DISBUF 1127 E766 DD FE STD 0 NEGPOS=FF<0 1140 E783 39 RTS 1142 ** DETERMINE SI LE BRANCH SUR 16BITS PEUT SE FAIRE SUR 8BITS ** 1143 * 1144 * 1145 * 1146 E784 59 PLUCOU ROLB 1147 E785 25 0D BCS RETOU2 BRANCH COURT POSSIBLE 1148 E787 56 RORB 1149 E788 20 C6 BRA SUITEB CONTINUE CALCUL 1150 E78A 59 BCOURT ROLB 1151 E78B 24 07 BCC RETOU2 1152 E78D 56 RORB 1153 E78E 20 C0 BRA SUITEB 1154 E790 31 3E RETOU1 LEAY -2,Y 1155 E792 20 1D BRA CLIGNO AFFICHE ERREUR, PUIS RETOUR MEMORY 1156 E794 31 3C RETOU2 LEAY -4,Y 1157 E796 A6 A0 LDA ,Y+ 1158 E798 81 10 CMPA #$10 1159 E79A 27 13 BEQ CLIGNE 1160 E79C A6 A4 LDA ,Y 1161 E79E 81 16 CMPA #$16 1162 E7A0 27 0F BEQ CLIGNO 1163 E7A2 81 17 CMPA #$17 1164 E7A4 27 0B BEQ CLIGNO 1165 E7A6 84 8F ANDA #$8F 1166 E7A8 81 8D CMPA #$8D 1167 E7AA 27 05 BEQ CLIGNO 1168 E7AC 16 FA78 LBRA RPOINT SI PAS BRANCH, RETOUR RESET 1169 E7AF 31 3F CLIGNE LEAY -1,Y 1170 E7B1 8D 18 CLIGNO BSR AFFIAD AFFICHE ADRESSE OU EST L'ERREUR 1171 E7B3 8D 09 BSR ERROR PLACE ERREUR DS DISBUF 1172 E7B5 108E 02FF LDY #$02FF 1173 E7B9 17 F8BF AFCLIG LBSR DISPRE AFFICHE L'ERREUR 1174 E7BC 20 06 BRA TEMPO TEMPORAIREMENT 1175 E7BE CC 7941 ERROR LDD #$7941 PLACE ER DANS LES 2 1176 E7C1 DD FE STD