Builds on Merlin-16. Disk image updated.

This commit is contained in:
Bobbi Webber-Manners 2021-09-23 18:16:21 -04:00
parent a9e80db0f5
commit 6278c6d9fc
22 changed files with 141 additions and 101 deletions

Binary file not shown.

View File

@ -216,6 +216,8 @@ MAINZP MAC

View File

@ -480,3 +480,5 @@ OSBM2 ASC ').'

View File

@ -455,3 +455,5 @@ BYTE76 LDX #$00 ; Update LEDs and return X=SHIFT

View File

@ -98,3 +98,5 @@ RELCOORD CLC

View File

@ -985,3 +985,5 @@ ERROR2E DW $C800

View File

@ -177,8 +177,10 @@ BYTE00XX BEQ BYTE00A ; OSBYTE 0,0 - generate error
RTS ; %000x1xxx host type, 'A'pple
BYTE00A BRK
DB $F7
HELLO ASC 'Applecorn MOS 2021-09-22'
HELLO ASC 'Applecorn MOS 2021-09-23'
DB $00 ; Unify MOS messages

View File

@ -538,3 +538,5 @@ AUXBLK ASC '**ENDOFCODE**'

View File

@ -77,3 +77,5 @@ OSFILECB EQU $2EE ; OSFILE control block

View File

@ -505,3 +505,5 @@ ECHOLP1 JSR GSREAD

View File

@ -803,3 +803,5 @@ BYTEA02 LDY VDUVARS+1,X

View File

@ -1,5 +1,5 @@
#!/bin/sh
for file in APPLECORN AUXMEM.BYTWRD AUXMEM.CHARIO AUXMEM.GFX AUXMEM.HOSTFS AUXMEM.INIT AUXMEM.MISC AUXMEM.MOSEQU AUXMEM.OSCLI AUXMEM.VDU MAINMEM.FSEQU MAINMEM.INIT MAINMEM.LDR MAINMEM.LISTS MAINMEM.MENU MAINMEM.MISC MAINMEM.PATH MAINMEM.SVC MAINMEM.WILD; do
for file in APPLECORN AUXMEM.BYTWRD AUXMEM.CHARIO AUXMEM.GFX AUXMEM.HOSTFS AUXMEM.INIT AUXMEM.MISC AUXMEM.MOSEQU AUXMEM.OSCLI AUXMEM.VDU MAINMEM.FSEQU MAINMEM.GFX MAINMEM.INIT MAINMEM.LDR MAINMEM.LISTS MAINMEM.MENU MAINMEM.MISC MAINMEM.PATH MAINMEM.SVC MAINMEM.WILD; do
cadius extractfile applecorn.po /APPLECORN/${file}.S .
rm _FileInformation.txt
cadius clearhighbit ${file}.S\#040000

View File

@ -67,6 +67,8 @@ GEOFCMD EQU $D1

View File

@ -4,117 +4,119 @@
* Main memory HGR graphics routines.
* Call FDraw Clear routine
CLRHGR >>> ENTMAIN
LDA BGCOLOR
STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
JSR FDRAWADDR+22 ; FDRAW: Clear
LDA FGCOLOR
STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
>>> XF2AUX,VDU16RET
CLRHGR >>> ENTMAIN
LDA BGCOLOR
STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
JSR FDRAWADDR+22 ; FDRAW: Clear
LDA FGCOLOR
STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
>>> XF2AUX,VDU16RET
* Call FDraw SetLineMode routine
SETLINE >>> ENTMAIN
JSR FDRAWADDR+43 ; FDRAW: SetLineMode
>>> XF2AUX,VDU18RET1
SETLINE >>> ENTMAIN
JSR FDRAWADDR+43 ; FDRAW: SetLineMode
>>> XF2AUX,VDU18RET1
* Call FDraw DrawLine routine
DRAWLINE >>> ENTMAIN
LDA PLOTMODE
AND #$03
CMP #$01 ; Draw in foreground colour
BNE :S1
LDA FGCOLOR
BRA :SETCOLOR
:S1 CMP #$02 ; Draw in inverse colour
BNE :S2
SEC
LDA #$07
SBC FGCOLOR
BRA :SETCOLOR
:S2 LDA BGCOLOR ; Draw in background colour
:SETCOLOR STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
JSR FDRAWADDR+28 ; FDRAW: DrawLine
>>> XF2AUX,VDU25RET
DRAWLINE >>> ENTMAIN
LDA PLOTMODE
AND #$03
CMP #$01 ; Draw in foreground colour
BNE :S1
LDA FGCOLOR
BRA :SETCOLOR
:S1 CMP #$02 ; Draw in inverse colour
BNE :S2
SEC
LDA #$07
SBC FGCOLOR
BRA :SETCOLOR
:S2 LDA BGCOLOR ; Draw in background colour
:SETCOLOR STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
JSR FDRAWADDR+28 ; FDRAW: DrawLine
>>> XF2AUX,VDU25RET
* Call FDraw DrawPoint routine
DRAWPNT >>> ENTMAIN
LDA PLOTMODE
AND #$03
CMP #$01 ; Draw in foreground colour
BNE :S1
LDA FGCOLOR
BRA :SETCOLOR
:S1 CMP #$02 ; Draw in inverse colour
BNE :S2
SEC
LDA #$07
SBC FGCOLOR
BRA :SETCOLOR
:S2 LDA BGCOLOR ; Draw in background colour
:SETCOLOR STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
JSR FDRAWADDR+25 ; FDRAW: DrawPoint
>>> XF2AUX,VDU25RET
DRAWPNT >>> ENTMAIN
LDA PLOTMODE
AND #$03
CMP #$01 ; Draw in foreground colour
BNE :S1
LDA FGCOLOR
BRA :SETCOLOR
:S1 CMP #$02 ; Draw in inverse colour
BNE :S2
SEC
LDA #$07
SBC FGCOLOR
BRA :SETCOLOR
:S2 LDA BGCOLOR ; Draw in background colour
:SETCOLOR STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
JSR FDRAWADDR+25 ; FDRAW: DrawPoint
>>> XF2AUX,VDU25RET
* Reset colours and linetype
GFXINIT JSR FDRAWADDR+0 ; Initialize FDRAW library
LDA #$20
STA FDRAWADDR+5
JSR FDRAWADDR+19 ; FDRAW: Set page $2000
STZ LINETYPE
STZ FDRAWADDR+5
JSR FDRAWADDR+43 ; FDRAW: SetLineMode
LDA #$07
STA FGCOLOR
STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
STZ BGCOLOR
JSR FDRAWADDR+22 ; FDRAW: clear HGR screen
RTS
GFXINIT JSR FDRAWADDR+0 ; Initialize FDRAW library
LDA #$20
STA FDRAWADDR+5
JSR FDRAWADDR+19 ; FDRAW: Set page $2000
STZ LINETYPE
STZ FDRAWADDR+5
JSR FDRAWADDR+43 ; FDRAW: SetLineMode
LDA #$07
STA FGCOLOR
STA FDRAWADDR+5
JSR FDRAWADDR+16 ; FDRAW: SetColor
STZ BGCOLOR
JSR FDRAWADDR+22 ; FDRAW: clear HGR screen
RTS
* Plot bitmap character on the HGR screen
* On entry: char is in A
DRAWCHAR >>> ENTMAIN
AND #$7F
STA A1L ; A*8 -> A1L,A1H
STZ A1H
ASL A1L
ROL A1H
ASL A1L
ROL A1H
ASL A1L
ROL A1H
CLC ; FONTADDR+A*8 -> A1L,A1H
LDA A1L
ADC #<FONTADDR
STA A1L
LDA A1H
ADC #>FONTADDR
STA A1H
LDA HGRADDR+0 ; HGRADDR -> A4L,A4H
STA A4L
LDA HGRADDR+1
STA A4H
LDY #$00
:L1 LDA (A1L),Y ; Load line of pixels from font
STA (A4L) ; Store them on screen
INC A4H ; Skip 1024 bytes to next row
INC A4H
INC A4H
INC A4H
INY
CPY #$08 ; All eight rows done?
BNE :L1
>>> XF2AUX,PUTCHRET
DRAWCHAR >>> ENTMAIN
AND #$7F
STA A1L ; A*8 -> A1L,A1H
STZ A1H
ASL A1L
ROL A1H
ASL A1L
ROL A1H
ASL A1L
ROL A1H
CLC ; FONTADDR+A*8 -> A1L,A1H
LDA A1L
ADC #<FONTADDR
STA A1L
LDA A1H
ADC #>FONTADDR
STA A1H
LDA HGRADDR+0 ; HGRADDR -> A4L,A4H
STA A4L
LDA HGRADDR+1
STA A4H
LDY #$00
:L1 LDA (A1L),Y ; Load line of pixels from font
STA (A4L) ; Store them on screen
INC A4H ; Skip 1024 bytes to next row
INC A4H
INC A4H
INC A4H
INY
CPY #$08 ; All eight rows done?
BNE :L1
>>> XF2AUX,PUTCHRET
FGCOLOR DB $00 ; Foreground colour
BGCOLOR DB $00 ; Background colour
LINETYPE DB $00 ; 0 normal, 1 XOR
PLOTMODE DB $00 ; K value for PLOT K,X,Y
HGRADDR DW $0000 ; Address 1st line of HGR char
FGCOLOR DB $00 ; Foreground colour
BGCOLOR DB $00 ; Background colour
LINETYPE DB $00 ; 0 normal, 1 XOR
PLOTMODE DB $00 ; K value for PLOT K,X,Y
HGRADDR DW $0000 ; Address 1st line of HGR char

View File

@ -113,6 +113,8 @@ RESET TSX

View File

@ -160,3 +160,5 @@ LOADCODE PHP ; Save carry flag

View File

@ -131,6 +131,8 @@ QUITPL HEX 04 ; Number of parameters

View File

@ -148,6 +148,8 @@ ROM8 STR "USERROM2.ROM"

View File

@ -217,6 +217,8 @@ FILEREFS DB $00,$00,$00,$00

View File

@ -312,6 +312,8 @@ PREFIX DS 65 ; Buffer for ProDOS prefix

View File

@ -1057,3 +1057,5 @@ MAINRDMEM STA A1L
LDA (A1L)
MAINRDEXIT >>> XF2AUX,NULLRTS ; Back to an RTS

View File

@ -389,6 +389,8 @@ MATCHBUF DS 65 ; For storing match results (Pascal str)