Antoine: all files converted to Merlin32

This commit is contained in:
Antoine Vignau 2020-08-03 23:22:16 +02:00 committed by GitHub
parent 8a1e1186ff
commit 2440191053
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 774 additions and 0 deletions

BIN
disks/DOS3.3.5.dsk Normal file

Binary file not shown.

67
source/DOS3.3MOVER.S Normal file
View File

@ -0,0 +1,67 @@
*SYSTEM PROGRAM TO SWITCH INTO DOS 3.3 FROM PRODOS
*
**************************************************
*
* COPYRIGHT
* 1984
* BY
* R. SUTCLIFFE
*
***************************************************
*
A1L EQU $3C ;SOURCE
A1H EQU $3D
A2L EQU $3E ;END OF SOURCE
A2H EQU $3F
A4L EQU $42 ;DESTINATION
A4H EQU $43
DOSCOPY EQU $2100 ;START OF TRANSFERRED CODE
DOSSTRT EQU $9D00 ;DOS3.3 BEGINS HERE
DOSP1 EQU $9D0D
DOSCOLD EQU $9D84
FNBLK EQU $A095 ;BLANKS FILENAME BUFFER
DOSCMD EQU $AA5F ;WHAT TO DO WHEN BOOTED
PFNBUF EQU $AA75 ;FILE NAME BUFFER
FMPLST EQU $B5BC ;FILE MANAGER PARAMETER LIST
FMPCMD EQU $B5BB
SETDSP EQU $B7C2
MOVE EQU $FE2C ;MONITOR MOVE ROUTINE
SETKBD EQU $FE89
SETVID EQU $FE93
*
ORG $2000 ;FOR ALL SYSTEM PROGRAMS
*
MOVER LDY #>DOSSTRT ;SET PARAMS FOR MONITOR MOVE
STY A4H ;IN PAGE ZERO
LDY #>DOSCOPY
STY A1H
LDY #$43
STY A2H
LDY #$FF
STY A2L
INY ;NOW 0
STY A1L
STY A4L
JSR MOVE ;AND MOVE DOS 3.3 IN
JSR SETKBD
JSR SETVID
*
DOSPREP LDA #$0B ;INIT COMMAND MAKES IT LIVE
STA FMPCMD
LDA #$00 ;RUN COMMAND
STA DOSCMD ;FOR GREETING PROGRAM FILENAME
JSR FNBLK
LDX #0
FNAME1 LDA NAME,X ;PUT IN OUR NAME
PHA
ORA #$80 ;SET HI BIT ALWAYS
STA PFNBUF,X
PLA ;DONE IF AT HI BIT SET
BMI FIN ;YES
INX ;NOT YET
BNE FNAME1 ;ALWAYS
FIN JMP DOSCOLD ;GO START IT UP
*
*FILENAME TO RUN GOES HERE
NAME DCI 'HELLO'
*

87
source/DOS3.3MOVER2.S Normal file
View File

@ -0,0 +1,87 @@
*SYSTEM PROGRAM TO SWITCH INTO DOS 3.3 FROM PRODOS
*
**************************************************
*
* COPYRIGHT
* 1984
* BY
* R. SUTCLIFFE
*
***************************************************
*
A1L EQU $3C ;SOURCE
A1H EQU $3D
A2L EQU $3E ;END OF SOURCE
A2H EQU $3F
A4L EQU $42 ;DESTINATION
A4H EQU $43
DOSCOPY EQU $2100 ;START OF TRANSFERRED CODE
DOSSTRT EQU $9D00 ;DOS3.3 BEGINS HERE
DOSCOLD EQU $9D84
FNBLK EQU $A095 ;BLANKS FILENAME BUFFER
DOSCMD EQU $AA5F ;WHAT TO DO WHEN BOOTED
PFNBUF EQU $AA75 ;FILE NAME BUFFER
FMPLST EQU $B5BC ;FILE MANAGER PARAMETER LIST
FMPCMD EQU $B5BB
ENTRY EQU $BF00
ROMIN EQU $C082
RAMIN EQU $C083
BANK EQU $D000
MOVE EQU $FE2C ;MONITOR MOVE ROUTINE
*
ORG $2000 ;FOR ALL SYSTEM PROGRAMS
*
*PRESERVE GLOBAL PAGE TO GET BACK
*
BIT RAMIN ;WRITE ENABLE LC
BIT RAMIN
LDA #>BANK
STA A1H
LDA #>ENTRY
STA A4H
LDY #$00
STY A1L
STY A4L
LOOP LDA (A4L),Y
STA (A1L),Y
INY
BNE LOOP
BIT ROMIN
*
*
MOVER LDY #>DOSSTRT ;SET PARAMS FOR MONITOR MOVE
STY A4H ;IN PAGE ZERO
LDY #>DOSCOPY
STY A1H
LDY #$43
STY A2H
LDY #$FF
STY A2L
INY ;NOW 0
STY A1L
STY A4L
JSR MOVE ;AND MOVE DOS 3.3 IN
*
DOSPREP LDA #$0B ;INIT COMMAND MAKES IT LIVE
STA FMPCMD
LDA #$00 ;RUN COMMAND
STA DOSCMD ;FOR GREETING PROGRAM FILENAME
JSR FNBLK
LDX #0
FNAME1 LDA NAME,X ;PUT IN OUR NAME
PHA
ORA #$80 ;SET HI BIT ALWAYS
STA PFNBUF,X
PLA ;DONE IF AT HI BIT SET
BMI FIN ;YES
INX ;NOT YET
BNE FNAME1 ;ALWAYS
FIN LDA #$EA ;PATCH TO PREVENT 0 IN $E000 BY BOOT
STA $BFD3
STA $BFD4
STA $BFD5
JMP DOSCOLD ;GO START IT UP
*
*FILENAME TO RUN GOES HERE
NAME DCI 'HELLO'
*

17
source/DOS335.DOC.BAS Normal file
View File

@ -0,0 +1,17 @@
5 HOME
10 FOR I = 1 TO 6
20 READ A$
30 PRINT A$
40 PRINT
50 IF I = 4 AND PEEK (33) = 40 THEN PRINT "press a key": WAIT - 16384,128: PRINT
60 NEXT
100 READ A$
110 PRINT A$
7000 END
10000 DATA "DOS3.3.5 is copyright 1987 by Arjay Enterprises"
10020 DATA " This DOS will allow you to read and write files using 3 1/2in drives on your Apple //GS. It will not work on other Apple //'s because it needs the 65816 chip. THIS DISK HAS NO DOS"
10040 DATA " DOS3.3.5 can also initialize a bootable 3 1/2in disk wi|h the normal command. It will not initialize a 5 1/4in floppy, but will read and write them."
10050 DATA " Device #1 is S5,D1 for the first 400K and ,D2 for the next 400K. You continue in this way for as many devices as you have. The RAM drive is initialized only if it has at least 400K."
10070 DATA " To make a version of FID that will work properly, you type EXECFID335MAKER and follow instructions."
10080 DATA " The boot option for DOS335PATCH will attempt to boot a DOS3.5 disk in ,S5,D1 and modify the DOS on the fly. This may allow some commercial software to work but I offer no guarantees."
10090 DATA " This program is supposed to be transparant; the less documentation to confuse things the better."

528
source/DOS335PATCH.S Normal file
View File

@ -0,0 +1,528 @@
*
* DOS 3.3.5 - Patch/Boot program
*
* (c) 1987, Rick Sutcliffe (Arjay Enterprises)
* (s) 2020, Antoine Vignau
*
xc
xc
mx %11
org $8100
lst off
*----------------------------
zparam = $48
scratch = $50
flag = $80
buffer = $BB00
dispatch = $c50d
KBD EQU $C000
KBDSTROBE EQU $C010
INIT EQU $FB2F
HOME EQU $FC58
COUT EQU $FDED
SETKBD EQU $FE89
SETVID EQU $FE93
*----------------------------
L8100 LDA $C501 ; Do we have a Smartport card?
CMP #$20
BNE L8116
LDA $C503
ORA $C507
BNE L8116
LDA $C505
CMP #$03
BEQ L8117
*----------------------------
* 1- QUIT
*----------------------------
L8116 RTS
*----------------------------
L8117 LDA $03D2 ; Where is DOS located?
CMP #$9D
BNE L813E
LDA $03D5
CMP #$9D
BNE L813E
LDA $AAB3
BNE L812F
LDA $76
INC
BEQ L8139
L812F LDA $0100
CMP #$03
BNE L8139
JMP L81ED
*----------------------------
L8139 LDA #$8D
STA L8509+$20
*----------------------------
L813E STA $C0E8 ; stop drive
JSR SETKBD ; say hello
JSR SETVID
JSR INIT
L814A JSR HOME
LDA #>msgHELLO
LDX #<msgHELLO
JSR printSTR
LDA #>msgSELECT
LDX #<msgSELECT
JSR printSTR
BIT KBDSTROBE
L815E LDA KBD
BPL L815E
BIT KBDSTROBE
CMP #"1"
BEQ L8116
CMP #"2"
BNE L817F
*----------------------------
* 2- SEE SOME INSTRUCTIONS
*----------------------------
JSR HOME
LDA #>msgABOUT
LDX #<msgABOUT
JSR printSTR
L8178 LDA KBD
BPL L8178
BMI L814A
*----------------------------
L817F CMP #"3"
BEQ L818E
BIT L8509+$20
BPL L815E
CMP #"4"
BEQ L81ED
BNE L815E
*----------------------------
* 3- BOOT DOS 3.3 (AND PATCH)
*----------------------------
L818E CLC ; move Disk II controller ROM
XCE
REP #$30
LDY #$8000
LDX #$C600
LDA #$00FF
MVN $000000,$000000
MX %11
SEC
XCE
LDX #$FF ; search for the final JMP
L81A2 LDA $8000,X
CMP #$4C
BEQ L81AC
DEX
BNE L81A2
L81AC LDA #$60 ; make it a JSR
STA $8000,X
JSR $8000 ; call it
LDA #$60
STA $084A ; put a RTS
JSR $0801 ; read DOS 3.3
LDA #$6C ; put a JMP ($)
STA $084A
LDA #$3B ; make our patch
STA scratch
LDA $08FE
STA scratch+1
LDY #$00
LDA (scratch),Y
PHA
LDA #$60
STA (scratch),Y
JSR $084A
LDY #$00
PLA
STA (scratch),Y
BIT $51
BMI L81E7
LDA #$60
STA $1C25
JSR $1B03
L81E7 JSR L81ED
JMP $B73B ; and jump
*----------------------------
* 4- MODIFY DOS IN MEMORY
*----------------------------
L81ED CLC ; move our code in the DOS area
XCE
REP #$30
LDY #$BEAF ; read/write patch
LDX #L82D9
LDA #$0107
MVN $000000,$000000
LDY #$B601 ; T0/S0 patch
LDX #L829F
LDA #$0039
MVN $000000,$000000
STA $B3A0
MX %11
SEC
XCE
LDA $C5FF ; get the smartport entry
INC
INC
INC
STA LBF0B+1 ; ...point
STA LBF46+1
STA LBF53+1
STA LBF84+1
LDA #$20 ; JSR
STA $BD06
LDA #<LBEB1 ; $BEB1
STA $BD07
LDA #>LBEB1
STA $BD08
LDA #$06
STA $A95B
LDA $AEB3
ORA #$0C
CMP #$0C
BNE L8247
LDA #$08
STA $AEB3
LDA #$C8
STA $AEB5
L8247 LDA $B75E
CMP #$02
BNE L825A
LSR
STA $B715
STA $B75E
LDA #$1F
STA $B7A3
L825A LDA $BCDF
ORA $BCFF
BEQ L829E
LDA $9D00
STA $40
LDA $9D00+1
STA $40+1
LDY #$00
STA ($40),Y
LDX $AAB1
CPX #$03
BNE L8288
DEX
STX $AAB1
LDY #$25
LDA ($40),Y
STA $9D00+1
DEY
LDA ($40),Y
STA $9D00
L8288 LDY #$23
LDA ($40),Y
STA LBEE2+1
STA LBFAE+3
STA LBF26+2
DEY
LDA ($40),Y
STA LBFAE+2
STA LBF26+1
L829E RTS
*----------------------------
* PATCHES TO DOS 3.3
*----------------------------
*--- This is T0/S0
L829F = *
ORG $B601
LB601 LDA $C5FF ; B601
INC
INC
INC
STA $0822
LDA $08FE
INC
ADC $08FF
STA $0837
LDA $08FF
LSR
STA $0838
LB61B DEC $0837
DEC $0837
JSR dispatch
DB $01
DA $0834
DEC $0838
BPL LB61B
INC $0837
LDX #$50
JMP ($0836)
*---
DB $03 ; This is $0834
DB $01
DA $0000
DA $0000
DB $00
*----------------------------
ORG
L82D9 = *
ORG $BEAF
LBEAF DB $80 ; BEAF
DB $97
LBEB1 STY $06F8
LDA (zparam),Y
INC
LSR
ROR $80
STA LBFAE+1
STA LBFB5+1
DEY
LDA (zparam),Y
CMP #$50
BNE LBF45
LDX #$0F
LBEC9 LDA scratch,X
PHA
DEX
BPL LBEC9
LDY #$0C ; the RWTS command
LDA (zparam),Y
STA LBF13+1
CMP #$04
BEQ LBF50
LDY #$05
LDA (zparam),Y
PHA
AND #$01
CLC
LBEE2 ADC #>buffer
STA LBF26+2
PLA
LSR
STA scratch
STZ $51
DEY
LDA #$00
XBA
LDA (zparam),Y
CLC
XCE
REP #$30
ASL
ASL
ASL
ASL
CLC
ADC scratch
BIT flag-1
BPL LBF06
CLC
ADC #$0320
LBF06 STA LBFAE+4
MX %11
SEC
XCE
LBF0B JSR dispatch
DB $01
DA LBFAE
BCS LBF3A
LBF13 LDA #$00
BEQ LBF38
LSR
LDY #$08
PHP
CLC
XCE
PLP
REP #$30
LDA (zparam),Y
TAY
LDA #$00FF
LBF26 LDX #buffer
BCS LBF2F
PHX
PHY
PLX
PLY
LBF2F MVN $000000,$000000
PHP
MX %11
SEC
XCE
PLP
BCC LBF46
LBF38 CLC
HEX B0
LBF3A SEC
LBF3B LDX #$0F
LBF3D PLY
STY scratch,X
DEX
BPL LBF3D
PLY
PLY
LBF45 RTS
LBF46 JSR dispatch
DB $02
DA LBFAE
BCS LBF3A
BRA LBF3B
LBF50 STZ LBFAE+4
LBF53 JSR dispatch
DB $00
DA LBFAE
BCS LBF3A
XCE
REP #$30
LDA #$2032
STA $B3EF
LDA $BB01 ; 400k
CMP #$0320
BCS LBF70
SEC
XCE
BRA LBF3A
MX %00
LBF70 CMP #$0640 ; or 800k
LBF73 PHP
MX %11
SEC
XCE
PLP
LDA LBFAE+1
ROL
DEC
STA $B5F8
LDA #$1F
STA $B3BD
LBF84 JSR dispatch
DB $03
DA LBFB5
BCS LBF3B
LDA $B5F8
LSR
BCS LBFA7
LDA #$04
STA $AEB3
LDA #$60
STA $AEFF
JSR $AE96
LDA #$20
STA $AEFF
DEC $B5F8
LBFA7 LDA #$08
STA $AEB3
BNE LBF38
LBFAE DB $03 ; Read/Write command
DB $01
DA buffer
DA $0000
DB $00
LBFB5 DB $01
DB $01
*----------------------------
* The text messages
ORG
ORG $0083E1
msgHELLO
ASC " DOS 3.3.5 Patch/Boot program"8D8D
ASC " Copyright 1987 by Rick Sutcliffe"8D
ASC " (Arjay Enterprises)"8D8D
ASC "Box 1253 Aldergrove BC Canada V0X 1A0"8D
ASC 8D8D
ASC " Sold with Ampermanager by A.P.P.L.E."8D
ASC 8D
ASC "or separately as Shareware - $10 please"8D
ASC 8D8D
ASC "Do you wish to:"8D8D
ASC " 1. Quit and do nothing"8D
ASC " 2. See some instructions"8D
L8509 ASC " 3. Boot a DOS3.3 disk in S6,D1"00
ASC " 4. Modify DOS in memory and continue"00
msgSELECT
ASC 8D8D
ASC "Press the key for your selection ===> "00
msgABOUT
ASC " About DOS 3.3.5 Version 1.2"8D
ASC 8D
ASC "Once DOS 3.3.5 has been installed, "8D
ASC " - you can init bootable 3.5 inch disks"8D
ASC " (provided your DOS allows this)"8D
ASC " - you cannot init 5 1/4 inch disks"8D
ASC " - data I/O is o.k. with both."8D8D
ASC "If your GS has at least 400K set aside"8D
ASC "as a RAM drive, you can init that too,"8D
ASC "and use either 400K or 800K on it."8D8D
ASC "In any event, you use slot 5 drive 1 to"8D
ASC "access the first 400K on device one,"8D
ASC "and slot 5 drive 2 for the second 400K."8D
ASC 8D
ASC "Use ,D3 & ,D4 for device 2 (ramdrive?)"8D
ASC "and ,D5 and ,D6 for device 3"8D8D
ASC "Access other slots in the normal way."8D
ASC "You may BSAVE DOS335PATCH, A$8100,L$713"8D
ASC 8D
ASC "Press any key to return to menu ===> "00
*----------------------------
printSTR STA scratch+1
STX scratch
LDY #$00
L8803 LDA (scratch),Y
BEQ L8812
JSR COUT
INC scratch
BNE L8803
INC scratch+1
BNE L8803
L8812 RTS

36
source/FID.PATCH.S Normal file
View File

@ -0,0 +1,36 @@
*
* DOS 3.3.5 - Patch for FID on 3.5" disk drives
*
* (c) 1987, Rick Sutcliffe (Arjay Enterprises)
* (s) 2020, Antoine Vignau
*
xc
xc
mx %11
org $11e0
lst off
*----------------------------
L11E0 STX $1393
STX $1930
TXA
ASL
ASL
TAY
STY $1392
LDX #$03
CLC
L11F0 LDA $198D,Y
BEQ L11F6
SEC
L11F6 STA $1931,X
DEY
DEX
BPL L11F0
BCC $11D7
LDX $1987
STX $192F
BNE $11A4
NOP

39
source/FID335MAKER.TXT Normal file
View File

@ -0,0 +1,39 @@
HOME
VTAB5
?"PLACE THE DISK WITH FID TO BE MODIFIED IN THE DRIVE "
PRINT " AND PRESS ANY KEY";
WAIT -16384,128
POKE -16368,0
BLOAD FID
POKE 3810,0 :REM FORBID TRACK 0
POKE 2419,183
POKE2495,183 :REM DRIVE LIMIT OF 7
POKE2106,31 :REM SECTOR LIMIT OF 31
POKE 5900,193
POKE 5901,210
POKE 5902,202
POKE 5903,193
POKE 5904,217
POKE 5905,160
POKE 5906,214
POKE 5907,197
POKE 5908,210
POKE 5909,211
POKE 5910,201
POKE 5911,207
POKE 5912,206
POKE 5913,160
POKE 5914,179
POKE 5915,174
POKE 5916,179
POKE 5917,174
POKE 5918,181
BLOAD FID.PATCH
UNLOCK FID
HOME
VTAB 10
PRINT "PLACE THE TARGET DISK IN"
PRINT "THE DRIVE, AND PRESS ANY KEY";
WAIT -16384,128
POKE -16368,0
BSAVE FID,A$803,L$124E