Annotation of qemu/roms/SLOF/board-js2x/slof/sio.fs, revision 1.1.1.1

1.1       root        1: \ *****************************************************************************
                      2: \ * Copyright (c) 2004, 2008 IBM Corporation
                      3: \ * All rights reserved.
                      4: \ * This program and the accompanying materials
                      5: \ * are made available under the terms of the BSD License
                      6: \ * which accompanies this distribution, and is available at
                      7: \ * http://www.opensource.org/licenses/bsd-license.php
                      8: \ *
                      9: \ * Contributors:
                     10: \ *     IBM Corporation - initial implementation
                     11: \ ****************************************************************************/
                     12: 
                     13: 
                     14: \ National Semiconductor SIO.
                     15: \ See http://www.national.com/pf/PC/PC87417.html for the datasheet.
                     16: 
                     17: \ We use both serial ports, and the RTC.
                     18: 
                     19: \ See 3.7.5.
                     20: new-device   3f8 1 set-unit
                     21: 
                     22: s" serial" 2dup device-name device-type
                     23: 
                     24: \ Enable this UART.
                     25: 3 7 siocfg!  1 30 siocfg!
                     26: 
                     27: \ 8 bytes of ISA I/O space
                     28: my-unit encode-int rot encode-int+ 8 encode-int+ s" reg" property
                     29: d# 19200 encode-int s" current-speed" property
                     30: 44 encode-int 0 encode-int+ s" interrupts" property
                     31: 
                     32: : open  true ;
                     33: : close ;
                     34: : write ( adr len -- actual )  tuck type ;
                     35: : read  ( adr len -- actual )  0= IF drop 0 EXIT THEN
                     36:                                serial-key? 0= IF 0 swap c! -2 EXIT THEN
                     37:                                serial-key swap c! 1 ;
                     38: 
                     39: finish-device
                     40: 
                     41: 
                     42: new-device   2f8 1 set-unit
                     43: 
                     44: s" serial" 2dup device-name device-type
                     45: 
                     46: \ Enable this UART.
                     47: 2 7 siocfg!  1 30 siocfg!
                     48: 
                     49: \ 8 bytes of ISA I/O space
                     50: my-unit encode-int rot encode-int+ 8 encode-int+ s" reg" property
                     51: d# 19200 encode-int s" current-speed" property
                     52: 43 encode-int 0 encode-int+ s" interrupts" property
                     53: 
                     54: : open  true ;
                     55: : close ;
                     56: : write ( adr len -- actual )  tuck type ;
                     57: : read  ( adr len -- actual )  0= IF drop 0 EXIT THEN
                     58:                                serial-key? 0= IF 0 swap c! -2 EXIT THEN
                     59:                                serial-key swap c! 1 ;
                     60: 
                     61: finish-device
                     62: 
                     63: 
                     64: 
                     65: \ See the "Device Support Extensions" OF Recommended Practice document.
                     66: new-device   1070 1 set-unit
                     67: 
                     68: s" rtc" 2dup device-name device-type
                     69: \ Following is for Linux, to recognize this RTC:
                     70: s" pnpPNP,b00" compatible
                     71: 
                     72: : rtc!  my-space io-c!  my-space 1+ io-c! ;
                     73: : rtc@  my-space io-c!  my-space 1+ io-c@ ;
                     74: 
                     75: \ 10 bytes of ISA I/O space, at 1070.
                     76: my-unit encode-int rot encode-int+ 10 encode-int+ s" reg" property
                     77: 
                     78: : open   true ;
                     79: : close ;
                     80: 
                     81: \ XXX: dummy methods.
                     82: : get-time ( -- sec min hr day mth yr )  38 22 c 1 1 d# 1973 ;
                     83: : set-time ( sec min hr day mth yr -- )  3drop 3drop ;
                     84: 
                     85: finish-device

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.