+++ /dev/null
-\r
-#include "core.h"\r
-\r
-#define COM1_RX 0x03f8\r
-#define COM1_TX 0x03f8\r
-#define COM1_BAUD_LSB 0x03f8\r
-#define COM1_BAUD_MSB 0x03f9\r
-#define COM1_INTR_ENBL 0x03f9\r
-#define COM1_INTR_ID 0x03fa\r
-#define COM1_CTRL_FIFO 0x03fa\r
-#define COM1_CTRL_LINE 0x03fb\r
-#define COM1_CTRL_MODEM 0x03fc\r
-#define COM1_STA_LINE 0x03fd\r
-#define COM1_STA_MODEM 0x03fe\r
-\r
-void init_serial(void)\r
-{\r
- io_out8(COM1_CTRL_LINE, 0x80); //\83{\81[\83\8c\81[\83g\90Ý\92è\8aJ\8en\r
- io_out8(COM1_BAUD_LSB, 0x06); //0x06 = 19.2bps\r
- io_out8(COM1_CTRL_LINE, 0x03); //\83{\81[\83\8c\81[\83g\90Ý\92è\8fI\97¹\81A\91\97\8eó\90M\83f\81[\83^8bit\r
- io_out8(COM1_CTRL_MODEM, 0x0b); //\8a\84\82è\8d\9e\82Ý\97L\8cø\81ARTS\81ADTR\83s\83\93\82ð\83A\83N\83e\83B\83u\89»\r
-// io_out8(COM1_INTR_ENBL, 0x04); //\83\89\83C\83\93\83X\83e\81[\83^\83X\8a\84\82è\8d\9e\82Ý\r
- io_out8(COM1_INTR_ENBL, 0x00);\r
-\r
- return;\r
-}\r
-\r
-void send_serial(uchar *s)\r
-{\r
- for (; *s != 0x00; s++) {\r
- io_out8(COM1_TX, *s);\r
- }\r
-\r
- return;\r
-}\r
-\r
-uint readcmos(uchar addr)\r
-{\r
- io_out8(0x70, addr);\r
- return io_in8(0x71);\r
-}\r
-\r
-void readrtc(uchar *t)\r
-{\r
- char err;\r
- static uchar adr[7] = { 0x00, 0x02, 0x04, 0x07, 0x08, 0x09, 0x32 };\r
- static uchar max[7] = { 0x60, 0x59, 0x23, 0x31, 0x12, 0x99, 0x99 };\r
- int i;\r
-\r
- for (;;) {\r
- err = 0;\r
- for (i = 0; i < 7; i++) {\r
- t[i] = readcmos(adr[i]);\r
- }\r
- for (i = 0; i < 7; i++) {\r
- if (t[i] != readcmos(adr[i]) || (t[i] & 0x0f) > 9 || t[i] > max[i]) {\r
- err = 1;\r
- }\r
- }\r
- if (err == 0) {\r
- return;\r
- }\r
- }\r
-}\r
-\r
-void fdc_motor_on(uchar d)\r
-{\r
- if(d == 0){\r
- io_out8(0x3f2,io_in8(0x3f2) | 0x10);\r
- } else if(d == 1){\r
- io_out8(0x3f2,io_in8(0x3f2) | 0x20);\r
- } else if(d == 2){\r
- io_out8(0x3f2,io_in8(0x3f2) | 0x40);\r
- } else if(d == 3){\r
- io_out8(0x3f2,io_in8(0x3f2) | 0x80);\r
- } \r
- return;\r
-}\r
-\r
-void fdc_motor_off(uchar d)\r
-{\r
- if(d == 0){\r
- io_out8(0x3f2,io_in8(0x3f2) & 0xef);\r
- } else if(d == 1){\r
- io_out8(0x3f2,io_in8(0x3f2) & 0xdf);\r
- } else if(d == 2){\r
- io_out8(0x3f2,io_in8(0x3f2) & 0xbf);\r
- } else if(d == 3){\r
- io_out8(0x3f2,io_in8(0x3f2) & 0x7f);\r
- } else if(d == 4){\r
- io_out8(0x3f2,io_in8(0x3f2) & 0xef);\r
- io_out8(0x3f2,io_in8(0x3f2) & 0xdf);\r
- io_out8(0x3f2,io_in8(0x3f2) & 0xbf);\r
- io_out8(0x3f2,io_in8(0x3f2) & 0x7f);\r
- }\r
- return;\r
-}\r
-\r
-void reset_cpu(void)\r
-{\r
- wait_KBC_sendready();\r
- io_out8(PORT_KEYCMD, 0xfe);\r
- for (;;) { io_hlt(); }\r
-}\r
-\r
-\r
-\r