1 2 ;LST OFF 3 4 ********************** 5 * * 6 * COMMUTEUR DOS/CMD * 7 * (C)1989 BY DECKARD * 8 * * 9 ********************** 10 * 11 * $300-$3CF DISPO 12 ; 13 MACROCMD EQU $803 ; DEBUT TRAITEMENT & DE CMD 14 ETAT EQU $1FF1 15 COPY_OBJ EQU $803 ; ADR EN AUX 16 RETOUR_OBJ EQU $1009 ; ADR EN PRINC 17 COPY_MONS EQU $896 ; ADR EN AUX 18 RETOUR_MONS EQU $4006 ; ADR EN PRINC 19 COPY_MACRO EQU $85D ; ADR EN AUX 20 COPY_ECHOPE EQU $13B5 ; ADR EN AUX 21 22 ORG $300 23 ; 0300: A9 20 24 LDA #$20 ; PAS D'HGR DIRECT 0302: 85 E6 25 STA $E6 0304: A9 0D 26 LDA #USR 030A: 85 0C 29 STA $0C ; HIGH 030C: 60 31 RETOUR_MACRO RTS ; ADR EN PRINC 32 ;LST OFF 33 ; 030D: 20 0C E1 34 USR JSR $E10C 0310: A5 A1 35 LDA $A1 0312: F0 1B 36 BEQ FOLLOW ; CONNECTE LE RDOS 37 ; 0314: C9 01 38 CMP #$01 0316: F0 10 39 BEQ FOLLOW2 ; CONNECTE CMD 40 ; APPELE POUR CHANGER OUTPUT 0318: C9 02 41 CMP #$02 031A: D0 06 42 BNE FOLLOW3 43 ; =2 APPELE POUR FORCER L'ETAT A 0 031C: A9 00 44 LDA #$00 031E: 8D F1 1F 45 STA ETAT 0321: 60 46 RTS 47 ; =3 APPELE POUR FORCER L'ETAT A 1 0322: A9 01 48 FOLLOW3 LDA #$01 0324: 8D F1 1F 49 STA ETAT 0327: 60 50 RTS 51 ; =1 POUR CMD 0328: A9 03 52 FOLLOW2 LDA #MACROCMD 032C: 4C 33 03 54 JMP GO 55 ; =0 POUR RDOS 032F: A9 00 56 FOLLOW LDA #$00 0331: A2 B4 57 LDX #$B4 ; $B400 ENTREE RDOS 58 ; 0333: 8D F6 03 59 GO STA $3F6 ; LOW 0336: 8E F7 03 60 STX $3F7 ; HIGH 0339: 60 61 RTS 62 033A: 01 64 QUART DFB 1 ; NATURE DU LIEU (0=DONJON/1=EXTERIEUR) 033B: 01 65 NMAP DFB 1 ; NO DE LA NOUVELLE CARTE (ICI CARTE 2) 033C: 01 66 OMAP DFB 1 ; OLD MAP (SERT POUR LE &DEL) 033D: 00 67 MONSTRE DFB 0 033E: 00 68 CMD DFB 0 033F: 00 69 LIEU DFB 0 0340: 00 70 COPYLIEU DFB 0 0341: 00 71 PROBA DFB 0 0342: 00 72 PCOMB DFB 0 ; POURCENTAGE DE PRESENCE DU MONSTRE 0343: 00 73 MBUTE DFB 0 ; MONSTRE TUE=1/MONSTRE VIVANT=0 0344: 00 74 DIVERS DFB 0 0345: 00 75 NATURE DFB 0 0346: 05 0F 64 76 POURCENT DFB 5,15,100 77 ;LST OFF 78 79 ******************************** 80 82 83 * RETOUR DE MEMOIRE AUXILIAIRE 84 0349: 00 00 00 85 STRING DS 17,0 ; CHAINE DE CARACTERES+00 034C: 00 00 00 00 00 00 00 00 0354: 00 00 00 00 00 00 035A: 00 00 00 86 VALS DS 70,0 ; NOMBRES DIVERS 035D: 00 00 00 00 00 00 00 00 0365: 00 00 00 00 00 00 00 00 036D: 00 00 00 00 00 00 00 00 0375: 00 00 00 00 00 00 00 00 037D: 00 00 00 00 00 00 00 00 0385: 00 00 00 00 00 00 00 00 038D: 00 00 00 00 00 00 00 00 0395: 00 00 00 00 00 00 00 00 039D: 00 00 00 87 88 ******************************** 89 90 * PASSAGE EN AUX 91 * X=CMD/Y=ARGUMENT 92 03A0: A9 00 93 SWAP_AUX LDA #0 94 ;LST OFF 03A2: 8D 08 C0 95 STA $C008 ; PILE ET PAGE 0 PRINC 03A5: 8D 00 C0 96 STA $C000 ; USE RAMRD/RAMWRT 03A8: 8D 03 C0 97 STA $C003 ; LIRE EN AUX -> PASSE EN AUX DIRECT 98 99 * RETOUR D'AUX 100 03AB: 8D 04 C0 101 STA $C004 ; ECRIRE EN PRINC 03AE: 8A 102 TXA ; NUMERO DE CMD DANS ACC 03AF: 0A 103 ASL A ; *2 POUR DA 03B0: AA 104 TAX 03B1: BD BF 03 105 LDA RAM_ADR,X ; LOW 03B4: 85 EC 106 STA $EC 03B6: E8 107 INX 03B7: BD BF 03 108 LDA RAM_ADR,X ; HIGH 03BA: 85 ED 109 STA $ED 03BC: 6C EC 00 110 JMP ($00EC) ; SAUTE A L'ADR INDIQUEE 111 03BF: 03 08 112 RAM_ADR DA COPY_OBJ 03C1: 09 10 113 DA RETOUR_OBJ 03C3: 96 08 114 DA COPY_MONS 03C5: 06 40 115 DA RETOUR_MONS 03C7: 5D 08 116 DA COPY_MACRO 03C9: 0C 03 117 DA RETOUR_MACRO 03CB: B5 13 118 DA COPY_ECHOPE 119 120 SAV USER.COMMUT2 Object saved as USER.COMMUT2,A$0300,L$00CD --End assembly, 205 bytes, Errors: 0 Symbol table - alphabetical order: ? CMD =$033E ? COPYLIEU =$0340 COPY_ECHOPE =$13B5 COPY_MACRO =$085D COPY_MONS =$0896 COPY_OBJ =$0803 ? DIVERS =$0344 ETAT =$1FF1 FOLLOW =$032F FOLLOW2 =$0328 FOLLOW3 =$0322 GO =$0333 ? LIEU =$033F MACROCMD =$0803 ? MBUTE =$0343 ? MONSTRE =$033D ? NATURE =$0345 ? NMAP =$033B ? OMAP =$033C ? PCOMB =$0342 ? POURCENT =$0346 ? PROBA =$0341 ? QUART =$033A RAM_ADR =$03BF RETOUR_MACRO =$030C RETOUR_MONS =$4006 RETOUR_OBJ =$1009 ? STRING =$0349 ? SWAP_AUX =$03A0 USR =$030D ? VALS =$035A Symbol table - numerical order: RETOUR_MACRO =$030C USR =$030D FOLLOW3 =$0322 FOLLOW2 =$0328 FOLLOW =$032F GO =$0333 ? QUART =$033A ? NMAP =$033B ? OMAP =$033C ? MONSTRE =$033D ? CMD =$033E ? LIEU =$033F ? COPYLIEU =$0340 ? PROBA =$0341 ? PCOMB =$0342 ? MBUTE =$0343 ? DIVERS =$0344 ? NATURE =$0345 ? POURCENT =$0346 ? STRING =$0349 ? VALS =$035A ? SWAP_AUX =$03A0 RAM_ADR =$03BF MACROCMD =$0803 COPY_OBJ =$0803 COPY_MACRO =$085D COPY_MONS =$0896 RETOUR_OBJ =$1009 COPY_ECHOPE =$13B5 ETAT =$1FF1 RETOUR_MONS =$4006