All pastes #47227 Raw Edit

Stuff

public text v1 · immutable
#47227 ·published 2006-03-28 00:41 UTC
rendered paste body
MAIN SEGMENT
        ASSUME CS:MAIN,DS:MAIN,ES:MAIN,SS:MAIN
 
        ORG 0100h
 
START:
        MOV CX,5h
LOOPS:
        PUSH CX
        CALL GETTING
        CALL PRINTING
        POP CX
        DEC CX
        JCXZ EXIT
        JMP LOOPS
EXIT:
        INT 20h
;Getting the character
GETTING PROC
        MOV AH,0h
        INT 16h
        MOV KEY,AL
        CMP KEY,61h
        JGE CONVERT
        RET
GETTING ENDP
;Converting the character
CONVERT:
        SUB KEY,20h
        RET
;Printing the character
PRINTING PROC
        MOV AH,2h
        CMP KEY,53h     ; S == Z
        JE ITS_S
        CMP KEY,41h     ; A == 4
        JE ITS_A
        CMP KEY,46h     ; F == PH
        JE ITS_F
        CMP KEY,45h     ; E == 3
        JE ITS_E
        CMP KEY,49h     ; I == 1
        JE ITS_I
        CMP KEY,54h     ; T == 7
        JE ITS_T
        CMP KEY,4Fh     ; O == 0
        JE ITS_O
        CMP KEY,4Ch     ; L == |
        JE ITS_L
        CMP KEY,50h     ; PH == F
        JE ITS_P
        CMP KEY,8h      ; BACKSPACE
        JE BACKSPACE
        MOV DL,KEY      ; DEFAULT
        INT 21h
        RET
PRINTING ENDP
ITS_S:
        MOV DL,5Ah
        INT 21h
        RET
ITS_A:
        MOV DL,34h
        INT 21h
        RET
ITS_F:
        MOV DL,50h
        INT 21h
        MOV DL,48h
        INT 21h
        RET
ITS_I:
        MOV DL,31h
        INT 21h
        RET
ITS_T:
        MOV DL,37h
        INT 21h

        RET
ITS_O:
        MOV DL,30h
        INT 21h
        RET
ITS_L:
        MOV DL,7Ch
        INT 21h
        RET
ITS_P:
        PUSH AX
        CALL GETTING
        POP AX
        CMP KEY,48h
        JE ITS_H
        MOV DL,50h
        INT 21h
        CALL PRINTING
        RET
ITS_H:
        MOV DL,46h
        INT 21h
        RET
ITS_E:
        PUSH AX
        CALL GETTING
        POP AX
        MOV DL,33h
        INT 21h
        CMP KEY,41h
        JE ITS_EA
        CALL PRINTING
        RET
ITS_EA:
        MOV DL,33h
        INT 21h
        RET
BACKSPACE:
        MOV DL,KEY
        INT 21h
        MOV DL,20h
        INT 21h
        MOV DL,KEY
        INT 21h
        POP CX
        INC CX
        PUSH CX
        RET
 
KEY DB ?
 
MAIN ENDS
END START