Patches from https://github.com/nealcrook/hForth.git up to commit cdccc69
[hf86v099.git] / sio.f
diff --git a/sio.f b/sio.f
index 931e71b..1171497 100644 (file)
--- a/sio.f
+++ b/sio.f
 \\r
 \ 1996. 2. 9.\r
 \ Wonyong Koh\r
+\\r
+\ 1997. 6. 21\r
+\       Align 'IrptServ' according to new EXE structure.\r
 \r
 HEX\r
 \r
   3 CONSTANT IRQ       \ normally COM1 and COM3 use IRQ4,\r
                        \          COM2 and COM4 use IRQ3\r
-2F8 CONSTANT COMBASE   \ base address, 3F8 for COM1, 2F8 for COM2\r
+02F8 CONSTANT COMBASE   \ base address, 3F8 for COM1, 2F8 for COM2\r
                        \               3E8 for COM3, 2E8 for COM4\r
 \r
 : BINARY   2 BASE ! ;\r
@@ -119,6 +122,7 @@ BINARY
     MCR PC@  11110111 AND  MCR PC! ;\r
 \r
 DECIMAL\r
+\r
 1 10 LSHIFT CONSTANT RxBufSize \ receive buffer size = 2 ^ 10 (1024)\r
                                \ The buffer size should be power of 2.\r
 VARIABLE RxBuffer  RxBufSize ALLOT\r
@@ -127,7 +131,7 @@ VARIABLE RxHead
 VARIABLE RxTail\r
 VARIABLE RxOverflow\r
 \r
-1 8 LSHIFT CONSTANT TxBufSize  \ receive buffer size = 2 ^ 8 (256)\r
+1 8 LSHIFT CONSTANT TxBufSize   \ transmit buffer size = 2 ^ 8 (256)\r
                                \ The buffer size should be power of 2.\r
 CREATE TxBuffer  TxBufSize CHARS ALLOT\r
 VARIABLE #Tx\r
@@ -138,6 +142,7 @@ VARIABLE LSR@
 VARIABLE MSR@\r
 \r
 HEX\r
+\r
 : CLEAR-BUFFER\r
     DISABLE\r
     0 #Rx    !\r
@@ -203,6 +208,8 @@ END-CODE
 CREATE IrptTable\r
 ' ModemServ , ' TxServ , ' RxServ , ' LineServ ,\r
 \r
+HEX\r
+\r
 CODE IrptServ\r
     STI,                       \ Enable irpt\r
     AX PUSH,\r
@@ -214,14 +221,14 @@ CODE IrptServ
     CHAR " PARSE model" ENVIRONMENT? DROP\r
     CHAR " PARSE RAM Model" COMPARE 0= OR\r
     [IF]\r
-       DS AX MOV,\r
+       CS AX MOV,\r
        AX DS MOV,\r
     [THEN]\r
     CHAR " PARSE model" ENVIRONMENT? DROP\r
     CHAR " PARSE EXE Model" COMPARE 0=\r
     [IF]\r
-      CS:\r
-      0 ) AX MOV,              \ CS:0 contains data segment address\r
+      CS AX MOV,\r
+      1000 # AX ADD,            \ data segment follows after 64KB code segment\r
       AX DS MOV,\r
     [THEN]\r
     IIR # DX MOV,              \ identify irpt\r
@@ -298,8 +305,9 @@ VARIABLE TIMEOUT
     THEN ;\r
 \r
 DECIMAL\r
-       9600 BPS  NO PARITY  8 BITS  0 STOPBIT\r
+\r
 : TERM\r
+    19200 BPS  NO PARITY  8 BITS  0 STOPBIT\r
     CLEAR-BUFFER\r
     ATTACH-IRPT\r
     ENABLE-IRQ\r
@@ -310,3 +318,9 @@ DECIMAL
                       SER-OUT\r
               THEN\r
     AGAIN ;\r
+\r
+CHAR " PARSE FILE" ENVIRONMENT?\r
+[IF]\r
+  0= [IF] << CON [THEN]\r
+[ELSE] << CON\r
+[THEN]\r