|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.