konilo-extensions/exported/x86.txt

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