;In the name of allah ;Dos Clock Program By Hojat Ghanadzade (87412163) ;Teacher : Mr H.Hasanpoor ;Sadjad University - Autumn 1388 codesg segment 'code' assume CS:codesg org 100h .286C main: jmp SetupPart y db ? x db ? key db ? const db ? const2 db 2 Vector dd ? xclear db 79 ;RuningPart RuningPart proc near pusha pushf mov AH, 03 mov BH, 0 int 10h mov y, DH mov x, DL push ax call Cheshmak pop ax cmp key,1 je countinue mov DH, 0 mov DL, 69 mov AH, 02 mov BH, 0 int 10h call Gettime mov AL, CH call PrintTime call colon mov AL, CL call PrintTime call colon mov AL, DH call PrintTime countinue: call ClearTime mov DH, 01 mov DL, 68 mov AH, 02 mov BH, 0 int 10h call MyName1 mov DH, 02 mov DL, 69 mov AH, 02 mov BH, 0 int 10h call MyName2 mov DH, 04 mov DL, 68 mov AH, 02 mov BH, 0 int 10h call MySTNO1 mov DH, 05 mov DL, 69 mov AH, 02 mov BH, 0 int 10h call MySTNO2 mov DH, 08 mov DL, 69 mov AH, 02 mov BH, 0 int 10h call sadjad mov DH, 09 mov DL, 67 mov AH, 02 mov BH, 0 int 10h call UNIVERSITY mov DH, 11 mov DL, 69 mov AH, 02 mov BH, 0 CALL AUTUMN mov DH, 12 mov DL, 70 mov AH, 02 mov BH, 0 CALL YEAR call wall mov AH, 02 mov BH, 0 mov DH, y mov DL, x int 10h popf popa jmp CS:Vector RuningPart endp ;Setup Part SetupPart proc near mov AH, 35H mov AL, 08 int 21h mov word ptr Vector, BX mov word ptr Vector + 2, ES mov AH, 25H mov AL, 08 mov DX, offset RuningPart int 21h mov AH, 31h mov DX, (offset SetupPart-offset RuningPart) int 21h SetupPart endp ;========================================= colon proc near mov AL, ':' mov AH, 0eh int 10h ret colon endp PrintTime proc near push DX mov BL, 10 mov AH, 0 div BL mov BX, AX add BL, 30h add BH, 30h mov AH, 0eh mov AL, BL int 10h mov AL, BH int 10h pop DX ret PrintTime endp Gettime proc near mov AH, 02 int 1ah ret Gettime endp MyName1 proc near mov AL, 'W' mov AH, 0eh int 10h mov AL, 'R' mov AH, 0eh int 10h mov AL, 'I' mov AH, 0eh int 10h mov AL, 'T' mov AH, 0eh int 10h mov AL, 'T' mov AH, 0eh int 10h mov AL, 'E' mov AH, 0eh int 10h mov AL, 'N' mov AH, 0eh int 10h mov AL, ' ' mov AH, 0eh int 10h mov AL, 'B' mov AH, 0eh int 10h mov AL, 'Y' mov AH, 0eh int 10h ret MyName1 endp MyName2 proc near mov AL, 'H' mov AH, 0eh int 10h mov AL, 'O' mov AH, 0eh int 10h mov AL, 'J' mov AH, 0eh int 10h mov AL, 'A' mov AH, 0eh int 10h mov AL, 'T' mov AH, 0eh int 10h mov AL, '-' mov AH, 0eh int 10h mov AL, 'G' mov AH, 0eh int 10h mov AL, 'H' mov AH, 0eh int 10h ret MyName2 endp wall proc near push cx mov cx,25 for : mov DH, cl mov DL, 66 mov AH, 02 mov BH, 0 int 10h mov AL, '▌' mov AH, 0eh int 10h loop for pop cx ret wall endp MySTNO1 proc near mov AL, 'My' mov AH, 0eh int 10h mov AL, ' ' mov AH, 0eh int 10h mov AL, 'S' mov AH, 0eh int 10h mov AL, 'T' mov AH, 0eh int 10h mov AL, '-' mov AH, 0eh int 10h mov AL, 'N' mov AH, 0eh int 10h mov AL, 'O' mov AH, 0eh int 10h mov AL, ' ' mov AH, 0eh int 10h mov AL, ':' mov AH, 0eh int 10h mov AL, ' ' mov AH, 0eh int 10h ret MySTNO1 endp MySTNO2 proc near mov AL, '8' mov AH, 0eh int 10h mov AL, '7' mov AH, 0eh int 10h mov AL, '4' mov AH, 0eh int 10h mov AL, '1' mov AH, 0eh int 10h mov AL, '2' mov AH, 0eh int 10h mov AL, '1' mov AH, 0eh int 10h mov AL, '6' mov AH, 0eh int 10h mov AL, '3' mov AH, 0eh int 10h ret MySTNO2 endp Sadjad proc near mov AL, 'S' mov AH, 0eh int 10h mov AL, 'A' mov AH, 0eh int 10h mov AL, 'D' mov AH, 0eh int 10h mov AL, 'J' mov AH, 0eh int 10h mov AL, 'A' mov AH, 0eh int 10h mov AL, 'D' mov AH, 0eh int 10h ret Sadjad endp UNIVERSITY proc near mov AL, 'U' mov AH, 0eh int 10h mov AL, 'N' mov AH, 0eh int 10h mov AL, 'I' mov AH, 0eh int 10h mov AL, 'V' mov AH, 0eh int 10h mov AL, 'E' mov AH, 0eh int 10h mov AL, 'R' mov AH, 0eh int 10h mov AL, 'S' mov AH, 0eh int 10h mov AL, 'I' mov AH, 0eh int 10h mov AL, 'T' mov AH, 0eh int 10h mov AL, 'Y' mov AH, 0eh int 10h ret UNIVERSITY endp autumn proc near mov AL, 'A' mov AH, 0eh int 10h mov AL, 'U' mov AH, 0eh int 10h mov AL, 'T' mov AH, 0eh int 10h mov AL, 'U' mov AH, 0eh int 10h mov AL, 'M' mov AH, 0eh int 10h mov AL, 'N' mov AH, 0eh int 10h ret autumn endp YEAR proc near mov AL, '1' mov AH, 0eh int 10h mov AL, '3' mov AH, 0eh int 10h mov AL, '8' mov AH, 0eh int 10h mov AL, '8' mov AH, 0eh int 10h ret YEAR endp Cheshmak proc near mov ax,const div const2 mov key,ah inc const cmp const,1000 jb decconst mov const,0 decconst: ret Cheshmak endp clearTime proc near mov cx,10 for1 : sub xclear,cx mov DH, 0 mov DL, xclear mov AH, 02 mov BH, 0 int 10h mov AL, ' ' mov AH, 0eh int 10h loop for1 ret clearTime endp codesg ends end main