;----------------------------------------------------------------- ; EX68.ASM IMPLEMENTING COMBINATORIAL LOGIC C.P. Diduch 2001 ; ; Implement the Boolean equation, a0 = b5'b2b1'b0 or b7b6'b5'b2. ; Assume output port data at OPORT = a15 ... a0. ; Assume input port data at IPORT = b15 ... b0. ; ; Author(s): ; Signature(s): Date: ;----------------------------------------------------------------- .EQU IPORT 0 ; #define IPORT 0 .EQU OPORT 2 ; #define OPORT 2 ; .ORG 0x8000 ; "assign the following to ROM" ; ; void main(void) { ; ; do { B0: LOADP R0, IPORT ; R0 = inport(IPORT); ADD R1, R0, NULL ; R1 = R0; ANDL R1, R1, 0x027 ; if(((R0 & 0x0027)==0x0005) SUBL NULL, R1, 0x005 ; JMPZ B1 ; ; ADD R1, R0, NULL ; | ((R0 & 0x00E4)==0x0084)){ ANDL R1, R1, 0x0E4 ; SUBL NULL, R1, 0x084 ; JMPNZ B2 ; ; B1: ADDL R0, NULL, 1 ; outportb(OPORT, 1); STOREP OPORT, R0 ; JMP B3 ; } ; B2: ADDL R0, NULL, 0 ; else { STOREP OPORT, R0 ; outportb(OPORT, 0); ; } B3: JMP B0 ; } ; }