272 lines
17 KiB
Text
272 lines
17 KiB
Text
0 (ilo:x86) (port_io,_physical_memory)
|
|
1
|
|
2 :pio:inb (n-c) #0 #100 io ;
|
|
3 :pio:inw (n-n) #1 #100 io ;
|
|
4 :pio:outb (vn-) #2 #100 io ;
|
|
5 :pio:outw (vn-) #3 #100 io ;
|
|
6
|
|
7 :mem:fetch-byte (a-c) #0 #101 io ;
|
|
8 :mem:store-byte (ca-) #1 #101 io ;
|
|
9 :mem:fetch (a-n) #2 #101 io ;
|
|
10 :mem:store (na-) #3 #101 io ;
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0 (ilo:x86) (cmos,_rtc)
|
|
1
|
|
2 :CMOS:ADDRESS #112 ;
|
|
3 :CMOS:DATA #113 ;
|
|
4
|
|
5 :rtc:query CMOS:ADDRESS pio:outb CMOS:DATA pio:inb ;
|
|
6 :rtc:second #0 rtc:query ;
|
|
7 :rtc:minute #2 rtc:query ;
|
|
8 :rtc:hour #4 rtc:query ;
|
|
9 :rtc:day #7 rtc:query ;
|
|
10 :rtc:month #8 rtc:query ;
|
|
11 :rtc:year #9 rtc:query ;
|
|
12
|
|
13 :.time rtc:hour n:put $: c:put rtc:minute n:put nl ;
|
|
14
|
|
15
|
|
save next new
|
|
0 (ilo:x86) (serial)
|
|
1
|
|
2 :serial:COM1 #1016 ; :serial:COM2 #760 ;
|
|
3 :serial:COM3 #1000 ; :serial:COM4 #744 ;
|
|
4 serial:COM1 'serial:Port var-n
|
|
5
|
|
6 :serial:recv? @serial:Port #5 n:add pio:inb #1 and n:-zero? ;
|
|
7 :serial:empty? @serial:Port #5 n:add pio:inb #32 and n:-zero? ;
|
|
8 :serial:read (-c)
|
|
9 [ serial:recv? [ @serial:Port pio:inb #-1 ] [ #0 ] choose
|
|
10 until ;
|
|
11 :serial:write (c-)
|
|
12 [ serial:empty? [ @serial:Port pio:outb #-1 ] [ #0 ] choose ]
|
|
13 until ;
|
|
14 :serial:send (s-) [ serial:write ] s:for-each ;
|
|
15
|
|
save next new
|
|
0 (ilo:x86) (serial)
|
|
1
|
|
2 :serial:init
|
|
3 #0 @serial:Port #1 n:add pio:outb
|
|
4 #128 @serial:Port #3 n:add pio:outb
|
|
5 #3 @serial:Port pio:outb
|
|
6 #0 @serial:Port #1 n:add pio:outb
|
|
7 #3 @serial:Port #3 n:add pio:outb
|
|
8 #199 @serial:Port #2 n:add pio:outb
|
|
9 #11 @serial:Port #4 n:add pio:outb ;
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|
|
0 (LOAD:x86)
|
|
1
|
|
2 '(ilo:x86) needs
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
save next new
|