30 likes | 175 Vues
PD32. IACK. DISPLAY. IO AB. IO DB. IO CB. IRQ. IACK. START. CLEAR. IOWR. O.C. MEM FIFO. IVN. S Q R. COMPLETE. STARTD. SCO DISPLAY. SCA DISPLAY. ORG 400H DISPLAY EQU BUFFER1 EQU BBBBh BUFFER2 EQU EEEEh CODE JSR INIT MAIN: JMP MAIN INIT: START DISPLAY
E N D
PD32 IACK DISPLAY
IO AB IO DB IO CB IRQ IACK START CLEAR IOWR O.C. MEM FIFO IVN S Q R COMPLETE STARTD SCO DISPLAY SCA DISPLAY
ORG 400H DISPLAY EQU BUFFER1 EQU BBBBh BUFFER2 EQU EEEEh CODE JSR INIT MAIN: JMP MAIN INIT: START DISPLAY SETI RET DRIVER 0,1000h; Driver display PUSH… XORL R0,R0; AZZERO CONTATORE MOVW #128,R1; LIMITE MAX CONTATORE MOVL #BUFFER1,R2; INDIRIZZO INIZIALE BUFFER1 MOVL #BUFFFER2,R3; INDIRIZZO INIZIALE BUFFER2 LOOP: CMPW R0,R1; CONFRONTA CONTATORE CON 128 JZ DIS_OFF; SALTA SE R0=R1 ADDW #1,R0; AGGIORNO VALORE CONTATORE MOVB(R2)+,R4; METTO DATO CORRENTE DEL BUFFER1 IN R4 MOVB(R3)+,R5; METTO DATO CORRENTE DEL BUFFER2 IN R5 CMPB R4,R5; CONFRONTA GLI ELEMENTI JZ LOOP; SE SONO UGUALI CONTINUA CON IL CICLO JSR TRASFERISCI; SUBROUTINE PER IL TRASFERIMENTO DEI DATI A DISPLAY S TART DISPLAY JMP FINE DIS_OFF CLEAR DISPLAY FINE POP… RTI TRASFERISCI: PUSH.. XORL R0,R0; AZZERO IL REGISTRO CHE USO PER CONTATORE MOVW #128,R1; IMPOSTO VALORE PER IL CONFRONTO DEL CONTATORE MOVL #BUFFER1,R2; INDIRIZZO PER LO SPIAZZAMENTO NEL BUFFER DA SPOSTARE LOOP1: CMPW R0,R1 JZ FINE ADDW #1,R0 MOVB (R2)+,R3 OUTB R3, DISPLAY JMP LOOP RET