Merge pull request #168 from bobbimanners/system

Transition to .SYSTEM
This commit is contained in:
Bobbi Webber-Manners 2022-10-08 18:06:50 -04:00 committed by GitHub
commit b3a6a4c521
7 changed files with 81 additions and 8 deletions

Binary file not shown.

View File

@ -10,7 +10,7 @@
XC ; 65c02
ORG $4000 ; Load addr of loader in main memory
ORG $2000 ; Load addr of loader in main memory
; Clear of first HGR frame buffer
* Monitor routines
@ -40,8 +40,21 @@ RSTV EQU $3F2
* IRQ vector
A2IRQV EQU $3FE
* ProDOS Global Page equates
* MLI entry point
MLI EQU $BF00
* Machine ID byte
MACHID EQU $BF98
* Versioning bytes
IBAKVER EQU $BFFC
IVERSION EQU $BFFD
* System BitMap locations
P8BMAP0007 EQU $BF58
P8BMAP080F EQU $BF59
P8BMAP2027 EQU $BF5C
P8BMAP282F EQU $BF5D
P8BMAP3037 EQU $BF5E
P8BMAP383F EQU $BF5F
* IO Buffer for reading file (1024 bytes)
IOBUF0 EQU $0C00 ; For loading/saving, OSFILE, *.
@ -200,6 +213,6 @@ MAINZP MAC
PUT AUXMEM.MISC
* Automatically save the object file:
SAV APPLECORN
SAV APLCORN.SYSTEM

View File

@ -209,7 +209,7 @@ BYTE00 BEQ BYTE00A ; OSBYTE 0,0 - generate error
RTS ; %000x1xxx host type, 'A'pple
BYTE00A BRK
DB $F7
HELLO ASC 'Applecorn MOS 2022-10-08'
HELLO ASC 'Applecorn MOS 2022-10-08-SYS'
DB $00 ; Unify MOS messages
GSSPEED DB $00 ; $80 if GS is fast, $00 for slow

View File

@ -727,7 +727,7 @@ MOSVEND
* Buffer for one 512 byte disk block in aux mem
AUXBLK ASC '**ENDOFCODE**'
DS $200-13
; DS $200-13

View File

@ -4,6 +4,6 @@
#
merlin32 -v applecorn.s
cp APPLECORN APPLECORN#064000
cadius deletefile applecorn.po /APPLECORN/APPLECORN
cadius addfile applecorn.po /APPLECORN APPLECORN#064000
cp APLCORN.SYSTEM APLCORN.SYSTEM#FF2000
cadius deletefile applecorn.po /APPLECORN/APLCORN.SYSTEM
cadius addfile applecorn.po /APPLECORN APLCORN.SYSTEM#FF2000

View File

@ -55,7 +55,7 @@ RTSINST LDA CMDPATH
* Disconnect /RAM ramdrive to avoid aux corruption
* Stolen from Beagle Bros Extra K
DISCONN LDA $BF98
DISCONN LDA MACHID
AND #$30
CMP #$30
BNE :S1

View File

@ -11,6 +11,66 @@
* to aux memory starting at AUXMOS1 and jumps to it.
* (Note that the MOS code will copy itself to $D000.)
SYSTEM LDX #$FF ; Init stack pointer
TXS
LDA #$00
STA IBAKVER ; Minimum compatible P8 version
LDA #$01
STA IVERSION ; Version of .SYSTEM program
SED ; Check for 65C02
LDA #$99
CLC
ADC #$01
CLD
BPL GOODCPU
JMP UNSUPPORTED
GOODCPU LDA MACHID
AND #$F2 ; Clear bits 0,2,3
CMP #$B2 ; Are we on a //e or //c w/ 80col and 128K or a IIgs?
BEQ SUPPORTED ; Supported machine
JMP UNSUPPORTED ; Unsupported machine
SUPPORTED LDA #$DF ; Protect pages $0,$1,and $3-$7
STA P8BMAP0007
LDA #$F0 ; Protect pages $8-$B
STA P8BMAP080F
LDA #$FF ; Protect HGR1
STA P8BMAP2027
STA P8BMAP282F
STA P8BMAP3037
STA P8BMAP383F
JMP START
UNSUPPORTED JSR HOME
LDX #$00
UNSUPLP LDA UNSUPMSG,X
BEQ UNSUPWAIT
JSR COUT1
INX
BNE UNSUPLP
UNSUPWAIT STA $C010
UNSUPKEY LDA $C000
BPL UNSUPKEY
STA $C010
JSR MLI
DB QUITCMD
DW UNSUPQPARM
UNSUPQPARM DB $04,$00,$00,$00,$00,$00,$00
UNSUPMSG ASC "APPLECORN REQUIRES AN APPLE IIGS, APPLE", 8D
ASC "//C, OR ENHANCED APPLE //E WITH AN", 8D
ASC "80-COLUMN CARD AND AT LEAST 128K", 8D, 8D
ASC "PRESS ANY KEY TO QUIT TO PRODOS", 00
PADDING ASC '***THISISPROTOTYPECODE***'
DS $4000-*
; Original APPLECORN.BIN code starts here
START JSR CROUT
JSR SETPRFX
JSR DISCONN