@@ -32,14 +32,16 @@ LA00E LDS #LINBUF+LBUFMX+1 SET STACK TO TOP OF LINE INPUT BUFFER
3232 BNE BACDST NO - DO A COLD START
3333 JMP ,X YES, G0 THERE
3434RESVEC LEAY <LA00E,PCR POINT Y TO WARM START CHECK CODE
35- LA02A LDX #PIA1 POINT X TO PIA1
35+ *LA02A LDX #PIA1 POINT X TO PIA1
36+ LA02A LDX #PIA0+4 POINT X TO PIA0
3637 CLR -3 ,X CLEAR PIA0 CONTROL REGISTER A
3738 CLR -1 ,X CLEAR PIA0 CONTROL REGISTER B
3839 CLR -4 ,X SET PIA0 SIDE A TO INPUT
3940 LDD #$FF34 *
4041 STA -2 ,X * SET PIA0 SIDE B TO OUTPUT
4142 STB -3 ,X * ENABLE PIA0 PERIPHERAL REGISTERS, DISABLE
4243 STB -1 ,X * MPU INTERRUPTS, SET CA2, CA1 TO OUTPUTS
44+ LDX #PIA1 POINT X TO PIA1
4345 CLR 1 ,X CLEAR CONTROL REGISTER A ON PIA1
4446 CLR 3 ,X CLEAR CONTROL REGISTER B ON PIA1
4547 DECA A REG NOW HAS $FE
@@ -126,7 +128,7 @@ LA0B6 STX 3,U * SET EXBAS COMMAND INTERPRETATION
126128 ldx #rstpgm point x to rom source data
127129 ldu #RSTRAM point u to ram destination
128130 ldb #7 move 7 bytes
129- jsr >LA59A move 28 bytes from rom to ram
131+ jsr >LA59A move 7 bytes from rom to ram
130132
131133* place 64k RAM aware reset program vector
132134* LDX #BAWMST WARM START ADDRESS
@@ -137,7 +139,8 @@ LA0E2 LDA #$55 WARM START FLAG
137139 BRA LA0F3 GO TO BASIC’S MAIN LOOP
138140*BAWMST NOP NOP REQ’D FOR WARM START
139141* This no longer needs a NOP
140- BAWMST CLR DEVNUM SET DEVICE NUMBER TO SCREEN
142+ BAWMST
143+ CLR DEVNUM SET DEVICE NUMBER TO SCREEN
141144 JSR >LAD33 DO PART OF A NEW
142145 ANDCC #$AF ENABLE IRQ,FIRQ
143146 JSR >LA928 CLEAR SCREEN
@@ -200,7 +203,11 @@ LA145 FDB LAA29 POINTS TO SECONDARY FUNCTION JUMP TABLE
200203* FCB '1'
201204* FCC '.'
202205* FCB '3'
206+ ifdef COCO3
207+ LA147 fcc 'SUPER SQUANCHY BASIC'
208+ else
203209LA147 fcc 'SQUANCHY BASIC'
210+ endif
204211LA156 FCB CR
205212*LA157 FCC '(C) 1982 TANDY'
206213LA165 FCB $00
@@ -4563,5 +4570,10 @@ LBFE1 FCB $83,$49,$0F,$DA,$A2 * 2*PI
45634570*LBFFA FDB SWIVEC SWI
45644571*LBFFC FDB NMIVEC NMI
45654572*LBFFE FDB RESVEC RESET
4566-
4573+ ifdef COCO3
4574+ * The ROM reset routine in a CoCo 3 requires this byte to be $55
4575+ * if we want to warm start
4576+ fcb $55 ($FEED )
4577+ zmb 18
4578+ endif
45674579BASIC_END equ *
0 commit comments