In een poging een minimalistisch osje te maken probeer ik het volgende,
eerst een bootloader te programmeren en dan vervolgens een stukje code hierin dat een sector in leest en die code dan kopieert in het geheugen en nadien uit uitvoert.
Alles is op dit moment nog maar om te proberen dus het eerste stukje code laat eee op het scherm zien het volgende stukje normaal fff
echter het tweede stukje code wordt nooit uitgevoerd iemand enig idee waarom hij blijft lezen op de diskette?
bootloader:
en dan het stukje om de f te laten zien:
Ik maak hier twee Bin's van en join die dan met een file joiner nadien schrijf ik het geheel met rawrite.
Groeten.
eerst een bootloader te programmeren en dan vervolgens een stukje code hierin dat een sector in leest en die code dan kopieert in het geheugen en nadien uit uitvoert.
Alles is op dit moment nog maar om te proberen dus het eerste stukje code laat eee op het scherm zien het volgende stukje normaal fff
echter het tweede stukje code wordt nooit uitgevoerd iemand enig idee waarom hij blijft lezen op de diskette?
bootloader:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| use16 ? equ 0 ORG 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Boot sector starts here ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; jmp start ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Boot sector code starts here ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; start: mov ah,01h int 10h ;zet in teksmode mov al,'e' mov bh,0 mov bl,10h mov cx,10 mov ah,09h int 10h ;schrijf karakter op scherm mov ah,02h mov al,1 mov ch,1 mov cl,1 mov dh,1 mov dl,1 mov bx,513 ; offset van begin adres hier moet de code ingeladen worden int 13h jmp 513 times 510- ($-0) db 0 dw 0xaa55 |
en dan het stukje om de f te laten zien:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| use16 ORG 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Boot sector starts here ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; jmp start start: mov ah,01h int 10h ;zet in teksmode mov al,'f' mov bh,0 mov bl,10h mov cx,100 mov ah,09h int 10h ;schrijf karakter op scherm times 510- ($-0) db 0 dw 0xaa55 |
Ik maak hier twee Bin's van en join die dan met een file joiner nadien schrijf ik het geheel met rawrite.
Groeten.