home *** CD-ROM | disk | FTP | other *** search
- ; UTY.ASM - Converted from UTY.C using TCC.EXE
- ;
- ; From the book "Systems Programming in Turbo C", by Michael J. Young
- ;
-
- ifndef ??version
- ?debug macro
- endm
- endif
- ?debug S "uty.c"
- _TEXT segment byte public 'CODE'
- DGROUP group _DATA,_BSS
- assume cs:_TEXT,ds:DGROUP,ss:DGROUP
- _TEXT ends
- _DATA segment word public 'DATA'
- d@ label byte
- d@w label word
- _DATA ends
- _BSS segment word public 'BSS'
- b@ label byte
- b@w label word
- ?debug C E9BBB16912057574792E63
- ?debug C E9C884461212423A5C494E434C5544455C737464696F2E68
- ?debug C E900101D1113423A5C494E434C5544455C7374646172672E68
- ?debug C E900101D1110423A5C494E434C5544455C646F732E68
- ?debug C E99A7D521210423A5C494E434C5544455C7363722E68
- _BSS ends
- _DATA segment word public 'DATA'
- dw 108
- dw 64
- dw 112
- dw 64
- _DATA ends
- _TEXT segment byte public 'CODE'
- ?debug C E800057574792E63BBB16912
- ?debug L 10
- _UtyClockCount proc near
- ?debug B
- push bp
- mov bp,sp
- push si
- push di
- ?debug C E318000200150604
- ?debug C E605436F756E74180A0400
- ?debug B
- ?debug L 17
- call near ptr _UtyEnabled
- mov si,ax
- ?debug L 19
- cli
- ?debug L 20
- les bx,dword ptr DGROUP:d@
- mov dx,word ptr es:[bx+2]
- mov ax,word ptr es:[bx]
- mov bx,word ptr [bp+4]
- mov word ptr [bx+2],dx
- mov word ptr [bx],ax
- ?debug L 21
- les bx,dword ptr DGROUP:d@+4
- mov al,byte ptr es:[bx]
- mov ah,0
- mov di,ax
- ?debug L 22
- or si,si
- je @2
- ?debug L 23
- sti
- @2:
- ?debug L 24
- mov ax,di
- jmp short @1
- @1:
- ?debug L 25
- pop di
- pop si
- pop bp
- ret
- ?debug C E319000400160800
- ?debug C E31A000400160600
- ?debug C E608526F6C6C6F76657204040707456E61626C65+
- ?debug C 6404040606526F6C50747219000002040006436E+
- ?debug C 745074721A000002000005436F756E74180A0400
- ?debug E
- ?debug E
- _UtyClockCount endp
- ?debug L 28
- _UtyEnabled proc near
- ?debug B
- ?debug B
- ?debug L 30
- pushf
- ?debug L 31
- pop ax
- ?debug L 32
- and ax, 0200h
- jmp short @3
- @3:
- ?debug L 34
- ret
- ?debug E
- ?debug E
- _UtyEnabled endp
- ?debug L 37
- _UtyTime proc near
- ?debug B
- push bp
- mov bp,sp
- ?debug C E31B000200150404
- ?debug C E60A48756E647265647468731B0A0A0007536563+
- ?debug C 6F6E64731B0A0800074D696E757465731B0A0600+
- ?debug C 05486F7572731B0A0400
- ?debug B
- ?debug L 39
- mov ah,44
- ?debug L 40
- int 33
- ?debug L 41
- mov al,ch
- mov ah,0
- mov bx,word ptr [bp+4]
- mov word ptr [bx],ax
- ?debug L 42
- mov al,cl
- mov ah,0
- mov bx,word ptr [bp+6]
- mov word ptr [bx],ax
- ?debug L 43
- mov al,dh
- mov ah,0
- mov bx,word ptr [bp+8]
- mov word ptr [bx],ax
- ?debug L 44
- mov al,dl
- mov ah,0
- mov bx,word ptr [bp+10]
- mov word ptr [bx],ax
- @4:
- ?debug L 45
- pop bp
- ret
- ?debug C E60A48756E647265647468731B0A0A0007536563+
- ?debug C 6F6E64731B0A0800074D696E757465731B0A0600+
- ?debug C 05486F7572731B0A0400
- ?debug E
- ?debug E
- _UtyTime endp
- ?debug L 47
- _UtyTimeString proc near
- ?debug B
- push bp
- mov bp,sp
- sub sp,8
- ?debug C E31C000200150204
- ?debug C E6065461726765741C0A0400
- ?debug B
- ?debug L 51
- lea ax,word ptr [bp-2]
- push ax
- lea ax,word ptr [bp-4]
- push ax
- lea ax,word ptr [bp-6]
- push ax
- lea ax,word ptr [bp-8]
- push ax
- call near ptr _UtyTime
- add sp,8
- ?debug L 52
- push word ptr [bp-2]
- push word ptr [bp-4]
- push word ptr [bp-6]
- push word ptr [bp-8]
- mov ax,offset DGROUP:s@
- push ax
- push word ptr [bp+4]
- call near ptr _sprintf
- add sp,12
- @5:
- ?debug L 53
- mov sp,bp
- pop bp
- ret
- ?debug C E60A48756E647265647468730402FEFF07536563+
- ?debug C 6F6E64730402FCFF074D696E757465730402FAFF+
- ?debug C 05486F7572730402F8FF065461726765741C0A04+
- ?debug C 00
- ?debug E
- ?debug E
- _UtyTimeString endp
- ?debug L 55
- _UtyBlank proc near
- ?debug B
- push bp
- mov bp,sp
- push si
- ?debug C E6064C656E677468040A060006537472696E671C+
- ?debug C 0A0400
- ?debug B
- ?debug L 59
- cmp word ptr [bp+6],1
- jge @7
- jmp short @6
- @7:
- ?debug L 61
- xor si,si
- jmp short @11
- @10:
- ?debug L 62
- mov bx,word ptr [bp+4]
- mov byte ptr [bx+si],32
- @9:
- inc si
- @11:
- mov ax,word ptr [bp+6]
- dec ax
- cmp ax,si
- jg @10
- @8:
- ?debug L 63
- mov bx,word ptr [bp+4]
- mov byte ptr [bx+si],0
- @6:
- ?debug L 64
- pop si
- pop bp
- ret
- ?debug C E60169040406064C656E677468040A0600065374+
- ?debug C 72696E671C0A0400
- ?debug E
- ?debug E
- _UtyBlank endp
- _TEXT ends
- _BSS segment word public 'BSS'
- db 256 dup (?)
- _BSS ends
- _TEXT segment byte public 'CODE'
- ?debug L 66
- _UtyRepeat proc near
- ?debug B
- push bp
- mov bp,sp
- push si
- ?debug C E6024368020A0600064E756D626572040A0400
- ?debug B
- ?debug L 69
- xor si,si
- jmp short @13
- @15:
- ?debug L 72
- mov al,byte ptr [bp+6]
- mov byte ptr DGROUP:b@[si],al
- inc si
- @13:
- ?debug L 71
- mov ax,word ptr [bp+4]
- dec word ptr [bp+4]
- or ax,ax
- je @16
- cmp si,255
- jl @15
- @16:
- @14:
- ?debug L 73
- mov byte ptr DGROUP:b@[si],0
- ?debug L 74
- mov ax,offset DGROUP:b@
- jmp short @12
- @12:
- ?debug L 75
- pop si
- pop bp
- ret
- ?debug C E31D0000011A02
- ?debug C E60169040406034275661D000003000002436802+
- ?debug C 0A0600064E756D626572040A0400
- ?debug E
- ?debug E
- _UtyRepeat endp
- _TEXT ends
- ?debug C E9
- _DATA segment word public 'DATA'
- s@ label byte
- db 37
- db 48
- db 50
- db 100
- db 58
- db 37
- db 48
- db 50
- db 100
- db 58
- db 37
- db 48
- db 50
- db 100
- db 46
- db 37
- db 48
- db 50
- db 100
- db 0
- _DATA ends
- _TEXT segment byte public 'CODE'
- extrn _sprintf:near
- _TEXT ends
- public _UtyClockCount
- public _UtyTimeString
- public _UtyRepeat
- public _UtyEnabled
- public _UtyBlank
- public _UtyTime
- ?debug C EA0109
- ?debug C E31E00000023040000
- ?debug C EC0E5F557479436C6F636B436F756E741E18
- ?debug C E31F00000023010000
- ?debug C EC0E5F55747954696D65537472696E671F18
- ?debug C E320000000231C0000
- ?debug C EC0A5F5574795265706561742018
- ?debug C E32100000023040000
- ?debug C EC0B5F557479456E61626C65642100
- ?debug C E32200000023010000
- ?debug C EC095F557479426C616E6B2218
- ?debug C E32300000023040001
- ?debug C EB085F737072696E746623
- ?debug C E32400000023010000
- ?debug C EC085F55747954696D652418
- ?debug C E60673697A655F740A060666706F735F740606
- end