Almost lost technologies

ここは昔の CPU を用いた工作記事を書くために用意しました。

MELPS740 OSI Basic patch

一応パッチは載せておきます。

--- OSI_BASIC_GSEELES.orig/osi_bas.s	2023-05-28 22:37:22.403333500 +0900
+++ OSI_BASIC_GSEELES.740/osi_bas.s	2023-05-28 22:58:27.884511500 +0900
@@ -5768,19 +5768,31 @@
 
 ; STARTUP AND SERIAL I/O ROUTINES ===========================================================
 ; BY G. SEARLE 2013 =========================================================================
-ACIA := $A000
-ACIAControl := ACIA+0
-ACIAStatus := ACIA+0
-ACIAData := ACIA+1
+ACIA := $F4
+ACIAControl := $F4
+ACIAStatus := $F5
+ACIARData := $F7
+ACIATData := $F6
 
 .segment "IOHANDLER"
 .org $FF00
 Reset:
+	.byte	$12	; CLT
+	CLD
+	LDA	#$32	; Stack Page1, Timer stop, MP mode
+	STA	$FF
 	LDX     #STACK_TOP
 	TXS
-
-	LDA 	#$95		; Set ACIA baud rate, word size and Rx interrupt (to control RTS)
+	LDA	#$FF		; port4 all output
+	STA	$0EB
+	LDA	#$FE		; bit 0 LED on
+	STA	$0EA
+;
+	LDA	#$08		; 8-bit UART, Ext CLK
 	STA	ACIAControl
+	NOP
+	LDA	#$5		; RSV/TRN Enabled
+	STA	ACIAStatus
 
 ; Display startup message
 	LDY #0
@@ -5816,15 +5828,16 @@
 	CMP	#2
 	BNE	SerialOutWait
 	PLA
-	STA	ACIAData
+	STA	ACIATData
 	RTS
 
 MONRDKEY:
 	LDA	ACIAStatus
-	AND	#1
-	CMP	#1
+	AND	#8
+	CMP	#8
 	BNE	NoDataIn
-	LDA	ACIAData
+	LDA	ACIARData
+	STA	ACIARData
 	SEC		; Carry set if key available
 	RTS
 NoDataIn: