* ORG $0080 *DMES EQU * * FCC '..LIEVER' *FMES EQU * *------------------------------------------------- * PORTS et TIMERS 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 TIMERS 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 * PB7 doit etre reli‚ … la ligne IRQ pour que le timer * puisse g‚n‚rer une INTERRUPT * en lecture TIM2LEC EQU $170E * lecture temps en cours TIM2OUT EQU $170F * bit 7 registre etat passe … 1 si temps ecoul‚ ORG $0200 * SUB MONITOR KIM ------------------- INIT1 EQU $1E8C * init PA2DDR en entree et PB2DDR en 0011 1111 OUTCH EQU $1EA0 * print (A) en binaire!!! OUTSP EQU $1E9E * print un espace PRTBYT EQU $1E3B * envoi sur tty (A)hexa -> 2 car.ascii PRTPNT EQU $1E1E * print pointeur (FB,FA)+calcul CHKSUM PRTCRLF EQU $1F2F * print CR LF + 6 valeurs … 0 SHOW EQU $1E2F * visu valeur pointee par(FB FA)+(Y) FEED EQU $1E07 * decremente pointeur (FB FA) puis SHOW SPACE EQU $1DA9 * print CRLF + point.(FB FA) + DATA INCPNT EQU $1F63 * incremente FB FA puis SPACE = Sub RTRN GETCH EQU $1E5A * lecture sur TTY de 1 car ->(A) Y modifi‚ X preserv‚ SCAND EQU $1F19 * affichage Adresse FB,FA et donnee F9 SCANDS EQU $1F1F * affichage sur Digits du contenu de FB,FA,F9 GETKEY EQU $1F6A * lecture touche clavier KIM (A)>15 ==> illegal GETBYT EQU $1F9D * lecture sur TTY de 2 car Hexa et stock dans F8 F9 CHK EQU $1F91 * calcul checksum stock‚ en CHKL CHKH OPEN EQU $1FCC * buffer(INL INH) F8 F9--> FA FB (PointL,PointH) DUMP EQU $1D42 * dump from OPEN cell to limites en 17F7 17F8 LOAD EQU $1CE7 * Load from tty VECTNMI EQU $17FA * vecteur de branchement NMI VECTRST EQU $17FC * vecteur RESTART VECTIRQ EQU $17FE * vecteur IRQ BREAK EQU $17FE * idem vect IRQ mais B=1 dans R.etat PC+2 sauv‚ SAVE EQU $1C00 * traitement NMI ou BRK logiciel RST EQU $1C22 * traitement detouche kim RST CHKL EQU $17E7 CHKH EQU $17E8 EAL EQU $17F7 * limites utilisees par dump KIM / TTY EAH EQU $17F8 NBCLOCK EQU 244 * valeur init Timer = 244/1024 secondes TICKS EQU $00 SECONDE EQU $01 MINUTE EQU $02 HEURE EQU $03 Cpt1 EQU $07 SaveY EQU $08 DIGIT3 EQU $FB DIGIT2 EQU $FA DIGIT1 EQU $F9 J EQU $1E E EQU $F9 U EQU $1C - EQU $08 T EQU $70 I EQU $04 R EQU $50 * --------------- fin d'entete ------------ ORG $0019 VISUC LDA #64 STA Cpt1 Jmp VISD VISUL LDA #255 STA Cpt1 VISD LDA #$7F STA PA2DDR LDX #6 LDY #13 VIS0 TYA STA PB2DATA LDA [0,X] STA PA1DATA STY SAVEY LDY #255 VIS1 DEY BNE VIS1 LDY SAVEY DEY DEY DEX BNE VIS0 DEC Cpt1 BNE VISD LDA #0 STA PA2DDR STA PB2DDR RTS ORG $0200 INIT LDA J STA 01 LDA E STA 02 LDA U STA 03 LDA #08 STA 04 STA 05 STA 06 JSR VISUL JSR TEMPO1S LDA T STA 01 LDA I STA 02 LDA R STA 03 LDA #08 STA 04 STA 05 STA 06 JSR VISUL BRK TEMPO1S TYA PHA LDY #08 TP1 LDA #244 STA TIMER24 TP2 BIT TIM2OUT BPL TP2 PLA TYA RTS