|
|
|
|
Interfacing IBM & COMPATIBLE COMPUTERS
|
|
|
|
Turbo Assembler Version 1.0 10-26-00 19:53:32 Page 1
L5A2.ASM
1 0000 .MODEL SMALL
2
3 = 0080 INIT EQU 80h
4 = 0303 IPORT EQU 303h
5 = 0300 APORT EQU 300h
6
7 = 0078 CHK EQU 78H
8
9 0000 .CODE
10 0000 B1 00 MOV CL,0
11 0002 B0 80 MOV AL,INIT
12 0004 BA 0303 MOV DX,IPORT
13 0007 EE OUT DX,AL
14
15 0008 FE C1 AGN: INC CL ;hint for ?
16
17 000A B4 07 MOV AH,7
18 000C CD 21 INT 21h ; get key
19 000E 3C 78 CMP AL,CHK ; sub check to set flags
20 0010 BA 0300 MOV DX,APORT
21 0013 75 F3 JNZ AGN
22 0015 8A C1 MOV AL,CL
23 0017 EE OUT DX,AL
24
25
26
27
28 0018 CC INT 3
29 END
Turbo Assembler Version 1.0 10-26-00 19:53:32 Page 2
Symbol Table
Symbol Name Type Value
??DATE Text "10-26-00"
??FILENAME Text "L5A2 "
??TIME Text "19:53:32"
??VERSION Number 0100
@CODE Text _TEXT
@CODESIZE Text 0
@CPU Text 0101H
@CURSEG Text _TEXT
@DATA Text DGROUP
@DATASIZE Text 0
@FILENAME Text L5A2
@WORDSIZE Text 2
AGN Near _TEXT:0008
APORT Number 0300
CHK Number 0078
INIT Number 0080
IPORT Number 0303
Groups & Segments Bit Size Align Combine Class
DGROUP Group
_DATA 16 0000 Word Public DATA
_TEXT 16 0019 Word Public CODE
|
|
|
Turbo Assembler Version 1.0 03-28-01 10:44:37 Page 1
LAB1B.ASM
1 0000 .model small
2 0000 .code
3 0000 BA 0303 mov dx,303h
4 0003 B0 80 mov al,80h
5 0005 EE out dx,al
6 0006 BA 0301 mov dx,301h
7
8 0009 FE C0 it: inc al
9 000B EE out dx,al
10 000C EB FB jmp it
11 end
Turbo Assembler Version 1.0 03-28-01 10:44:37 Page 2
Symbol Table
Symbol Name Type Value
??DATE Text "03-28-01"
??FILENAME Text "LAB1B "
??TIME Text "10:44:37"
??VERSION Number 0100
@CODE Text _TEXT
@CODESIZE Text 0
@CPU Text 0101H
@CURSEG Text _TEXT
@DATA Text DGROUP
@DATASIZE Text 0
@FILENAME Text LAB1B
@WORDSIZE Text 2
IT Near _TEXT:0009
Groups & Segments Bit Size Align Combine Class
DGROUP Group
_DATA 16 0000 Word Public DATA
_TEXT 16 000E Word Public CODE
|
|
|
Turbo Assembler Version 1.0 04-11-01 10:26:55 Page 1
LPS.ASM
1 0000 .MODEL SMALL
2 = 0081 INIT EQU 81H
3 = 012C PORTA EQU 300
4 = 012D PORTB EQU 301
5 = 012E PORTC EQU 302
6 = 012F PORTI EQU 303
7
8 0000 .CODE
9 0000 B0 81 MOV AL,INIT
10 0002 BA 012F MOV DX,PORTI ;INIT BOARD
11 0005 EE OUT DX,AL
12
13 0006 B3 0F MOV BL,0FH
14
15 0008 BA 012D AGN: MOV DX,PORTB
16 000B EC IN AL,DX ;CHECK BUSY
17 000C 24 80 AND AL,10000000B ;MSB
18 000E 75 F8 JNZ AGN
19
20 0010 F6 D3 NOT BL ;DATA/2
21 0012 8A C3 MOV AL,BL
22 0014 BA 012C MOV DX,PORTA ;SEND DATA
23 0017 EE OUT DX,AL
24
25 0018 BA 012E MOV DX,PORTC
26 001B B0 FE MOV AL, 11111110B
27 001D EE OUT DX,AL ;PULSE STRB
28 001E E8 000D CALL TIME
29 0021 B0 FF MOV AL,11111111B
30 0023 EE OUT DX,AL
31
32 0024 BA 012D QT: MOV DX,PORTB
33 0027 EC IN AL,DX
34 0028 24 80 AND AL,10000000B ;NO REPEAT
35 002A 74 F8 JZ QT
36 002C EB DA JMP AGN
37
38 002E TIME PROC NEAR
39 002E B9 FFFF MOV CX,0FFFFH
40 0031 90 L1: NOP
41 0032 49 DEC CX
42 0033 75 FC JNZ L1
43 0035 C3 RET
44 0036 ENDP
45
46 END
Turbo Assembler Version 1.0 04-11-01 10:26:55 Page 2
Symbol Table
Symbol Name Type Value
??DATE Text "04-11-01"
??FILENAME Text "LPS "
??TIME Text "10:26:54"
??VERSION Number 0100
@CODE Text _TEXT
@CODESIZE Text 0
@CPU Text 0101H
@CURSEG Text _TEXT
@DATA Text DGROUP
@DATASIZE Text 0
@FILENAME Text LPS
@WORDSIZE Text 2
AGN Near _TEXT:0008
INIT Number 0081
L1 Near _TEXT:0031
PORTA Number 012C
PORTB Number 012D
PORTC Number 012E
PORTI Number 012F
QT Near _TEXT:0024
TIME Near _TEXT:002E
Groups & Segments Bit Size Align Combine Class
DGROUP Group
_DATA 16 0000 Word Public DATA
_TEXT 16 0036 Word Public CODE
|
|
 Prof. Joe Sminchak
|
|
|
|
|