* PF 22 OCT 91 * KIM Modifie QUARTZ 2 MHZ (au lieu de 1 Mhz) * mesure de temperature par sonde 2xPT100 4,7æ+4,7 oscillateur et divise/12 * mesure de la frequence sur 4 digits de gauche: * affichage HHLL xx : * 100 ohms 0741 soit 0øc * 138 ohms 0956 soit 100øC * mesure= (N-741)*93/2 en 100emes deøC * affichage Temperature sur 4 digits et Nb mesure sur 2 digits de droite * ou affichage HHMM SS * Nota : les lignes ne doivent pas depasser 80 cars,sinon errors OPT *PAGE 0 RAM RESERVEE ORG $0000 MILISEC RMB 1 SECONDE RMB 1 MINUTE RMB 1 HEURE RMB 1 DUMMY RMB 1 POUBEL RMB 1 MULTEUR RMB 1 MULCAND RMB 1 MULRES RMB 2 DIVIDEN RMB 2 DIVISEU RMB 1 QUOTIEN RMB 1 RESTE RMB 1 RMB 1 ADR1 RMB 2 ADR2 RMB 2 ADR3 RMB 2 ADR4 RMB 2 ADR5 RMB 2 NBMes RMB 2 OFS RMB 2 * stocke valeur counts … 0øC ECHELLE RMB 2 * rapport Counts/degre pour 100øC *--- ports et timer utilis‚s par KIM 6530-02 PA2DATA EQU $1740 * Port A registre DATAS PA2DDR EQU $1741 * Port A registre de direction 0=entree 1=sortie PB2DATA EQU $1742 * Port B registre DATAS PB2DDR EQU $1743 * Port B registre de direction 0=entree 1=sortie * en ecriture TIMER31 EQU $1744 * diviseur1/1 15 … 370 æs TIMER32 EQU $1745 * div par 8 23 … 2055 æs TIMER33 EQU $1746 * div par 64 79 … 16320æs TIMER34 EQU $1747 * div par 1024 1,039ms … 261ms * en lecture TIM3LEC EQU $1746 * lecture temps en cours TIM3OUT EQU $1747 * bit 7 registre … 1 si temps ecoul‚ B0..B6 … 0 *---- ports et Timmers dispo application 6530-03 PA1DATA EQU $1700 * Port A registre DATAS PA1DDR EQU $1701 * Port A registre de direction 0=entree 1=sortie PB1DATA EQU $1702 * Port B reg DATAS PB0 … PB5 only ! PB7 r‚serv‚ ITT PB1DDR EQU $1703 * Port B registre de direction 0=entree 1=sortie * en ecriture TIMER11 EQU $1704 * diviseur1/1 15 … 370 æs TIMER12 EQU $1705 * div par 8 23 … 2055 æs TIMER13 EQU $1706 * div par 64 79 … 16320æs TIMER14 EQU $1707 * div par 1024 1,039ms … 261ms * en lecture TIM1LEC EQU $1706 * lecture temps en cours TIM1OUT EQU $1707 * bit 7 registre etat passe … 1 si temps ecoul‚ *---- * en ecriture TIMER21 EQU $170C * div par 1 en mode INTERRUPT TIMER22 EQU $170D * div par 8 en mode INTERRUPT TIMER23 EQU $170E * div par 64 en mode INTERRUPT TIMER24 EQU $170F * div par 1024 en mode INTERRUPT * en lecture TIM2LEC EQU $170E * lecture temps en cours TIM2OUT EQU $170F * bit 7 registre etat passe … 1 si temps ecoul‚ DIGIT1 EQU $F9 * 2 digits afficheurs de droite KIM DIGIT2 EQU $FA * 2 digits afficheurs du milieu KIM DIGIT3 EQU $FB * 2 digits afficheurs de gauche KIM * ROUTINES KIM GETCH EQU $1E5A * lit car (A) sur tty Y modifi‚ X preserv‚ INCPNT EQU $1F63 * incremente pointeur FA,FB OUTCH EQU $1EA0 * envoi sur TTY (A) en ASCII ex: A=42h -> "B" OUTSP EQU $1E9E * envoi un espace PRTBYT EQU $1E3B * envoi sur tty (A) -> 2 car.ascii ex:A=42h -> "42" PRTCRLF EQU $1E2F * envoi sur TTY CRLF PRTPNT EQU $1E1E * envoi sur TTY pointeur (FB,FA) PRTTST EQU $1E31 * envoi ch. asc de long=x de TOP+x to TOP(TOP=$1FD5) SCAND EQU $1F19 * affichage Adresse FB,FA et donnee F9 SCANDS EQU $1F1F * affichage sur Digits du contenu de FB,FA,F9 TSTCLAV EQU $1EFE * test appui clavier (A)<>0 si enfonc‚e X,Y modif GETKEY EQU $1F6A * test touche -> (A) PACK EQU $1A00 * (A) ascii -> Hexa (17E9) VECTNMI EQU $17FA * 17FB vecteur de branchement NMI VECTRST EQU $17FC * 17FD vecteur RESTART VECTIRQ EQU $17FE * 17FF vecteur IRQ * --------------- fin d'entete ------------ ZERODEG EQU $1548 GAMME EQU $446 ORG $0200 DEBUT LDA #$00 * port A en entree STA PA1DDR INIT LDA #00 * raz 80 premiers bytes page 0 LDX #80 IN1 STA $00,X * store A a l'adresse absolue 0000+X DEX BNE IN1 STA DIGIT1 STA DIGIT2 STA DIGIT3 LDA #ZERODEG AND $00FF * init offset STA OFS LDA #ZERODEG/256 STA OFS+1 LDA #GAMME AND $00FF * init offset STA ECHELLE LDA #GAMME/256 STA ECHELLE+1 LDA #HORLOGE AND $00FF STA VECTIRQ LDA #HORLOGE/256 STA VECTIRQ+1 LDA #$00 STA VECTNMI LDA #$1C STA VECTNMI+1 LDA #244 STA TIMER24 * /1024 bit7 relie a IRQ L00 CLI LDA #04 BIT SECONDE BEQ L01 JSR MESURE JSR ENVOITTY INC NBMES jmp L0 L01 JSR AFFHEUR L0 LDA SECONDE CMP #$60 BNE L3 LDA #0 STA SECONDE LDA MINUTE SED CLC ADC #1 STA MINUTE CMP #$60 BNE L3 LDA #0 L1 STA MINUTE LDA HEURE ADC #1 STA HEURE CMP #$24 BNE L3 LDA #0 STA HEURE L3 JMP L00 Mesure LDA #00 STA ADR3 STA ADR3+1 LDA #01 STROBEH BIT PA1DATA BNE STROBEH STROBEL BIT PA1DATA BEQ STROBEL ETATHAUT JSR INCREMD BIT PA1DATA BNE ETATHAUT ETATBAT JSR INCREMD BIT PA1DATA BEQ ETATBAT JSR OFFSET * enleve offset 0øC * LDA ADR3 * STA MULCAND * LDA #50 * STA MULTEUR * JSR MUTIPLI * LDA MULRES * STA DIVIDEN * LDA MULRES+1 * STA DIVIDEN+1 * LDA #223 * STA DIVISEU * JSR DIVIDE * LDA DIVIDEN * STA ADR3 RTS INCREMD PHA * incremente compteur 16 bits decimal 0000 9999 de 1 SEC LDA ADR3 ADC #1 STA ADR3 BCC INL1 LDA ADR3+1 ADC #0 STA ADR3+1 PLA RTS INL1 NOP NOP * equilibre temps NOP PLA RTS INCREMB PHA * incremente compteur 16 bits BINAIRE 0000 FFFF de 1 INC ADR3 BNE INC1 INC ADR3+1 INC1 PLA RTS ADDITION PHA CLC SED LDA ADR1 ADC ADR2 STA ADR3 LDA ADR1+1 ADC ADR2+1 STA ADR3+1 PLA RTS OFFSET PHA * en decimal SEC SED LDA ADR3 SBC OFS STA ADR3 LDA ADR3+1 SBC OFS+1 STA ADR3+1 PLA RTS DIVIDE PHA TXA PHA LDA #0 LDX #16 DIV1 CLC ROL DIVIDEN+1 ROL A BCC DIV2 CMP DIVISEU BCC DIV3 DIV2 SBC DIVISEU INC DIVIDEN DIV3 DEX BNE DIV1 STA RESTE PLA TAX PLA RTS CALIBRE NOP NOP NOP RTS MULTIPLI PHA LDA #0 STA MULRES LDX #8 MUL1 LSR MULTEUR BCC MUL2 CLC ADC MULCAND MUL2 ROR A ROR MULRES DEX BNE MUL1 STA MULRES+1 RTS HORLOGE SEI PHA SED INC Milisec LDA Milisec * 125 ms x 8 = 1sec CMP #08 * car KIM 2Mhz NOW !!! BNE HORL2 LDA #00 STA MiliSec CLC LDA Seconde ADC #01 STA SECONDE HORL2 LDA #244 STA TIMER24 PLA CLI RTI AFFTEMP LDA #0 STA DIGIT1 LDA ADR3 * MSB ordre des digits FB FA F9 STA DIGIT2 LDA ADR3+1 * LSB STA DIGIT3 JSR SCANDS JSR SCANDS JSR SCANDS RTS AFFHEUR LDA SECONDE STA DIGIT1 LDA MINUTE * MSB ordre des digits FB FA F9 STA DIGIT2 LDA HEURE * LSB STA DIGIT3 JSR SCANDS JSR SCANDS RTS NMI JMP FNMI RMB 32 FNMI NOP SEI RTI Tempo1 PHA LDA #20 STA TIMER14 Tp1 BIT TIM1OUT BPL Tp1 PLA RTS EnvoiTTY SEI TYA PHA LDA ADR3 JSR EnORDRE LDA ADR3+1 JSR EnORDRE PLA TAY CLI RTS EnOrdre PHA CLC LDY #0 STY DUMMY CLC LDY 4 Env1 ROL A ROL DUMMY CLC DEY BNE Env1 AND DUMMY JSR PRTBYT PLA RTS