<-[[.:start]] ====== Update Sept 2022 ====== ** Some recent modifications and additions ** ===== Hardware ===== * 2 more 65C22 VIA chips to give a total of 3 VIAs providing six 8-bit I/O ports. * VIA #1 ($6001) : Port A = Keypad * VIA #1 ($6000) : Port B = LCD_1 (4x20 in 4-bit mode) * VIA #1 : IRQ connection to CPU for keypad and CB1 & CB2 buttons * VIA #1 Port B handshaking CB1 and CB2 connected to debounced buttons for user input experiments * VIA #2 ($5001) : Port A = Spare * VIA #2 ($5000) : Port B = SPI (bit0,1,2,6), Piezo Sounder (bit7) * VIA #2 : T1 Timer = square wave generator for sounder using Port B bit7 * VIA #3 ($4801) : Port A = LCD_2 (2x16 in 4-bit mode) * VIA #3 ($4800) : Port B = Spare * VIA #3 : T1 Timer = System Clock Ticks at 10ms rate via NMI connection to CPU * main LCD changed to a 4 line by 20 character display * 2nd LCD (2 x 16) added on VIA #3 Port A * LED indicator plug-in boards made to give easy visual indication of VIA output port state * Piezo sounder connected to VIA #2 Port B, bit 7 * SPI interfacing using VIA #2 Port B * Buttons for controlling interrupt driven events, each de-bounced with a 555 monostable * 555 timer as a power-on CPU reset ===== Firmware ===== ROM Monitor code extended to support the new hardware. * SPI transceive to communicate with a basic SPI slave running on a PyBoard * LCD #2 display of either "Mission Time" or SPI TX/RX data to/from PyBoard * code to send audible beeps of different pitch/duration (controlled by the 2 buttons) * keypad - confirmation keypress beeps * Byte (binary) to ASCII decimal conversion to show 16-bit/2-byte binary data as a human readable decimal number * Use of FLAGS to control background tasks extended/explored ===== Next Steps ===== * add Serial Interface using Rockwell 65C51 ACIA and MAX232 * learn how to code for interacting via serial interface * connect to a Wyse-185 Serial Terminal *add DS1306 RTC via SPI *move system clock back to VIA_1 using IRQ interrupt *move beep to VIA_3 port B7 * move SPI interface to VIA_3 port B, for future connection to DS1306 RTC * this will leave : * VIA_2 ports A & B free for external use * VIA_3 Port A = LCD2 * VIA_3 Port B = Beep and SPI/RTC --- //John Pumford-Green 17/09/22 11:50// ===== Further Information ===== {{tag>6502 assembly}}