; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
org 100h
DATA SEGMENT
PORTA EQU 218H
PORTB EQU 219H
PORTC EQU 21AH
PTCON8255 EQU 21BH
PORT0 EQU 238H
PORT1 EQU 239H
PORT2 EQU 240H
PTCON8253 EQU 241H
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
INIT: MOV AX,DATA
MOV DS,AX
MOV DX,PTCON8253
MOV AL,36H
OUT DX,AL
MOV DX,PORT0
MOV AX,2710H
OUT DX,AL
MOV DX,0AH
OUT DX,AL
MOV DX,PTCON8253
MOV AL,71H
OUT DX,AL
MOV DX,PTCON8253
MOV AL,96H
OUT DX,AL
MOV DX,PORT2
MOV AL,64H
OUT DX,AL
MOV DX,PTCON8255
MOV AL,80H
OUT DX,AL
MOV DX,PORTA
MOV AL,0
OUT DX,AL
MOV DX,PORTB
MOV AL,0FH
OUT DX,AL
MOV DX,PORTC
MOV AL,0FH
OUT DX,AL
STA: MOV DX,PORTA
MOV AL,0A0H
OUT DX,AL
MOV DX,PORTB
MOV AL,0F0H
OUT DX,AL
MOV DX,PORTC
MOV AL,50H
OUT DX,AL
MOV DX,PORT1
MOV AX,0BB8H
OUT DX,AL
MOV AL,AH
OUT DX,AL
SCAN1:MOV AL,0
MOV DX,PTCON8255
MOV AL,90H
OUT DX,AL
MOV DX,PORTA
IN AL,DX
AND AL,0FH
CMP AL,1
JNZ SCAN1
FLA1:MOV DX,PTCON8255
MOV AL,80H
OUT DX,AL
MOV DX,PORTC
MOV AL,0F0H
OUT DX,AL
MOV DX,PORTB
MOV AL,50H
OUT DX,AL
MOV CX,0
TEST1:MOV DX,PTCON8255
MOV AL,82H
OUT DX,AL
MOV DX,PORTB
IN AL,DX
AND AL,0FH
MOV AH,AL
MOV DX,PTCON8255
MOV AL,82H
OUT DX,AL
MOV DX,PORTB
IN AL,DX
AND AL,0FH
XOR AL,AH
ADD CL,AL
CMP CL,9
JNZ TEST1
MOV DX,PTCON8255
MOV AL,80H
OUT DX,AL
MOV DX,PORTA
MOV AL,50H
OUT DX,AL
MOV DX,PORTB
MOV AL,0F0H
OUT DX,AL
MOV DX,PORTC
MOV AL,0A0H
MOV DX,PORT1
MOV AX,0BB8H
OUT DX,AL
MOV AL,AH
OUT DX,AL
SCAN2:MOV AL,0
MOV DX,PTCON8255
MOV AL,90H
OUT DX,AL
MOV DX,PORTA
IN AL,DX
AND AL,0FH
CMP AL,1
JNZ SCAN2
FLA2:MOV DX,PTCON8255
MOV AL,80H
OUT DX,AL
MOV DX,PORTC
MOV AL,0F0H
OUT DX,AL
MOV DX,PORTB
MOV AL,0A0H
OUT DX,AL
TEST2:MOV DX,PTCON8255
MOV AL,88H
OUT DX,AL
MOV DX,PORTC
IN AL,DX
AND AL,0FH
MOV AH,AL
MOV DX,PTCON8255
MOV AL,88H
OUT DX,AL
MOV DX,PORTC
IN AL,DX
AND AL,0FH
XOR AL,AH
ADD CL,AL
CMP CL,9
JNZ TEST2
CODE ENDS
END STA
ret
|