* * 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 #msgSELECT LDX #msgABOUT LDX #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