49 lines
819 B
NASM
49 lines
819 B
NASM
CPU 8086
|
|
|
|
chunksize equ 0x20
|
|
devicedelay equ 0x08
|
|
|
|
_start:
|
|
push bp
|
|
mov bp, sp
|
|
sub sp, 8
|
|
mov [bp-2], word chunksize ; recv size
|
|
mov [bp-4], word 0xf000 ; recv addr
|
|
mov [bp-6], word 0x0001 ; send size
|
|
mov [bp-8], word 0x7000 ; send addr
|
|
mov bx, [bp-8]
|
|
mov [bx], byte 0x42
|
|
l0:
|
|
cmp word [bp-4], 0xf600
|
|
jb l1
|
|
l2:
|
|
mov sp, bp
|
|
pop bp
|
|
ret
|
|
l1:
|
|
mov ah, 0x07
|
|
int 0x80
|
|
test al, al
|
|
jnz l1
|
|
push word [bp-2]
|
|
push word [bp-4]
|
|
mov ah, 0x05
|
|
int 0x80
|
|
test al, al
|
|
jz l2
|
|
mov ah, 0
|
|
add [bp-4], ax
|
|
push word [bp-6]
|
|
push word [bp-8]
|
|
mov ah, 0x06
|
|
int 0x80
|
|
add sp, 8
|
|
mov cx, devicedelay
|
|
l3:
|
|
mov ah, 0x07
|
|
push cx
|
|
int 0x80
|
|
pop cx
|
|
loop l3 ; give the device some time to answer
|
|
jmp l0
|