\\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
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
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
VARIABLE MSR@\r
\r
HEX\r
+\r
: CLEAR-BUFFER\r
DISABLE\r
0 #Rx !\r
CREATE IrptTable\r
' ModemServ , ' TxServ , ' RxServ , ' LineServ ,\r
\r
+HEX\r
+\r
CODE IrptServ\r
STI, \ Enable irpt\r
AX PUSH,\r
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
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
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