ORG 100h START: CALL FULL_CYCLE SETUP_OUTPUTS: ;DESCRIPTION BINARY HEX LOCATION ;NS GREEN - EW RED 001100 Ch 0x0100 LD A, 0Ch LD (0001h), A ;NS YELLA - EW RED 001010 Ah 0x0101 LD A, 0Ah LD (0101h), A ;NS RED - EW RED 001001 9h 0x0102 LD A, 09h LD (0201h), A ;NS RED - EW GREEN 100001 21h 0x0103 LD A, 021h LD (0301h), A ;NS RED - EW YELLA 010001 11h 0x0104 LD A, 011h LD (0401h),A NSG_EWR: LD A, (0001h) OUT (5), A RET NSY_EWR: LD A, (0101h) OUT (5), A RET NSR_EWR: LD A, (0201h) OUT (5), A RET NSR_EWG: LD A, (0301h) OUT (5), A RET NSR_EWY: LD A, (0401h) OUT (5), A RET SET_TIMER_25: LD D, 19h RET TIMER_25: CALL SETUP_ONE_SEC CALL ONE_SEC XOR A DEC D ADD A, D JP NZ, TIMER_25 RET SET_TIMER_5: LD D, 5h RET TIMER_5: CALL SETUP_ONE_SEC CALL ONE_SEC XOR A DEC D ADD A, D JP NZ, TIMER_5 RET SETUP_ONE_SEC: LD BC, 03E8h RET ONE_SEC: CALL MILLISEC XOR A DEC BC ADD A, B JP NZ, ONE_SEC ADD A, C JP NZ, ONE_SEC RET MILLISEC: ;N555 TIMER SET TO 1KHZ ;WIRED TO INT PIN ;ACTIVE LOW EI HALT DI RET FULL_CYCLE: LD H, 0h ;PID 0x0 CALL SETUP_OUTPUTS INC H ;PID 0x1 CALL SET_TIMER_25 CALL NSG_EWR CALL TIMER_25 INC H ;PID 0x2 CALL SET_TIMER_5 CALL NSY_EWR CALL TIMER_5 INC H ;PID 0x3 CALL SET_TIMER_5 CALL NSR_EWR CALL TIMER_5 INC H ;PID 0x4 CALL SET_TIMER_25 CALL NSR_EWG CALL TIMER_25 INC H ;PID 0x5 CALL SET_TIMER_5 CALL NSR_EWY CALL TIMER_5 INC H ;PID 0x6 CALL SET_TIMER_5 CALL NSR_EWR CALL TIMER_5 INC H ;PID 0x7 JP FULL_CYCLE ;.end