Assembler - Maverick-Shark/retroGuru GitHub Wiki
https://redelectronica.blogspot.com/2008/01/lenguaje-ensamblador-entrega-1.html https://redelectronica.blogspot.com/2008/01/ensamblador-entrega-2.html
C:\>debug
-a
3902:0100 MOV AX,123
3902:0103
-g 100
debug < file.scr
C:\> MASM PROG.ASM;
C:\> LINK PROG.OBJ;
C:\> EXE2BIN PROG.EXE PROG.COM
-
ASM Keyboard Input in Batch Files
Reference: "Supercharging MS-DOS," pages 97-98, by Van Wolverton, Microsoft Press, 1989, 1991 (Updated for Version 4). Link
@Echo off
path=C:\DOS
:Ask
Echo Install Mouse Driver (y/n)?
Reply
If errorlevel 121 if not errorlevel 122 goto install
If errorlevel 89 if not errorlevel 90 goto install
If errorlevel 110 if not errorlevel 111 goto NoMouse
If errorlevel 78 if not errorlevel 79 goto NoMouse
goto ask
:install
c:\mouse\mouse
:NoMouse
cls
ver
DEBUG Executes MS-DOS DEBUG utility
-A 100 Begin assembling instructions at memory location
100
xxxx:0100 MOV AH,08 Get character input without echo
xxxx:0102 INT 21 Perform MS-DOS service
xxxx:0104 CMP AL,0 Compare AL with zero
xxxx:0106 JNZ 010A If lead zero, get second code of character
xxxx:0108 INT 21 Perform MS-DOS service
xxxx:010A MOV AH,4C Terminate process with return code
xxxx:010C INT 21 Perform MS-DOS service
xxxx:010E <ENTER>
-rcx
CX 0000
:e
-n REPLY.COM
-w
Writing 000E bytes
-q
- Check drives:
-A 100
INT 11h
MOV CL, 6
SHR AX, CL
AND AX, 03
INC AX
ADD AL, 30
MOV DL, AL
MOV AH, 02
INT 21h
MOV AX, 4C00
INT 21h
.MODEL TINY
.CODE
ORG 100h
MOV DX, 61h ; Puerto C del 8255/FE2010A
IN AL, DX ; Leer el puerto
MOV CL, 6 ; Preparar para desplazar 6 bits
SHR AX, CL ; Desplazar bits 7-6 a posición 1-0
AND AX, 03h ; Enmascarar solo bits 1-0 (00, 01, 10, 11)
INC AX ; Sumar 1 para obtener 1-4 disqueteras
ADD AL, 30h ; Convertir a ASCII ('1'-'4')
MOV DL, AL ; Preparar para imprimir
MOV AH, 02h ; Función DOS: imprimir carácter
INT 21h ; Imprimir número de disqueteras
MOV AX, 4C00h ; Función DOS: terminar programa
INT 21h ; Salir