1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
;****************************************************************************
;*======= Copyright (C) 1985,86 Martin Schoenbeck, Spenge ==================*
;* *
;* Lesen der Echtzeituhr des IBM PC-AT *
;* Schreiben dummy routine *
;* Aufruf: blockin/blockout mit code -4 ueber kanal 32 *
;* Puffer: ROW 7 INT VAR *
;* *
;****************************************************************************
clockread:
call hardware
cmp al,IBMat ;haben wir den IBM PC-AT
jnz no_clock
mov ah,4 ;read date
int 1ah
jc no_clock
mov al,ch ;jahrhundert
call putbcd ;ueber bx wegschreiben
mov al,cl ;jahr
call putbcd
mov al,dh ;monat
call putbcd
mov al,dl ;tag
call putbcd
mov ah,2 ;read time
int 1ah
jc no_clock
mov al,ch ;stunden
call putbcd
mov al,cl ;minuten
call putbcd
mov al,dh ;sekunden
call putbcd
mov cx,0 ;keine fehler
ret
no_clock:
mov cx,-1 ;geht nicht
ret
clockwrite:
mov cx,-1
ret
putbcd:
mov ah,al
and ah,0fh ;in al niedrige nibble behalten
ib shr al,4 ;rueberschieben
or ax,3030h ;ziffern draus machen
mov word ptr es:[bx],ax ;eintragen
inc bx
inc bx ;zum naechsten
ret
|