Schrijver
| change DOS startup screen
|
norakomi msx professional Berichten: 861 | Geplaatst: 12 Januari 2006, 15:59   |
Hey everybody !!
When I put a disk in my msx with these files:
MSXDOX.SYS
COMMAND.COM
AUTOEXEC.BAT
and then reset the computer MSX-DOS startsup, and I see this message:
MSX-DOS version 1.03
Copyright 1984 by Microsoft
COMMAND version 1.11
A>BLOAD (this is the file that is written in AUTOEXEC.BAT)
Now my question is,
can I disable the screen, or disable this text, so that the user doesnt see the DOS startup screen?
(I think it looks a bit better when a game starts without the DOS message)
|
|
manuel msx guru Berichten: 3450 | Geplaatst: 12 Januari 2006, 16:56   |
You can do that by modifying the boot sector of your disk. There's code in there, and you can add some code that does a 'disable screen' on the interrupt.
D-Fader made this for me once, for using on Arranger 4. Worked like a charm!
|
|
norakomi msx professional Berichten: 861 | Geplaatst: 12 Januari 2006, 17:46   |
Quote:
| You can do that by modifying the boot sector of your disk. There's code in there, and you can add some code that does a 'disable screen' on the interrupt.
|
Thanx ! How can I modify this code?
And is this code in COMMAND.COM or in MSXDOS.SYS ? |
|
DarQ msx professional Berichten: 836 | Geplaatst: 12 Januari 2006, 18:02   |
you could also modify one of the files and replace the text with empty characters  |
|
manuel msx guru Berichten: 3450 | Geplaatst: 12 Januari 2006, 19:05   |
I'm talking about the code in the bootsector, not in a file. It's somewhere in sector 0  |
|
manuel msx guru Berichten: 3450 | Geplaatst: 12 Januari 2006, 19:08   |
I found back the code:
; TeddyWareZ MSX Z80 source file.
;
; Prog: Boot Sector for Arranger
; Code: d-fader^TwZ.
; Date: june 30, 1999
;
; cmnt: none.
;
; coded in Chaos Assembler 2.0
;
; (C) 1999 TeddyWareZ!
#include "macro's.asm"
.org $c000 - 7
.db $fe
.dw start_program,end_program,start_code
start_program:
.db $eb,$fe,$90 ; type disk...
.text "Arranger" ; Name disk
.dw 512 ; Number of bytes per sector
.db 2 ; Number of sectors per cluster
.db 1,0 ; Reserved sectors
.db 2 ; Number of File Allocation Tables (FAT's)
.dw 112 ; Maximum number of files in directory
.dw 1440 ; Number of sectors on disk
.db $f9 ; Media descriptor
.dw 3 ; Number of sectors per FAT
.dw 9 ; Number of sectors per track
.dw 2 ; Number of sides on disk (1=single, 2=double)
.dw 0 ; Hidden sectors.
ret nc ; Must be RET NC (on every disk!!)
di ; Disable Interrupts
ld a,$c9 ; Hook interrupt to $fd9a
ld ($fd9a),a ;
ld hl,Interrupt ; Say where to jump to
ld ($fd9b),hl ;
ld a,$c3 ; Jump to it
ld ($fd9a),a ;
ei ; Enable Interrupts
; Now every 1/50 sec will be jumped to Interrupt..
ret
Interrupt:
ld a,($f3e0) ; Get current value of vdp reg #1
and %10111111 ; Turn screen off
ld ($f3e0),a ; Put new value back
vdp(1) ; out it.
ret ; Return
; It must be done this way, because when the MSX initialises, the screen will be turned on.
; Now we turn the screen 50 times a sec off, so, no characters on screen anymore.
; When you're in basic, first turn the interrupt off, and then turn the screen on, like this:
; CLS
; POKE &HFD9A, &HC9
; DEFUSR = &H44 : A = USR (0)
; Now you're in BASIC without sumthin' on screen!
.org $c100
start_code:
xor a
call cls
SetVram(0,0,write)
ld hl,text
ld b,end_text-text
ld c,$98
otir
call kilbuf
call chget
ld de,start_program
bdos(26)
ld de,0
ld h,1
ld l,0
bdos(48)
ret
text:
.text "Put disk in drive A: and slam [any] key when ready..."
end_text:
end_program:
.end
|
|
[D-Tail]
 msx guru Berichten: 3018 | Geplaatst: 12 Januari 2006, 21:15   |
Manuel: you missed out on the Vdp(x) macro and the BDOS macros. Can you include those as well?
|
|
manuel msx guru Berichten: 3450 | Geplaatst: 12 Januari 2006, 21:28   |
I don't have them, I suppose they come with Chaos Assembler 2.0....
|
|
ro msx guru Berichten: 2329 | Geplaatst: 13 Januari 2006, 08:28   |
Still.. if one gets your disk and copies the project files (bload for exm) to own dos boot. the effect is undone again. better skip the whole DOS part and boot your app in the bootsector. Otherwise, don't bother to add that trick. it's useless.
|
|
BiFi msx guru Berichten: 3142 | Geplaatst: 13 Januari 2006, 08:57   |
bdos(value) = ld c,value
call $f37d
vdp(reg) = out ($99),a
ld a,128+ reg
out ($99),a
I guess D-Tail thinks there's actually a SetVram(bank,address,access) is a Z80 instruction  , but it isn't and it's like this: ld a,bank
out ($99),a
ld a,128+ 14
out ($99),a
ld hl,address
ld a,l
out ($99),a
ld a,h
and $3f
IF access = write
or $40
ENDIF
out ($99),a |
|
[D-Tail]
 msx guru Berichten: 3018 | Geplaatst: 13 Januari 2006, 10:54   |
Hehehe, I clearly skipped that one - didn't see it at first glance... ha well  |
|
BiFi msx guru Berichten: 3142 | Geplaatst: 13 Januari 2006, 11:35   |
lack of [D-Tail] I guess  |
|
|
|
|