feat: version bêta 1.3.2fr
BREAKING CHANGE: attention modification majeure du code
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 126 KiB |
1432
INFORMATIONS.md
59
MAKEFILE
|
@ -1,59 +0,0 @@
|
|||
all:
|
||||
cd lib
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd noyau
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd install
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd commande
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd programs
|
||||
make
|
||||
cd ..
|
||||
|
||||
install:
|
||||
if not exist data mkdir data
|
||||
copy noyau\systeme.sys data
|
||||
copy noyau\boot.bin data
|
||||
copy commande\commande.ce data
|
||||
copy lib\*.lib data
|
||||
copy programs\*.ce data
|
||||
copy programs\exem-lib.lib data
|
||||
copy programs\cos.rip data
|
||||
copy install\setup.com .
|
||||
|
||||
copy: clean all
|
||||
copy noyau\systeme.sys b:
|
||||
copy commande\*.ce b:
|
||||
copy lib\*.lib b:
|
||||
copy programs\*.ce b:
|
||||
copy programs\*.lib b:
|
||||
|
||||
clean:
|
||||
cd lib
|
||||
make clean
|
||||
cd ..
|
||||
|
||||
cd noyau
|
||||
make clean
|
||||
cd ..
|
||||
|
||||
cd install
|
||||
make clean
|
||||
cd ..
|
||||
|
||||
cd commande
|
||||
make clean
|
||||
cd ..
|
||||
|
||||
cd programs
|
||||
make clean
|
||||
cd ..
|
|
@ -1,13 +0,0 @@
|
|||
![logo](https://github.com/dahut87/cos2000v1/raw/master/Graphisme/logo.png)
|
||||
|
||||
## Copies d'écran de COS2000
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/bootnew.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/chargement.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/dir.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/editeur.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/gestionnaire.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/installation.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/interpreteur.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/logo.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/pci.jpg)
|
||||
![screen](https://github.com/dahut87/cos2000v1/raw/develop/Graphisme/screenshots/video.jpg)
|
|
@ -1,20 +0,0 @@
|
|||
asm= lzasm /z/t
|
||||
lnk= elink
|
||||
|
||||
all: commande.ce
|
||||
|
||||
commande.ce: commande.obj
|
||||
$(lnk) commande.obj commande.ce
|
||||
|
||||
commande.obj: commande.asm
|
||||
$(asm) commande.asm
|
||||
|
||||
clean:
|
||||
del *.obj
|
||||
del *.ce
|
||||
del *.bak
|
||||
del *.lib
|
||||
del *.com
|
||||
del *.bin
|
||||
del *.sys
|
||||
del *.err
|
|
@ -1,20 +0,0 @@
|
|||
lnk_boot = tlink /x
|
||||
asm= tasm /t/m5/zi
|
||||
lnk= tlink /x/t
|
||||
|
||||
all: ex-tasm.com ex-nasm.com
|
||||
|
||||
ex-tasm.com: ex-tasm.asm
|
||||
$(asm) ex-tasm
|
||||
$(lnk) ex-tasm
|
||||
ren ex-tasm.com ex-tasm.com
|
||||
|
||||
ex-nasm.com: ex-nasm.asm
|
||||
nasm ex-nasm.asm -o ex-nasm.com
|
||||
|
||||
clean:
|
||||
del *.obj
|
||||
del *.exe
|
||||
del *.com
|
||||
del *.sys
|
||||
del *.err
|
|
@ -1,27 +0,0 @@
|
|||
[bits 16] ;16 bits
|
||||
[org 0x0] ;Point d'entré en 0h
|
||||
section .text ;Segment de code
|
||||
|
||||
checks db "CE" ;signature de l'exe
|
||||
major db 1 ;N° version
|
||||
checksum dd 0 ;Checksum de l'exe
|
||||
compressed db 0 ;a 1 si compressé par RLE
|
||||
exports dw 0 ;importation de fonctions
|
||||
imports dw imported ;exportation de fonctions
|
||||
sections dw 0 ;sections des blocs mémoire
|
||||
starting dw realstart
|
||||
|
||||
imported:
|
||||
db "VIDEO.LIB::print",0
|
||||
print dd 0
|
||||
endofimport dd 0
|
||||
|
||||
realstart:
|
||||
push msg
|
||||
call far [cs:print] ;Afficher le texte (Showstring0)
|
||||
xor ax,ax
|
||||
int 0x16 ;Attendre l'appuie sur une touche
|
||||
retf ;retour far
|
||||
|
||||
msg db 'Hello World !!',0
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
.model tiny ;model tiny (.com)
|
||||
.486 ;Pour processeur 80486
|
||||
Smart ;Optimisations
|
||||
.code ;Segment de code
|
||||
|
||||
org 0h ;Point d'entré en 0h
|
||||
|
||||
checks db "CE" ;signature de l'exe
|
||||
major db 1 ;N° version
|
||||
checksum dd 0 ;Checksum de l'exe
|
||||
compressed db 0 ;a 1 si compressé par RLE
|
||||
exports dw 0 ;importation de fonctions
|
||||
imports dw imported ;exportation de fonctions
|
||||
sections dw 0 ;sections des blocs mémoire
|
||||
starting dw realstart
|
||||
|
||||
imported:
|
||||
db "VIDEO.LIB::print",0
|
||||
print dd 0
|
||||
|
||||
start:
|
||||
push msg
|
||||
call far [cs:print] ;Afficher le texte (Showstring0)
|
||||
xor ax,ax
|
||||
int 16h ;Attendre l'appuie sur une touche
|
||||
db 0CBH ;retour far
|
||||
|
||||
msg db 'Hello World !!',0
|
||||
|
||||
end start
|
||||
|
BIN
doc_origine.pdf
|
@ -1,40 +0,0 @@
|
|||
struc bmp_file
|
||||
bmp_filetype db 'bm'
|
||||
bmp_filesize dd ? ; taille du fichier
|
||||
bmp_reserved dd 0 ; toujours 0
|
||||
bmp_bitmapoffset dd ? ; offset de l'image
|
||||
bmp_headersize dd ? ; taille de l'entete en octects
|
||||
bmp_width dd ? ; largeur en pixels de l'image
|
||||
bmp_height dd ? ; hauteur en pixels de l'image
|
||||
bmp_planes dw 1 ; nombre de plan utilisés
|
||||
bmp_bitsperpixel dw ? ; nombre de bits par pixels
|
||||
bmp_compression dd ? ; méthode de compression
|
||||
bmp_sizeofbitmap dd ? ; taille de l'image en octects
|
||||
bmp_horzresolution dd ? ; resolution horizontale en pixels par mètre
|
||||
bmp_vertresolution dd ? ; resolution verticale en pixels par mètre
|
||||
bmp_colorsused dd ? ; nombre de couleur dans la palette si 0: palette entière si bitperpixel<=8
|
||||
bmp_colorsimportant dd ? ; nombre de couleurs importantes masques pour les modes de plus de 8 bits par pixels
|
||||
bmp_redmask dd ?
|
||||
bmp_greenmask dd ?
|
||||
bmp_bluemask dd ?
|
||||
bmp_alphamask dd ?
|
||||
bmp_colorspacetype dd ?
|
||||
bmp_redx dd ?
|
||||
bmp_redy dd ?
|
||||
bmp_redz dd ?
|
||||
bmp_greenx dd ?
|
||||
bmp_greeny dd ?
|
||||
bmp_greenz dd ?
|
||||
bmp_bluex dd ?
|
||||
bmp_bluey dd ?
|
||||
bmp_bluez dd ?
|
||||
bmp_gammared dd ?
|
||||
bmp_gammagreen dd ?
|
||||
bmp_gammeblue dd ?
|
||||
ends bmp_file
|
||||
|
||||
;bmp_compression peut prendre les valeurs suivantes:
|
||||
bmp_comp_uncomp equ 0 ; pas de compression
|
||||
bmp_comp_rle8 equ 1 ; 8-bit run length encoding
|
||||
bmp_comp_rle4 equ 2 ; 4-bit tun length encoding
|
||||
bmp_comp_bfe equ 3 ; bitfields encoding
|
|
@ -1,20 +0,0 @@
|
|||
struc cpu
|
||||
vendor db 13 dup(0) ;Chaine 0 du fabriquant
|
||||
names db 32 dup(0)
|
||||
stepping db 0
|
||||
models db 0
|
||||
family db 0
|
||||
types db 0
|
||||
emodels db 0
|
||||
efamily db 0
|
||||
mmx db 0
|
||||
mmx2 db 0
|
||||
sse db 0
|
||||
sse2 db 0
|
||||
sse3 db 0
|
||||
fpu db 0
|
||||
now3d db 0
|
||||
now3d2 db 0
|
||||
htt db 0
|
||||
apic db 0
|
||||
ends cpu
|
|
@ -1,2 +0,0 @@
|
|||
true equ 1
|
||||
false equ 0
|
|
@ -1,61 +0,0 @@
|
|||
struc dpt
|
||||
steprate&headunload db 0DFh ;Vitesse de progression & mont‚e de la tˆte
|
||||
dmaflag&headload db 002h ;Etat Dma et temps de descente de la tˆte
|
||||
delaymotoroff db 025h ;Temps avant extinction moteur
|
||||
bytepersector db 002h ;Taille des secteurs
|
||||
sectorpertracks db 000h ;Nombre de secteur par piste
|
||||
intersectgaplength db 01Bh ;Taille du GAP3 en lecture/‚criture
|
||||
datalength db 0FFh ;Longueur du transfert de donn‚es
|
||||
intersectgaplengthf db 054h ;Taille du GAP3 en formatage
|
||||
formatbyte db 0F6h ;Octet de formatage
|
||||
headsettlingtime db 000h ;Temps de repos des tˆtes
|
||||
delaymotornormspeed db 008h ;Temps de mont‚e en vitesse du moteur
|
||||
ends dpt
|
||||
|
||||
struc entries
|
||||
filename db 8 dup (0)
|
||||
filext db 3 dup (0)
|
||||
fileattr db 0
|
||||
filereserved db 0
|
||||
filetimecreams db 0 ;(*10 ms)
|
||||
filetimecrea dw 0
|
||||
filedatecrea dw 0
|
||||
filedateacc dw 0
|
||||
filenotused dw 0
|
||||
filetime dw 0
|
||||
filedate dw 0
|
||||
filegroup dw 0
|
||||
filesize dd 0
|
||||
ends entries
|
||||
|
||||
;Pour recherches
|
||||
struct find
|
||||
files db 13 dup (0) ;le fichier
|
||||
entryplace dw 0 ;En octet
|
||||
adressdirectory dw 0 ;En cluster
|
||||
firstsearch db 1 ;Premiere requete ?
|
||||
result entries <>
|
||||
ends find
|
||||
|
||||
struc bootinfo
|
||||
vendor db 'COS2000A' ;Fabricant + n°série Formatage
|
||||
sectorsize dw 512 ;octet/secteur
|
||||
sectorspercluster db 1 ;secteur/cluster
|
||||
reservedsectors dw 1 ;secteur reserv‚
|
||||
fatsperdrive db 2 ;nb de copie de la FAT
|
||||
directorysize dw 224 ;taille rep racine
|
||||
sectorsperdrive dw 2880 ;nb secteur du volume si < 32 még
|
||||
mediadescriptor db 0F0h ;Descripteur de média
|
||||
sectorsperfat dw 9 ;secteur/FAT
|
||||
sectorspertrack dw 18 ;secteur/piste
|
||||
headsperdrive dw 2 ;nb de tˆteb de lecture/écriture
|
||||
hiddensectorsh dw 0 ;nombre de secteur cach‚s
|
||||
hiddensectorsl dw 0 ;
|
||||
sectorperdisk2 dd 0 ;Nombre secteur du volume si > 32 Mo+20h ; the number of sectors
|
||||
bootdrive db 0 ;Lecteur de d‚marrage
|
||||
reservedfornt db 0 ;NA
|
||||
bootsign db 29h ;boot signature 29h
|
||||
serialnumber dd 01020304h ;no de serie
|
||||
drivename db 'COS2000 ' ;nom de volume
|
||||
typeoffat db 'FAT16 ' ;FAT
|
||||
ends bootinfo
|
|
@ -1,26 +0,0 @@
|
|||
struc point
|
||||
coordx db 0
|
||||
coordy db 0
|
||||
ends point
|
||||
|
||||
struc vgainf
|
||||
lines db 0
|
||||
columns db 0
|
||||
x db 0
|
||||
y db 0
|
||||
xy dw 0
|
||||
colors db 7
|
||||
mode db 0FFh
|
||||
pagesize dw 0
|
||||
style db 0
|
||||
font db 0
|
||||
graphic db 0
|
||||
nbpage db 0
|
||||
color db 0
|
||||
cursor db 0
|
||||
segments dw 0
|
||||
linesize dw 0
|
||||
adress dw 0
|
||||
base dw 0
|
||||
scrolling db 1
|
||||
ends vgainf
|
124
include/mem.h
|
@ -1,124 +0,0 @@
|
|||
struc regs
|
||||
seip dd 0
|
||||
seax dd 0
|
||||
sebx dd 0
|
||||
secx dd 0
|
||||
sedx dd 0
|
||||
sesi dd 0
|
||||
sedi dd 0
|
||||
sebp dd 0
|
||||
sesp dd 0
|
||||
scs dw 0
|
||||
sds dw 0
|
||||
ses dw 0
|
||||
sfs dw 0
|
||||
sgs dw 0
|
||||
sss dw 0
|
||||
seflags dd 0
|
||||
ends regs
|
||||
|
||||
struc tuple ;vecteur d'interruption
|
||||
off dw 0 ;adresse
|
||||
seg dw 0 ;segment
|
||||
ends tuple
|
||||
|
||||
union vector
|
||||
data tuple <>
|
||||
content dd 0
|
||||
ends
|
||||
|
||||
struc ints ;bloc interruption
|
||||
number db 0 ;numero de l'interruption
|
||||
activated db 0 ;activé ou non
|
||||
locked db 0 ;verrouillée
|
||||
launchedlow dd 0
|
||||
launchedhigh dd 0
|
||||
calledlow dd 0
|
||||
calledhigh dd 0
|
||||
vector1 vector ?
|
||||
vector2 vector ?
|
||||
vector3 vector ?
|
||||
vector4 vector ?
|
||||
vector5 vector ?
|
||||
vector6 vector ?
|
||||
vector7 vector ?
|
||||
vector8 vector ?
|
||||
ends ints
|
||||
|
||||
struc mb ;Bloc de mémoire
|
||||
check db "NH" ;signature du bloc de mémoire
|
||||
isnotlast db 0 ;flag indiquant le dernier bloc
|
||||
isresident db 0 ;flag indiquant que le bloc est resident
|
||||
reference dw 0 ;pointeur vers le bloc parent
|
||||
sizes dw 0 ;taille du bloc en paragraphe de 16 octet
|
||||
names db 24 dup (0) ;nom du bloc
|
||||
ends mb
|
||||
|
||||
struc exe ;Executable COS
|
||||
checks db "CE" ;signature de l'exe
|
||||
major db 1 ;N° version
|
||||
checksum dd 0 ;Checksum de l'exe
|
||||
compressed db 0 ;a 1 si compressé par RLE
|
||||
exports dw 0 ;importation de fonctions
|
||||
imports dw 0 ;exportation de fonctions
|
||||
sections dw 0 ;sections des blocs mémoire
|
||||
starting dw 15
|
||||
ends exe
|
||||
|
||||
struc descriptor
|
||||
limit_low dw 0
|
||||
base_low dw 0
|
||||
base_middle db 0
|
||||
dpltype db 0
|
||||
limit_high db 0
|
||||
base_high db 0
|
||||
ends descriptor
|
||||
|
||||
|
||||
free equ 0 ;Reference quand libre
|
||||
|
||||
|
||||
|
||||
macro exporting
|
||||
label exports
|
||||
endm
|
||||
|
||||
macro importing
|
||||
label imports
|
||||
endm
|
||||
|
||||
macro noimporting
|
||||
label imports
|
||||
dd 0
|
||||
endm
|
||||
|
||||
macro noexporting
|
||||
label imports
|
||||
dd 0
|
||||
endm
|
||||
|
||||
macro ende
|
||||
dd 0
|
||||
endm
|
||||
|
||||
macro endi
|
||||
dd 0
|
||||
endm
|
||||
|
||||
macro use lib:req,fonction:req
|
||||
db "&lib&::&fonction&",0
|
||||
label &fonction& dword
|
||||
dd 0
|
||||
endm
|
||||
|
||||
macro declare fonction:req
|
||||
db "&fonction&",0
|
||||
dw offset fonction
|
||||
endm
|
||||
|
||||
macro heading versmaj:req,versmin:req,start:req
|
||||
header exe <"CE",offset &versmaj&,offset &versmin&,0,offset exports,offset imports,0,offset &start&>
|
||||
db "&fonction&",0
|
||||
dw offset fonction
|
||||
endif
|
||||
endm
|
|
@ -1,34 +0,0 @@
|
|||
struc pcidata
|
||||
vendor dw 0 ;vendor ID (read-only), FFFFh returned if requested device non-existent
|
||||
device dw 0 ;device ID (read-only)
|
||||
command dw 0 ;command register
|
||||
status dw 0 ;status register
|
||||
revision db 0 ;revision ID
|
||||
interface db 0 ;programming interface
|
||||
subclass db 0 ;sub-class
|
||||
class db 0 ;class code
|
||||
cache db 0 ;cache line size
|
||||
timer db 0 ;latency timer
|
||||
typed db 0 ;header type
|
||||
;bits 6-0: header format
|
||||
;00h other
|
||||
;01h PCI-to-PCI bridge
|
||||
;02h PCI-to-CardBus bridge
|
||||
;bit 7: multi-function device
|
||||
result db 0 ;Built-In Self-Test result
|
||||
ends pcidata
|
||||
|
||||
struc pciinf
|
||||
version_major db 0
|
||||
version_minor db 0
|
||||
types db 0
|
||||
maxbus db 0
|
||||
ends pciinf
|
||||
|
||||
multifunction equ 80h
|
||||
othercard equ 00h
|
||||
pci2pcibridge equ 01h
|
||||
pci2pcicard equ 02h
|
||||
|
||||
config1addr equ 0CF8h
|
||||
config1data equ 0CFCh
|
|
@ -1,256 +0,0 @@
|
|||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 07Eh, 081h, 0A5h, 081h, 081h, 0BDh, 099h, 081h, 07Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 07Eh, 0FFh, 0DBh, 0FFh, 0FFh, 0C3h, 0E7h, 0FFh, 07Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 036h, 07Fh, 07Fh, 07Fh, 07Fh, 03Eh, 01Ch, 008h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 008h, 01Ch, 03Eh, 07Fh, 03Eh, 01Ch, 008h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 03Ch, 03Ch, 0E7h, 0E7h, 0E7h, 018h, 018h, 03Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 03Ch, 07Eh, 0FFh, 0FFh, 07Eh, 018h, 018h, 03Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 018h, 03Ch, 03Ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0E7h, 0C3h, 0C3h, 0E7h, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 03Ch, 066h, 042h, 042h, 066h, 03Ch, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 0FFh, 0FFh, 0FFh, 0FFh, 0C3h, 099h, 0BDh, 0BDh, 099h, 0C3h, 0FFh, 0FFh, 0FFh, 0FFh, 000h, 000h
|
||||
DB 000h, 000h, 00Fh, 007h, 00Dh, 019h, 03Ch, 066h, 066h, 066h, 03Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 03Ch, 066h, 066h, 066h, 03Ch, 018h, 07Eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 03Fh, 033h, 03Fh, 030h, 030h, 030h, 070h, 0F0h, 0E0h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 07Fh, 063h, 07Fh, 063h, 063h, 063h, 067h, 0E7h, 0E6h, 0C0h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 018h, 0DBh, 03Ch, 0E7h, 03Ch, 0DBh, 018h, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 040h, 060h, 070h, 07Ch, 07Fh, 07Ch, 070h, 060h, 040h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 001h, 003h, 007h, 01Fh, 07Fh, 01Fh, 007h, 003h, 001h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 03Ch, 07Eh, 018h, 018h, 018h, 07Eh, 03Ch, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 033h, 033h, 033h, 033h, 033h, 033h, 000h, 033h, 033h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 07Fh, 0DBh, 0DBh, 0DBh, 07Bh, 01Bh, 01Bh, 01Bh, 01Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Eh, 063h, 030h, 01Ch, 036h, 063h, 063h, 036h, 01Ch, 006h, 063h, 03Eh, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07Fh, 07Fh, 07Fh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 03Ch, 07Eh, 018h, 018h, 018h, 07Eh, 03Ch, 018h, 07Eh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 03Ch, 07Eh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 07Eh, 03Ch, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 00Ch, 006h, 07Fh, 006h, 00Ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 018h, 030h, 07Fh, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 060h, 060h, 060h, 07Fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 024h, 066h, 0FFh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 008h, 01Ch, 01Ch, 03Eh, 03Eh, 07Fh, 07Fh, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 07Fh, 07Fh, 03Eh, 03Eh, 01Ch, 01Ch, 008h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 000h, 000h, 010h, 010h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 024h, 024h, 024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 042h, 042h, 042h, 0FFh, 042h, 042h, 042h, 0FFh, 042h, 042h, 042h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 010h, 07Eh, 090h, 090h, 090h, 07Ch, 012h, 012h, 012h, 0FCh, 010h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 061h, 091h, 092h, 064h, 008h, 010h, 026h, 049h, 089h, 086h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 070h, 088h, 088h, 088h, 050h, 060h, 091h, 08Ah, 084h, 04Ah, 031h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 018h, 018h, 010h, 020h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 006h, 018h, 020h, 040h, 040h, 040h, 040h, 040h, 020h, 018h, 006h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 060h, 018h, 004h, 002h, 002h, 002h, 002h, 002h, 004h, 018h, 060h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 010h, 092h, 054h, 038h, 0FEh, 038h, 054h, 092h, 010h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 010h, 010h, 010h, 0FEh, 010h, 010h, 010h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 010h, 020h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 0FEh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 001h, 001h, 002h, 004h, 008h, 010h, 020h, 040h, 080h, 080h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 083h, 085h, 089h, 091h, 0A1h, 0C1h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 010h, 030h, 050h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 07Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 001h, 002h, 03Ch, 040h, 080h, 080h, 080h, 0FFh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 001h, 002h, 03Ch, 002h, 001h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 002h, 006h, 00Ah, 012h, 022h, 042h, 082h, 0FFh, 002h, 002h, 002h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FFh, 080h, 080h, 080h, 0FCh, 002h, 001h, 001h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 080h, 0BCh, 0C2h, 081h, 081h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FFh, 081h, 001h, 002h, 004h, 008h, 010h, 010h, 010h, 010h, 010h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 081h, 042h, 03Ch, 042h, 081h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 081h, 043h, 03Dh, 001h, 001h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 010h, 020h, 000h, 000h
|
||||
DB 000h, 002h, 004h, 008h, 010h, 020h, 040h, 020h, 010h, 008h, 004h, 002h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 0FEh, 000h, 000h, 000h, 0FEh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 040h, 020h, 010h, 008h, 004h, 002h, 004h, 008h, 010h, 020h, 040h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 038h, 044h, 082h, 082h, 004h, 008h, 010h, 010h, 000h, 010h, 010h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 099h, 0A5h, 0A5h, 0A5h, 09Eh, 080h, 041h, 03Eh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 018h, 024h, 042h, 081h, 081h, 0FFh, 081h, 081h, 081h, 081h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FCh, 042h, 041h, 041h, 042h, 07Ch, 042h, 041h, 041h, 042h, 0FCh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 081h, 080h, 080h, 080h, 080h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FCh, 042h, 041h, 041h, 041h, 041h, 041h, 041h, 041h, 042h, 0FCh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FFh, 080h, 080h, 080h, 080h, 0FCh, 080h, 080h, 080h, 080h, 0FFh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FFh, 080h, 080h, 080h, 080h, 0FCh, 080h, 080h, 080h, 080h, 080h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 081h, 080h, 09Fh, 081h, 081h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 081h, 081h, 081h, 081h, 081h, 0FFh, 081h, 081h, 081h, 081h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 038h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 038h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 007h, 002h, 002h, 002h, 002h, 002h, 002h, 082h, 082h, 044h, 038h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 081h, 082h, 084h, 088h, 090h, 0E0h, 090h, 088h, 084h, 082h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 080h, 080h, 080h, 080h, 080h, 080h, 080h, 080h, 080h, 080h, 0FFh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 081h, 0C3h, 0A5h, 099h, 099h, 081h, 081h, 081h, 081h, 081h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 081h, 0C1h, 0A1h, 091h, 089h, 085h, 083h, 081h, 081h, 081h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 081h, 081h, 081h, 081h, 081h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FCh, 082h, 081h, 081h, 082h, 0FCh, 080h, 080h, 080h, 080h, 080h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 081h, 081h, 081h, 081h, 089h, 085h, 042h, 03Dh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FCh, 082h, 081h, 081h, 082h, 0FCh, 090h, 088h, 084h, 082h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 042h, 081h, 080h, 040h, 03Ch, 002h, 001h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FEh, 092h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 081h, 081h, 081h, 081h, 081h, 081h, 081h, 081h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 081h, 081h, 081h, 081h, 081h, 042h, 042h, 024h, 024h, 018h, 018h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 081h, 081h, 081h, 081h, 081h, 081h, 099h, 099h, 0A5h, 0A5h, 042h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 081h, 081h, 081h, 042h, 024h, 018h, 024h, 042h, 081h, 081h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 082h, 082h, 082h, 082h, 044h, 028h, 010h, 010h, 010h, 010h, 010h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FFh, 001h, 001h, 002h, 004h, 018h, 020h, 040h, 080h, 080h, 0FFh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 07Eh, 040h, 040h, 040h, 040h, 040h, 040h, 040h, 040h, 040h, 07Eh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 080h, 080h, 040h, 020h, 010h, 008h, 004h, 002h, 001h, 001h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 07Eh, 002h, 002h, 002h, 002h, 002h, 002h, 002h, 002h, 002h, 07Eh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 018h, 024h, 042h, 081h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0FFh, 000h, 000h, 000h
|
||||
DB 000h, 008h, 004h, 002h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 07Ch, 002h, 002h, 07Eh, 082h, 082h, 07Dh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 080h, 080h, 080h, 080h, 0BCh, 0C2h, 081h, 081h, 081h, 0C2h, 0BCh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 03Ch, 042h, 080h, 080h, 080h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 001h, 001h, 001h, 001h, 03Dh, 043h, 081h, 081h, 081h, 043h, 03Dh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 03Ch, 042h, 081h, 0FFh, 080h, 040h, 03Eh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 00Eh, 011h, 010h, 010h, 0FEh, 010h, 010h, 010h, 010h, 010h, 010h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 03Dh, 043h, 081h, 081h, 043h, 03Dh, 001h, 002h, 07Ch, 000h, 000h
|
||||
DB 000h, 080h, 080h, 080h, 080h, 0BCh, 0C2h, 081h, 081h, 081h, 081h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 008h, 008h, 000h, 038h, 008h, 008h, 008h, 008h, 008h, 03Eh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 002h, 002h, 000h, 006h, 002h, 002h, 002h, 002h, 002h, 082h, 044h, 038h, 000h, 000h
|
||||
DB 000h, 080h, 080h, 080h, 080h, 082h, 084h, 088h, 090h, 0A8h, 0C4h, 082h, 000h, 000h, 000h, 000h
|
||||
DB 038h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 03Eh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0ECh, 092h, 092h, 092h, 092h, 092h, 092h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0B8h, 0C4h, 082h, 082h, 082h, 082h, 082h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 03Ch, 042h, 081h, 081h, 081h, 042h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0BCh, 0C2h, 081h, 081h, 081h, 0C2h, 0BCh, 080h, 080h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 03Dh, 043h, 081h, 081h, 081h, 043h, 03Dh, 001h, 001h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0BEh, 0C1h, 080h, 080h, 080h, 080h, 080h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 07Eh, 081h, 080h, 07Eh, 001h, 081h, 07Eh, 000h, 000h, 000h, 000h
|
||||
DB 010h, 010h, 010h, 010h, 010h, 0FEh, 010h, 010h, 010h, 010h, 011h, 00Eh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 081h, 081h, 081h, 081h, 081h, 043h, 03Dh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 081h, 081h, 081h, 081h, 042h, 024h, 018h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 082h, 082h, 092h, 092h, 092h, 0AAh, 044h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 081h, 042h, 024h, 018h, 024h, 042h, 081h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 081h, 081h, 081h, 081h, 043h, 03Dh, 001h, 002h, 07Ch, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0FFh, 002h, 004h, 018h, 020h, 040h, 0FFh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 004h, 008h, 010h, 010h, 010h, 020h, 010h, 010h, 010h, 008h, 004h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 010h, 010h, 010h, 010h, 000h, 000h, 010h, 010h, 010h, 010h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 040h, 020h, 010h, 010h, 010h, 008h, 010h, 010h, 010h, 020h, 040h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 070h, 099h, 00Eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 008h, 01Ch, 036h, 063h, 063h, 07Fh, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 01Eh, 033h, 061h, 060h, 060h, 061h, 033h, 01Eh, 006h, 003h, 03Eh, 000h, 000h, 000h
|
||||
DB 000h, 000h, 066h, 066h, 000h, 066h, 066h, 066h, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 006h, 00Ch, 018h, 000h, 03Eh, 063h, 07Fh, 060h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 008h, 01Ch, 036h, 000h, 03Ch, 006h, 03Eh, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 066h, 066h, 000h, 03Ch, 006h, 03Eh, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 030h, 018h, 00Ch, 000h, 03Ch, 006h, 03Eh, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 01Ch, 036h, 01Ch, 000h, 03Ch, 006h, 03Eh, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 03Ch, 066h, 060h, 066h, 03Ch, 00Ch, 006h, 03Ch, 000h, 000h, 000h, 000h
|
||||
DB 000h, 008h, 01Ch, 036h, 000h, 03Eh, 063h, 07Fh, 060h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 066h, 066h, 000h, 03Eh, 063h, 07Fh, 060h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 030h, 018h, 00Ch, 000h, 03Eh, 063h, 07Fh, 060h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 066h, 066h, 000h, 038h, 018h, 018h, 018h, 018h, 03Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 018h, 03Ch, 066h, 000h, 038h, 018h, 018h, 018h, 018h, 03Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 03Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 063h, 063h, 008h, 01Ch, 036h, 063h, 063h, 07Fh, 063h, 063h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 01Ch, 036h, 01Ch, 000h, 01Ch, 036h, 063h, 063h, 07Fh, 063h, 063h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 00Ch, 018h, 030h, 000h, 07Fh, 033h, 030h, 03Eh, 030h, 033h, 07Fh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 06Eh, 03Bh, 01Bh, 07Eh, 0D8h, 0DCh, 077h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 01Fh, 036h, 066h, 066h, 07Fh, 066h, 066h, 066h, 067h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 008h, 01Ch, 036h, 000h, 03Eh, 063h, 063h, 063h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 063h, 063h, 000h, 03Eh, 063h, 063h, 063h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 030h, 018h, 00Ch, 000h, 03Eh, 063h, 063h, 063h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 018h, 03Ch, 066h, 000h, 066h, 066h, 066h, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 030h, 018h, 00Ch, 000h, 066h, 066h, 066h, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 063h, 063h, 000h, 063h, 063h, 063h, 063h, 03Fh, 003h, 006h, 03Ch, 000h, 000h, 000h
|
||||
DB 000h, 063h, 063h, 01Ch, 036h, 063h, 063h, 063h, 063h, 036h, 01Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 063h, 063h, 000h, 063h, 063h, 063h, 063h, 063h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 018h, 018h, 07Eh, 0C3h, 0C0h, 0C0h, 0C3h, 07Eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 01Ch, 036h, 032h, 030h, 078h, 030h, 030h, 030h, 073h, 07Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 0C3h, 066h, 03Ch, 018h, 0FFh, 018h, 0FFh, 018h, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0FCh, 066h, 066h, 07Ch, 062h, 066h, 06Fh, 066h, 066h, 0F3h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 00Eh, 01Bh, 018h, 018h, 018h, 07Eh, 018h, 018h, 018h, 018h, 0D8h, 070h, 000h, 000h, 000h
|
||||
DB 000h, 00Ch, 018h, 030h, 000h, 03Ch, 006h, 03Eh, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 00Ch, 018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 03Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 00Ch, 018h, 030h, 000h, 03Eh, 063h, 063h, 063h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 00Ch, 018h, 030h, 000h, 066h, 066h, 066h, 066h, 066h, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 03Bh, 06Eh, 000h, 06Eh, 033h, 033h, 033h, 033h, 033h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 03Bh, 06Eh, 000h, 063h, 073h, 07Bh, 07Fh, 06Fh, 067h, 063h, 063h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 03Ch, 06Ch, 06Ch, 03Eh, 000h, 07Eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 038h, 06Ch, 06Ch, 038h, 000h, 07Ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 018h, 000h, 018h, 018h, 030h, 063h, 063h, 03Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 07Fh, 060h, 060h, 060h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 07Fh, 003h, 003h, 003h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 060h, 0E0h, 063h, 066h, 06Ch, 018h, 030h, 06Eh, 0C3h, 006h, 00Ch, 01Fh, 000h, 000h, 000h
|
||||
DB 000h, 060h, 0E0h, 063h, 066h, 06Ch, 018h, 033h, 067h, 0CFh, 01Fh, 003h, 003h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 018h, 000h, 018h, 018h, 03Ch, 03Ch, 03Ch, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 01Bh, 036h, 06Ch, 036h, 01Bh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 06Ch, 036h, 01Bh, 036h, 06Ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 000h, 000h
|
||||
DB 055h, 0AAh, 055h, 0AAh, 055h, 0AAh, 055h, 0AAh, 055h, 0AAh, 055h, 0AAh, 055h, 0AAh, 000h, 000h
|
||||
DB 0DDh, 077h, 0DDh, 077h, 0DDh, 077h, 0DDh, 077h, 0DDh, 077h, 0DDh, 077h, 0DDh, 077h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0F8h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 0F8h, 018h, 0F8h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0F6h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0FEh, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0F8h, 018h, 0F8h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 0F6h, 006h, 0F6h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0FEh, 006h, 0F6h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 0F6h, 006h, 0FEh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0FEh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 0F8h, 018h, 0F8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0F8h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01Fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0FFh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0FFh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01Fh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0FFh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0FFh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 01Fh, 018h, 01Fh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 037h, 030h, 03Fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 03Fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 0F7h, 000h, 0FFh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0FFh, 000h, 0F7h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0FFh, 000h, 0FFh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 0F7h, 000h, 0F7h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 0FFh, 000h, 0FFh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0FFh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 0FFh, 000h, 0FFh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0FFh, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 036h, 036h, 03Fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 01Fh, 018h, 01Fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 01Fh, 018h, 01Fh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03Fh, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0FFh, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 0FFh, 018h, 0FFh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0F8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01Fh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 000h, 000h
|
||||
DB 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 000h, 000h
|
||||
DB 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 00Fh, 000h, 000h
|
||||
DB 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 03Bh, 06Eh, 06Ch, 06Ch, 06Eh, 03Bh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 03Eh, 063h, 07Eh, 063h, 063h, 07Eh, 060h, 060h, 020h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 07Fh, 063h, 063h, 060h, 060h, 060h, 060h, 060h, 060h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 07Fh, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 07Fh, 063h, 030h, 018h, 00Ch, 018h, 030h, 063h, 07Fh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 03Fh, 06Ch, 06Ch, 06Ch, 06Ch, 038h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 033h, 033h, 033h, 033h, 03Eh, 030h, 030h, 060h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 03Bh, 06Eh, 00Ch, 00Ch, 00Ch, 00Ch, 00Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 07Eh, 018h, 03Ch, 066h, 066h, 066h, 03Ch, 018h, 07Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 01Ch, 036h, 063h, 063h, 07Fh, 063h, 063h, 036h, 01Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 01Ch, 036h, 063h, 063h, 063h, 036h, 036h, 036h, 077h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 01Eh, 030h, 018h, 00Ch, 03Eh, 066h, 066h, 066h, 03Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 07Eh, 0DBh, 0DBh, 07Eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 003h, 006h, 07Eh, 0DBh, 0DBh, 0F3h, 07Eh, 060h, 0C0h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 01Ch, 030h, 060h, 060h, 07Ch, 060h, 060h, 030h, 01Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 03Eh, 063h, 063h, 063h, 063h, 063h, 063h, 063h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 07Fh, 000h, 000h, 07Fh, 000h, 000h, 07Fh, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 018h, 018h, 0FFh, 018h, 018h, 018h, 000h, 0FFh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 030h, 018h, 00Ch, 006h, 00Ch, 018h, 030h, 000h, 07Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 00Ch, 018h, 030h, 060h, 030h, 018h, 00Ch, 000h, 07Eh, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 00Eh, 01Bh, 01Bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h
|
||||
DB 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0D8h, 0D8h, 070h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 018h, 018h, 000h, 000h, 0FFh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 03Bh, 06Eh, 000h, 03Bh, 06Eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 038h, 06Ch, 06Ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 00Fh, 00Ch, 00Ch, 00Ch, 00Ch, 00Ch, 0ECh, 06Ch, 03Ch, 01Ch, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 0D8h, 06Ch, 06Ch, 06Ch, 06Ch, 06Ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 070h, 0D8h, 030h, 060h, 0C8h, 0F8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 03Eh, 03Eh, 03Eh, 03Eh, 03Eh, 03Eh, 000h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
|
@ -1,128 +0,0 @@
|
|||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07Eh, 081h, 0A5h, 081h, 0BDh, 099h, 081h, 07Eh
|
||||
DB 07Eh, 0FFh, 0DBh, 0FFh, 0C3h, 0E7h, 0FFh, 07Eh, 06Ch, 0FEh, 0FEh, 0FEh, 07Ch, 038h, 010h, 000h
|
||||
DB 010h, 038h, 07Ch, 0FEh, 07Ch, 038h, 010h, 000h, 038h, 07Ch, 038h, 0FEh, 0FEh, 07Ch, 038h, 07Ch
|
||||
DB 010h, 010h, 038h, 07Ch, 0FEh, 07Ch, 038h, 07Ch, 000h, 000h, 018h, 03Ch, 03Ch, 018h, 000h, 000h
|
||||
DB 0FFh, 0FFh, 0E7h, 0C3h, 0C3h, 0E7h, 0FFh, 0FFh, 000h, 03Ch, 066h, 042h, 042h, 066h, 03Ch, 000h
|
||||
DB 0FFh, 0C3h, 099h, 0BDh, 0BDh, 099h, 0C3h, 0FFh, 00Fh, 007h, 00Fh, 07Dh, 0CCh, 0CCh, 0CCh, 078h
|
||||
DB 03Ch, 066h, 066h, 066h, 03Ch, 018h, 07Eh, 018h, 03Fh, 033h, 03Fh, 030h, 030h, 070h, 0F0h, 0E0h
|
||||
DB 07Fh, 063h, 07Fh, 063h, 063h, 067h, 0E6h, 0C0h, 099h, 05Ah, 03Ch, 0E7h, 0E7h, 03Ch, 05Ah, 099h
|
||||
DB 080h, 0E0h, 0F8h, 0FEh, 0F8h, 0E0h, 080h, 000h, 002h, 00Eh, 03Eh, 0FEh, 03Eh, 00Eh, 002h, 000h
|
||||
DB 018h, 03Ch, 07Eh, 018h, 018h, 07Eh, 03Ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
|
||||
DB 07Fh, 0DBh, 0DBh, 07Bh, 01Bh, 01Bh, 01Bh, 000h, 03Eh, 063h, 038h, 06Ch, 06Ch, 038h, 0CCh, 078h
|
||||
DB 000h, 000h, 000h, 000h, 07Eh, 07Eh, 07Eh, 000h, 018h, 03Ch, 07Eh, 018h, 07Eh, 03Ch, 018h, 0FFh
|
||||
DB 018h, 03Ch, 07Eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07Eh, 03Ch, 018h, 000h
|
||||
DB 000h, 018h, 00Ch, 0FEh, 00Ch, 018h, 000h, 000h, 000h, 030h, 060h, 0FEh, 060h, 030h, 000h, 000h
|
||||
DB 000h, 000h, 0C0h, 0C0h, 0C0h, 0FEh, 000h, 000h, 000h, 024h, 066h, 0FFh, 066h, 024h, 000h, 000h
|
||||
DB 000h, 018h, 03Ch, 07Eh, 0FFh, 0FFh, 000h, 000h, 000h, 0FFh, 0FFh, 07Eh, 03Ch, 018h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 040h, 040h, 040h, 040h, 040h, 000h, 040h, 000h
|
||||
DB 090h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 050h, 050h, 0F8h, 050h, 0F8h, 050h, 050h, 000h
|
||||
DB 020h, 078h, 0A0h, 070h, 028h, 0F0h, 020h, 000h, 0C8h, 0C8h, 010h, 020h, 040h, 098h, 098h, 000h
|
||||
DB 070h, 088h, 050h, 020h, 054h, 088h, 074h, 000h, 060h, 020h, 040h, 000h, 000h, 000h, 000h, 000h
|
||||
DB 020h, 040h, 080h, 080h, 080h, 040h, 020h, 000h, 020h, 010h, 008h, 008h, 008h, 010h, 020h, 000h
|
||||
DB 000h, 020h, 0A8h, 070h, 070h, 0A8h, 020h, 000h, 000h, 000h, 020h, 020h, 0F8h, 020h, 020h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 060h, 020h, 040h, 000h, 000h, 000h, 000h, 0F8h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 000h, 060h, 060h, 000h, 002h, 004h, 008h, 010h, 020h, 040h, 080h, 000h
|
||||
DB 070h, 088h, 098h, 0A8h, 0C8h, 088h, 070h, 000h, 040h, 0C0h, 040h, 040h, 040h, 040h, 0E0h, 000h
|
||||
DB 070h, 088h, 008h, 010h, 020h, 040h, 0F8h, 000h, 070h, 088h, 008h, 010h, 008h, 088h, 070h, 000h
|
||||
DB 008h, 018h, 028h, 048h, 0FCh, 008h, 008h, 000h, 0F8h, 080h, 080h, 0F0h, 008h, 088h, 070h, 000h
|
||||
DB 020h, 040h, 080h, 0F0h, 088h, 088h, 070h, 000h, 0F8h, 008h, 010h, 020h, 040h, 040h, 040h, 000h
|
||||
DB 070h, 088h, 088h, 070h, 088h, 088h, 070h, 000h, 070h, 088h, 088h, 078h, 008h, 008h, 070h, 000h
|
||||
DB 000h, 000h, 060h, 060h, 000h, 060h, 060h, 000h, 000h, 000h, 060h, 060h, 000h, 060h, 060h, 020h
|
||||
DB 010h, 020h, 040h, 080h, 040h, 020h, 010h, 000h, 000h, 000h, 0F8h, 000h, 0F8h, 000h, 000h, 000h
|
||||
DB 080h, 040h, 020h, 010h, 020h, 040h, 080h, 000h, 078h, 084h, 004h, 008h, 010h, 000h, 010h, 000h
|
||||
DB 070h, 088h, 088h, 0A8h, 0B8h, 080h, 078h, 000h, 020h, 050h, 088h, 088h, 0F8h, 088h, 088h, 000h
|
||||
DB 0F0h, 088h, 088h, 0F0h, 088h, 088h, 0F0h, 000h, 070h, 088h, 080h, 080h, 080h, 088h, 070h, 000h
|
||||
DB 0F0h, 088h, 088h, 088h, 088h, 088h, 0F0h, 000h, 0F8h, 080h, 080h, 0E0h, 080h, 080h, 0F8h, 000h
|
||||
DB 0F8h, 080h, 080h, 0E0h, 080h, 080h, 080h, 000h, 070h, 088h, 080h, 080h, 098h, 088h, 078h, 000h
|
||||
DB 088h, 088h, 088h, 0F8h, 088h, 088h, 088h, 000h, 0E0h, 040h, 040h, 040h, 040h, 040h, 0E0h, 000h
|
||||
DB 038h, 010h, 010h, 010h, 010h, 090h, 060h, 000h, 088h, 090h, 0A0h, 0C0h, 0A0h, 090h, 088h, 000h
|
||||
DB 080h, 080h, 080h, 080h, 080h, 080h, 0F8h, 000h, 082h, 0C6h, 0AAh, 092h, 082h, 082h, 082h, 000h
|
||||
DB 084h, 0C4h, 0A4h, 094h, 08Ch, 084h, 084h, 000h, 070h, 088h, 088h, 088h, 088h, 088h, 070h, 000h
|
||||
DB 0F0h, 088h, 088h, 0F0h, 080h, 080h, 080h, 000h, 070h, 088h, 088h, 088h, 0A8h, 090h, 068h, 000h
|
||||
DB 0F0h, 088h, 088h, 0F0h, 0A0h, 090h, 088h, 000h, 070h, 088h, 080h, 070h, 008h, 088h, 070h, 000h
|
||||
DB 0F8h, 020h, 020h, 020h, 020h, 020h, 020h, 000h, 088h, 088h, 088h, 088h, 088h, 088h, 070h, 000h
|
||||
DB 088h, 088h, 088h, 050h, 050h, 020h, 020h, 000h, 082h, 082h, 082h, 082h, 092h, 092h, 06Ch, 000h
|
||||
DB 088h, 088h, 050h, 020h, 050h, 088h, 088h, 000h, 088h, 088h, 088h, 050h, 020h, 020h, 020h, 000h
|
||||
DB 0F8h, 008h, 010h, 020h, 040h, 080h, 0F8h, 000h, 0E0h, 080h, 080h, 080h, 080h, 080h, 0E0h, 000h
|
||||
DB 080h, 040h, 020h, 010h, 008h, 004h, 002h, 000h, 0E0h, 020h, 020h, 020h, 020h, 020h, 0E0h, 000h
|
||||
DB 020h, 050h, 088h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0F8h, 000h
|
||||
DB 040h, 020h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 070h, 008h, 078h, 088h, 074h, 000h
|
||||
DB 080h, 080h, 0B0h, 0C8h, 088h, 0C8h, 0B0h, 000h, 000h, 000h, 070h, 088h, 080h, 088h, 070h, 000h
|
||||
DB 008h, 008h, 068h, 098h, 088h, 098h, 068h, 000h, 000h, 000h, 070h, 088h, 0F8h, 080h, 070h, 000h
|
||||
DB 030h, 048h, 040h, 0E0h, 040h, 040h, 040h, 000h, 000h, 000h, 034h, 048h, 048h, 038h, 008h, 030h
|
||||
DB 080h, 080h, 0B0h, 0C8h, 088h, 088h, 088h, 000h, 020h, 000h, 060h, 020h, 020h, 020h, 070h, 000h
|
||||
DB 010h, 000h, 030h, 010h, 010h, 010h, 090h, 060h, 080h, 080h, 088h, 090h, 0A0h, 0D0h, 088h, 000h
|
||||
DB 0C0h, 040h, 040h, 040h, 040h, 040h, 0E0h, 000h, 000h, 000h, 0ECh, 092h, 092h, 092h, 092h, 000h
|
||||
DB 000h, 000h, 0B0h, 0C8h, 088h, 088h, 088h, 000h, 000h, 000h, 070h, 088h, 088h, 088h, 070h, 000h
|
||||
DB 000h, 000h, 0B0h, 0C8h, 0C8h, 0B0h, 080h, 080h, 000h, 000h, 068h, 098h, 098h, 068h, 008h, 008h
|
||||
DB 000h, 000h, 0B0h, 0C8h, 080h, 080h, 080h, 000h, 000h, 000h, 078h, 080h, 070h, 008h, 0F0h, 000h
|
||||
DB 040h, 040h, 0E0h, 040h, 040h, 050h, 020h, 000h, 000h, 000h, 088h, 088h, 088h, 098h, 068h, 000h
|
||||
DB 000h, 000h, 088h, 088h, 088h, 050h, 020h, 000h, 000h, 000h, 082h, 082h, 092h, 092h, 06Ch, 000h
|
||||
DB 000h, 000h, 088h, 050h, 020h, 050h, 088h, 000h, 000h, 000h, 088h, 088h, 098h, 068h, 008h, 070h
|
||||
DB 000h, 000h, 0F8h, 010h, 020h, 040h, 0F8h, 000h, 010h, 020h, 020h, 040h, 020h, 020h, 010h, 000h
|
||||
DB 040h, 040h, 040h, 000h, 040h, 040h, 040h, 000h, 040h, 020h, 020h, 010h, 020h, 020h, 040h, 000h
|
||||
DB 076h, 0DCh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06Ch, 0C6h, 0C6h, 0FEh, 000h
|
||||
DB 03Eh, 060h, 0C0h, 060h, 03Eh, 008h, 004h, 018h, 000h, 048h, 000h, 0CCh, 0CCh, 0CCh, 0CCh, 076h
|
||||
DB 018h, 020h, 000h, 078h, 0CCh, 0FCh, 0C0h, 078h, 010h, 028h, 000h, 078h, 00Ch, 07Ch, 0CCh, 076h
|
||||
DB 000h, 048h, 000h, 078h, 00Ch, 07Ch, 0CCh, 076h, 030h, 008h, 000h, 078h, 00Ch, 07Ch, 0CCh, 076h
|
||||
DB 048h, 030h, 000h, 078h, 00Ch, 07Ch, 0CCh, 076h, 078h, 0CCh, 0C0h, 0CCh, 078h, 010h, 008h, 030h
|
||||
DB 030h, 048h, 084h, 078h, 0CCh, 0FCh, 0C0h, 078h, 000h, 048h, 000h, 078h, 0CCh, 0FCh, 0C0h, 078h
|
||||
DB 030h, 008h, 000h, 078h, 0CCh, 0FCh, 0C0h, 078h, 000h, 048h, 000h, 030h, 030h, 030h, 030h, 030h
|
||||
DB 030h, 048h, 000h, 030h, 030h, 030h, 030h, 030h, 060h, 010h, 000h, 030h, 030h, 030h, 030h, 030h
|
||||
DB 048h, 000h, 030h, 078h, 0CCh, 0CCh, 0FCh, 0CCh, 030h, 048h, 030h, 048h, 084h, 0FCh, 084h, 084h
|
||||
DB 018h, 020h, 000h, 0F8h, 080h, 0F0h, 080h, 0F8h, 000h, 000h, 000h, 066h, 019h, 077h, 088h, 077h
|
||||
DB 000h, 000h, 000h, 00Fh, 014h, 03Eh, 044h, 087h, 030h, 048h, 084h, 078h, 0CCh, 0CCh, 0CCh, 078h
|
||||
DB 000h, 048h, 000h, 078h, 0CCh, 0CCh, 0CCh, 078h, 060h, 010h, 000h, 078h, 0CCh, 0CCh, 0CCh, 078h
|
||||
DB 030h, 048h, 084h, 000h, 0CCh, 0CCh, 0CCh, 076h, 060h, 010h, 000h, 0CCh, 0CCh, 0CCh, 0CCh, 076h
|
||||
DB 048h, 000h, 0CCh, 0CCh, 0CCh, 07Ch, 00Ch, 0F8h, 044h, 000h, 038h, 06Ch, 0C6h, 0C6h, 06Ch, 038h
|
||||
DB 024h, 000h, 066h, 066h, 066h, 066h, 066h, 03Ch, 000h, 008h, 01Ch, 028h, 028h, 01Ch, 008h, 000h
|
||||
DB 01Ch, 022h, 020h, 070h, 020h, 022h, 05Ch, 000h, 044h, 028h, 010h, 010h, 038h, 010h, 038h, 010h
|
||||
DB 0F0h, 088h, 08Ah, 0F7h, 082h, 082h, 083h, 000h, 006h, 008h, 008h, 03Ch, 010h, 010h, 060h, 000h
|
||||
DB 018h, 020h, 000h, 078h, 00Ch, 07Ch, 0CCh, 076h, 018h, 020h, 000h, 030h, 030h, 030h, 030h, 030h
|
||||
DB 018h, 020h, 000h, 078h, 0CCh, 0CCh, 0CCh, 078h, 018h, 020h, 000h, 0CCh, 0CCh, 0CCh, 0CCh, 076h
|
||||
DB 080h, 078h, 004h, 0F8h, 0CCh, 0CCh, 0CCh, 0CCh, 080h, 07Eh, 001h, 0C6h, 0E6h, 0D6h, 0CEh, 0C6h
|
||||
DB 000h, 078h, 00Ch, 07Ch, 0CCh, 076h, 000h, 0FEh, 000h, 078h, 0CCh, 0CCh, 0CCh, 078h, 000h, 0FCh
|
||||
DB 000h, 000h, 018h, 018h, 030h, 060h, 066h, 03Ch, 0FFh, 080h, 080h, 080h, 000h, 000h, 000h, 000h
|
||||
DB 0FFh, 001h, 001h, 001h, 000h, 000h, 000h, 000h, 040h, 0C4h, 048h, 050h, 026h, 049h, 082h, 007h
|
||||
DB 040h, 0C4h, 048h, 050h, 026h, 04Ah, 09Fh, 002h, 000h, 030h, 000h, 030h, 030h, 030h, 030h, 030h
|
||||
DB 000h, 012h, 024h, 048h, 090h, 048h, 024h, 012h, 000h, 048h, 024h, 012h, 009h, 012h, 024h, 048h
|
||||
DB 049h, 000h, 092h, 000h, 049h, 000h, 092h, 000h, 06Dh, 000h, 0B6h, 000h, 06Dh, 000h, 0B6h, 000h
|
||||
DB 0AAh, 055h, 0AAh, 055h, 0AAh, 055h, 0AAh, 055h, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 010h
|
||||
DB 010h, 010h, 010h, 010h, 0F0h, 010h, 010h, 010h, 010h, 010h, 010h, 0F0h, 010h, 0F0h, 010h, 010h
|
||||
DB 028h, 028h, 028h, 028h, 0E8h, 028h, 028h, 028h, 000h, 000h, 000h, 000h, 0F8h, 028h, 028h, 028h
|
||||
DB 000h, 000h, 000h, 0F0h, 010h, 0F0h, 010h, 010h, 028h, 028h, 028h, 0E8h, 008h, 0E8h, 028h, 028h
|
||||
DB 028h, 028h, 028h, 028h, 028h, 028h, 028h, 028h, 000h, 000h, 000h, 0F8h, 008h, 0E8h, 028h, 028h
|
||||
DB 028h, 028h, 028h, 0E8h, 008h, 0F8h, 000h, 000h, 028h, 028h, 028h, 028h, 0F8h, 000h, 000h, 000h
|
||||
DB 010h, 010h, 010h, 0F0h, 010h, 0F0h, 000h, 000h, 000h, 000h, 000h, 000h, 0F0h, 010h, 010h, 010h
|
||||
DB 010h, 010h, 010h, 010h, 01Fh, 000h, 000h, 000h, 010h, 010h, 010h, 010h, 0FFh, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 0FFh, 010h, 010h, 010h, 010h, 010h, 010h, 010h, 01Fh, 010h, 010h, 010h
|
||||
DB 000h, 000h, 000h, 000h, 0FFh, 000h, 000h, 000h, 010h, 010h, 010h, 010h, 0FFh, 010h, 010h, 010h
|
||||
DB 010h, 010h, 010h, 01Fh, 010h, 01Fh, 010h, 010h, 028h, 028h, 028h, 028h, 03Fh, 028h, 028h, 028h
|
||||
DB 028h, 028h, 028h, 02Fh, 020h, 03Fh, 000h, 000h, 000h, 000h, 000h, 03Fh, 020h, 02Fh, 028h, 028h
|
||||
DB 028h, 028h, 028h, 0EFh, 000h, 0FFh, 000h, 000h, 000h, 000h, 000h, 0FFh, 000h, 0EFh, 028h, 028h
|
||||
DB 028h, 028h, 028h, 02Fh, 020h, 02Fh, 028h, 028h, 000h, 000h, 000h, 0FFh, 000h, 0FFh, 000h, 000h
|
||||
DB 028h, 028h, 028h, 0EFh, 000h, 0EFh, 028h, 028h, 010h, 010h, 010h, 0FFh, 000h, 0FFh, 000h, 000h
|
||||
DB 028h, 028h, 028h, 028h, 0FFh, 000h, 000h, 000h, 000h, 000h, 000h, 0FFh, 000h, 0FFh, 010h, 010h
|
||||
DB 000h, 000h, 000h, 000h, 0FFh, 028h, 028h, 028h, 028h, 028h, 028h, 028h, 03Fh, 000h, 000h, 000h
|
||||
DB 010h, 010h, 010h, 01Fh, 010h, 01Fh, 000h, 000h, 000h, 000h, 000h, 01Fh, 010h, 01Fh, 010h, 010h
|
||||
DB 000h, 000h, 000h, 000h, 03Fh, 028h, 028h, 028h, 028h, 028h, 028h, 028h, 0FFh, 028h, 028h, 028h
|
||||
DB 010h, 010h, 010h, 0FFh, 010h, 0FFh, 010h, 010h, 010h, 010h, 010h, 010h, 0F0h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 01Fh, 010h, 010h, 010h, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh
|
||||
DB 000h, 000h, 000h, 000h, 0FFh, 0FFh, 0FFh, 000h, 0E0h, 0E0h, 0E0h, 0E0h, 0E0h, 0E0h, 0E0h, 0E0h
|
||||
DB 007h, 007h, 007h, 007h, 007h, 007h, 007h, 007h, 0FFh, 0FFh, 0FFh, 0FFh, 000h, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 002h, 034h, 04Ch, 04Ch, 032h, 000h, 05Ch, 022h, 022h, 03Ch, 044h, 044h, 078h
|
||||
DB 07Eh, 042h, 042h, 040h, 040h, 040h, 040h, 040h, 000h, 000h, 002h, 07Ch, 0A8h, 028h, 028h, 044h
|
||||
DB 000h, 07Eh, 061h, 030h, 018h, 008h, 010h, 020h, 000h, 000h, 008h, 07Fh, 088h, 088h, 088h, 070h
|
||||
DB 000h, 000h, 000h, 022h, 044h, 044h, 07Ah, 080h, 000h, 000h, 000h, 07Ch, 010h, 010h, 010h, 010h
|
||||
DB 000h, 01Ch, 008h, 03Eh, 041h, 041h, 041h, 03Eh, 000h, 000h, 038h, 044h, 044h, 07Ch, 044h, 044h
|
||||
DB 03Ch, 066h, 0C3h, 0C3h, 0C3h, 066h, 024h, 066h, 00Ch, 010h, 008h, 01Ch, 022h, 022h, 022h, 01Ch
|
||||
DB 000h, 000h, 000h, 000h, 06Ch, 092h, 092h, 06Ch, 000h, 001h, 01Ah, 026h, 02Ah, 032h, 02Ch, 040h
|
||||
DB 000h, 018h, 020h, 020h, 030h, 020h, 020h, 018h, 000h, 03Ch, 042h, 042h, 042h, 042h, 042h, 042h
|
||||
DB 000h, 000h, 07Eh, 000h, 07Eh, 000h, 07Eh, 000h, 000h, 008h, 008h, 03Eh, 008h, 008h, 000h, 03Eh
|
||||
DB 000h, 010h, 008h, 004h, 008h, 010h, 000h, 03Eh, 000h, 004h, 008h, 010h, 008h, 004h, 000h, 03Eh
|
||||
DB 000h, 006h, 009h, 009h, 008h, 008h, 008h, 000h, 000h, 000h, 008h, 008h, 008h, 048h, 048h, 030h
|
||||
DB 000h, 000h, 008h, 000h, 03Eh, 000h, 008h, 000h, 000h, 060h, 092h, 00Ch, 060h, 092h, 00Ch, 000h
|
||||
DB 060h, 090h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 030h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 000h, 020h, 000h, 000h, 000h, 000h, 003h, 004h, 004h, 0C8h, 028h, 010h, 000h
|
||||
DB 000h, 000h, 000h, 07Ch, 042h, 042h, 042h, 000h, 018h, 024h, 008h, 010h, 03Ch, 000h, 000h, 000h
|
||||
DB 000h, 000h, 000h, 03Eh, 03Eh, 03Eh, 03Eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
|
|
@ -1,20 +0,0 @@
|
|||
asm= lzasm /z/t
|
||||
lnk= elink
|
||||
|
||||
all: setup.com
|
||||
|
||||
setup.com: setup.obj
|
||||
$(lnk) setup.obj setup.com /c
|
||||
|
||||
setup.obj:
|
||||
$(asm) setup.asm
|
||||
|
||||
clean:
|
||||
del *.obj
|
||||
del *.exe
|
||||
del *.bak
|
||||
del *.lib
|
||||
del *.com
|
||||
del *.bin
|
||||
del *.sys
|
||||
del *.err
|
|
@ -1,164 +0,0 @@
|
|||
model tiny,stdcall
|
||||
p486
|
||||
locals
|
||||
jumps
|
||||
codeseg
|
||||
option procalign:byte
|
||||
|
||||
org 0100h
|
||||
|
||||
ent equ 32h
|
||||
|
||||
jmp copycos
|
||||
|
||||
message db 0Dh,0Ah,'COS 2000 V1.3.1BetaFr programme d''installation',0Dh,0AH,'Inserez une disquette formatee et appuyez sur entre...',0Dh,0AH,'Attention le contenu de celle ci peut etre altere !!!',0Dh,0AH,'$'
|
||||
message2 db 0Dh,0AH,'Creation du secteur de demarrage...',0Dh,0Ah,'$'
|
||||
message3 db 0Dh,0AH,'Copie des fichiers systeme...',0Dh,0Ah,'$'
|
||||
errormsg db 0Dh,0AH,'Erreur d''installation, contactez moi a COS2000@MULTIMANIA.COM !',0Dh,0AH,'$'
|
||||
ok db 0Dh,0AH,'COS2000 a ete correctement installe, veuillez redemarrer votre PC',0Dh,0AH,'$'
|
||||
files db '*.*',0
|
||||
boot db 'boot.bin',0
|
||||
dat db 'data',0
|
||||
retu db 0Dh,0AH,'$'
|
||||
dta db 43 dup (0)
|
||||
|
||||
copycos:
|
||||
mov ah,9
|
||||
mov dx,offset message
|
||||
int 21h
|
||||
xor ax,ax
|
||||
int 16h
|
||||
mov ah,4ah
|
||||
mov bx,1000h
|
||||
int 21h
|
||||
jc error
|
||||
mov ah,48h
|
||||
mov bx,65536/16
|
||||
int 21h
|
||||
jc error
|
||||
mov fs,ax
|
||||
mov ah,3Bh
|
||||
mov dx,offset dat
|
||||
int 21h
|
||||
jc error
|
||||
mov ah,1Ah
|
||||
mov dx,offset dta
|
||||
int 21h
|
||||
jc error
|
||||
mov ah,4eh
|
||||
xor cx,cx
|
||||
mov dx,offset files
|
||||
int 21h
|
||||
jc error
|
||||
mov ah,09
|
||||
mov dx,offset message3
|
||||
int 21h
|
||||
allfile:
|
||||
mov [byte ptr offset dta+43],'$'
|
||||
mov ah,9
|
||||
mov dx,offset dta+30
|
||||
int 21h
|
||||
push dx
|
||||
mov ah,09
|
||||
mov dx,offset retu
|
||||
int 21h
|
||||
pop dx
|
||||
mov ax,3D00h
|
||||
int 21h
|
||||
jc error
|
||||
mov bx,ax
|
||||
mov ax,4202h
|
||||
xor cx,cx
|
||||
xor dx,dx
|
||||
int 21h
|
||||
jc error
|
||||
cmp dx,0
|
||||
jne error
|
||||
cmp ax,0
|
||||
je error
|
||||
mov bp,ax
|
||||
mov ax,4200h
|
||||
xor cx,cx
|
||||
xor dx,dx
|
||||
int 21h
|
||||
jc error
|
||||
push fs
|
||||
pop ds
|
||||
mov ah,3fh
|
||||
mov cx,0FFFFh
|
||||
xor dx,dx
|
||||
int 21h
|
||||
push cs
|
||||
pop ds
|
||||
jc error
|
||||
mov ah,3eh
|
||||
int 21h
|
||||
jc error
|
||||
mov ah,3ch
|
||||
push cs
|
||||
pop es
|
||||
mov di,offset dta+30-3
|
||||
mov [word ptr di],":a"
|
||||
mov [byte ptr di+2],"\"
|
||||
xor cx,cx
|
||||
mov dx,di
|
||||
int 21h
|
||||
jc error
|
||||
mov bx,ax
|
||||
push fs
|
||||
pop ds
|
||||
xor dx,dx
|
||||
mov ah,40h
|
||||
mov cx,bp
|
||||
int 21h
|
||||
push cs
|
||||
pop ds
|
||||
jc error
|
||||
mov ah,3eh
|
||||
int 21h
|
||||
jc error
|
||||
mov ah,4fh
|
||||
int 21h
|
||||
jnc allfile
|
||||
mov ah,09
|
||||
mov dx,offset message2
|
||||
int 21h
|
||||
mov ax,3D00h
|
||||
mov dx,offset boot
|
||||
int 21h
|
||||
jc error
|
||||
push fs
|
||||
pop ds
|
||||
mov ah,3fh
|
||||
mov cx,0FFFFh
|
||||
xor dx,dx
|
||||
int 21h
|
||||
push cs
|
||||
pop ds
|
||||
jc error
|
||||
mov ah,3eh
|
||||
int 21h
|
||||
jc error
|
||||
push fs
|
||||
pop es
|
||||
mov ax,0301h
|
||||
mov dx,0
|
||||
mov cx,0001h
|
||||
xor bx,bx
|
||||
int 13h
|
||||
mov ah,09
|
||||
mov dx,offset ok
|
||||
int 21h
|
||||
xor ax,ax
|
||||
int 16h
|
||||
ret
|
||||
|
||||
|
||||
error:
|
||||
mov ah,09
|
||||
mov dx,offset errormsg
|
||||
int 21h
|
||||
xor ax,ax
|
||||
int 16h
|
||||
ret
|
||||
|
BIN
install/setup.sh
|
@ -1,121 +0,0 @@
|
|||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!-- C++Builder XML Project -->
|
||||
<PROJECT>
|
||||
<MACROS>
|
||||
<VERSION value="BCB.06.00"/>
|
||||
<PROJECT value="setup.exe"/>
|
||||
<OBJFILES value="setup.obj Unit1.obj"/>
|
||||
<RESFILES value="setup.res"/>
|
||||
<IDLFILES value=""/>
|
||||
<IDLGENFILES value=""/>
|
||||
<DEFFILE value=""/>
|
||||
<RESDEPEN value="$(RESFILES) Unit1.dfm"/>
|
||||
<LIBFILES value=""/>
|
||||
<LIBRARIES value="rtl.lib vcl.lib"/>
|
||||
<SPARELIBS value="vcl.lib rtl.lib"/>
|
||||
<PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi
|
||||
vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi
|
||||
teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi
|
||||
dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi
|
||||
inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi
|
||||
bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi
|
||||
indy.bpi bcb2kaxserver.bpi pop.bpi IcsBcb50.bpi bcbshlctrls.bpi"/>
|
||||
<PATHCPP value=".;"/>
|
||||
<PATHPAS value=".;"/>
|
||||
<PATHRC value=".;"/>
|
||||
<PATHASM value=".;"/>
|
||||
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
|
||||
<RELEASELIBPATH value="$(BCB)\lib\release"/>
|
||||
<LINKER value="ilink32"/>
|
||||
<USERDEFINES value=""/>
|
||||
<SYSDEFINES value="_RTLDLL;NO_STRICT"/>
|
||||
<MAINSOURCE value="setup.cpp"/>
|
||||
<INCLUDEPATH value="E:\CBuilder6\Projects;"C:\Documents and Settings\niko\Bureau\Nouveau dossier";$(BCB)\include;$(BCB)\include\vcl"/>
|
||||
<LIBPATH value="E:\CBuilder6\Projects;"C:\Documents and Settings\niko\Bureau\Nouveau dossier";$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib"/>
|
||||
<WARNINGS value="-w-par"/>
|
||||
<OTHERFILES value=""/>
|
||||
</MACROS>
|
||||
<OPTIONS>
|
||||
<IDLCFLAGS value="-IE:\CBuilder6\Projects
|
||||
-I"C:\Documents and Settings\niko\Bureau\Nouveau dossier" -I$(BCB)\include
|
||||
-I$(BCB)\include\vcl -src_suffix cpp -boa"/>
|
||||
<CFLAG1 value="-O2 -H=$(BCB)\lib\vcl60.csm -Hc -w- -Vx -Ve -X- -a8 -b- -k- -vi -c -tW -tWM"/>
|
||||
<PFLAGS value="-$Y- -$L- -$D- -$A8 -v -JPHNE -M"/>
|
||||
<RFLAGS value=""/>
|
||||
<AFLAGS value="/mx /w2 /zn"/>
|
||||
<LFLAGS value="-D"" -aa -Tpe -x -Gn"/>
|
||||
<OTHERFILES value=""/>
|
||||
</OPTIONS>
|
||||
<LINKER>
|
||||
<ALLOBJ value="c0w32.obj Memmgr.Lib sysinit.obj $(OBJFILES)"/>
|
||||
<ALLRES value="$(RESFILES)"/>
|
||||
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/>
|
||||
<OTHERFILES value=""/>
|
||||
</LINKER>
|
||||
<FILELIST>
|
||||
<FILE FILENAME="setup.res" FORMNAME="" UNITNAME="setup.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="setup.cpp" FORMNAME="" UNITNAME="setup" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="Unit1.cpp" FORMNAME="Form1" UNITNAME="Unit1" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
</FILELIST>
|
||||
<BUILDTOOLS>
|
||||
</BUILDTOOLS>
|
||||
|
||||
<IDEOPTIONS>
|
||||
[Version Info]
|
||||
IncludeVerInfo=0
|
||||
AutoIncBuild=0
|
||||
MajorVer=1
|
||||
MinorVer=0
|
||||
Release=0
|
||||
Build=0
|
||||
Debug=0
|
||||
PreRelease=0
|
||||
Special=0
|
||||
Private=0
|
||||
DLL=0
|
||||
Locale=1036
|
||||
CodePage=1252
|
||||
|
||||
[Version Info Keys]
|
||||
CompanyName=
|
||||
FileDescription=
|
||||
FileVersion=1.0.0.0
|
||||
InternalName=
|
||||
LegalCopyright=
|
||||
LegalTrademarks=
|
||||
OriginalFilename=
|
||||
ProductName=
|
||||
ProductVersion=1.0.0.0
|
||||
Comments=
|
||||
|
||||
[Debugging]
|
||||
DebugSourceDirs=$(BCB)\source\vcl
|
||||
|
||||
[Parameters]
|
||||
RunParams=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
DebugCWD=
|
||||
HostApplication=
|
||||
RemoteHost=
|
||||
RemotePath=
|
||||
RemoteLauncher=
|
||||
RemoteCWD=
|
||||
RemoteDebug=0
|
||||
|
||||
[Compiler]
|
||||
ShowInfoMsgs=0
|
||||
LinkDebugVcl=0
|
||||
LinkCGLIB=0
|
||||
|
||||
[CORBA]
|
||||
AddServerUnit=1
|
||||
AddClientUnit=1
|
||||
PrecompiledHeaders=1
|
||||
|
||||
[Language]
|
||||
ActiveLang=
|
||||
ProjectLang=
|
||||
RootDir=
|
||||
</IDEOPTIONS>
|
||||
</PROJECT>
|
|
@ -1,33 +0,0 @@
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
#include <vcl.h>
|
||||
#pragma hdrstop
|
||||
//---------------------------------------------------------------------------
|
||||
USEFORM("Unit1.cpp", Form1);
|
||||
//---------------------------------------------------------------------------
|
||||
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
|
||||
{
|
||||
try
|
||||
{
|
||||
Application->Initialize();
|
||||
Application->CreateForm(__classid(TForm1), &Form1);
|
||||
Application->Run();
|
||||
}
|
||||
catch (Exception &exception)
|
||||
{
|
||||
Application->ShowException(&exception);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
try
|
||||
{
|
||||
throw Exception("");
|
||||
}
|
||||
catch (Exception &exception)
|
||||
{
|
||||
Application->ShowException(&exception);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
|
@ -1,166 +0,0 @@
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
#include <vcl.h>
|
||||
#include <winioctl.h>
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
#include <dir.h>
|
||||
#pragma hdrstop
|
||||
|
||||
#include "Unit1.h"
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma package(smart_init)
|
||||
#pragma resource "*.dfm"
|
||||
TForm1 *Form1;
|
||||
HANDLE hDrive;
|
||||
DISK_GEOMETRY dg_flop_geom;
|
||||
AnsiString lecteur="b:";
|
||||
AnsiString device="\\\\.\\"+lecteur;
|
||||
//---------------------------------------------------------------------------
|
||||
__fastcall TForm1::TForm1(TComponent* Owner)
|
||||
: TForm(Owner)
|
||||
{
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
char * GetLastErrorString(void)
|
||||
{
|
||||
LPVOID lpMsgBuf;
|
||||
|
||||
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(LPTSTR) &lpMsgBuf, 0, NULL);
|
||||
|
||||
return (char *)lpMsgBuf;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
ShowMessages(AnsiString msg)
|
||||
{
|
||||
Form1->Memo1->Lines->Add(msg);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TForm1::FormShow(TObject *Sender)
|
||||
{
|
||||
DWORD dwNotUsed;
|
||||
DWORD error=0;
|
||||
|
||||
hDrive = CreateFile(device.c_str(), GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);
|
||||
ShowMessages("Ouverture du peripherique "+lecteur);
|
||||
if (hDrive == INVALID_HANDLE_VALUE) {
|
||||
ShowMessages("Erreur : "+AnsiString(GetLastErrorString()));
|
||||
error=1;
|
||||
}
|
||||
if(error!=1&&ShowMessages("Determination de la geometrie ")&&DeviceIoControl(hDrive, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL,0, &dg_flop_geom, sizeof(dg_flop_geom),&dwNotUsed, NULL) == FALSE) {
|
||||
ShowMessages("Erreur : "+AnsiString(GetLastErrorString()));
|
||||
error=1;
|
||||
}
|
||||
if(error!=1&&(dg_flop_geom.MediaType==FixedMedia||dg_flop_geom.MediaType==RemovableMedia||dg_flop_geom.MediaType==Unknown))
|
||||
{
|
||||
ShowMessages("Erreur : Ceci n'est pas une disquette !");
|
||||
error=1;
|
||||
}
|
||||
if (error!=1&&ShowMessages("Positionnement sur le secteur 0")&&SetFilePointer(hDrive, 0, NULL, FILE_BEGIN) == -1) {
|
||||
ShowMessages("Erreur : "+AnsiString(GetLastErrorString()));
|
||||
error=1;
|
||||
}
|
||||
if (error!=1)
|
||||
{
|
||||
drive->Caption=lecteur.UpperCase();
|
||||
track->Caption=IntToStr(dg_flop_geom.Cylinders.LowPart);
|
||||
sector->Caption=IntToStr(dg_flop_geom.SectorsPerTrack);
|
||||
size->Caption=IntToStr(dg_flop_geom.BytesPerSector);
|
||||
head->Caption=IntToStr(dg_flop_geom.TracksPerCylinder);
|
||||
allsize->Caption=IntToStr(dg_flop_geom.BytesPerSector*dg_flop_geom.Cylinders.LowPart*dg_flop_geom.SectorsPerTrack*dg_flop_geom.TracksPerCylinder);
|
||||
allsector->Caption=IntToStr(dg_flop_geom.Cylinders.LowPart*dg_flop_geom.SectorsPerTrack*dg_flop_geom.TracksPerCylinder);
|
||||
}
|
||||
else
|
||||
{
|
||||
CloseHandle(hDrive);
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TForm1::Button1Click(TObject *Sender)
|
||||
{
|
||||
if (hDrive == NULL||dg_flop_geom.TracksPerCylinder>2||dg_flop_geom.TracksPerCylinder==0)
|
||||
|
||||
{
|
||||
ShowMessages("Aucun support valide detecté !");
|
||||
}
|
||||
else
|
||||
{
|
||||
int fdboot;
|
||||
DWORD error=0;
|
||||
DWORD dwBsWritten;
|
||||
char * buffer;
|
||||
AnsiString bootfile="data/boot.bin";
|
||||
ShowMessages("Allocation de mémoire ");
|
||||
buffer = (char *)malloc(dg_flop_geom.BytesPerSector);
|
||||
ShowMessages("Ouverture et installation du fichier de boot "+bootfile);
|
||||
if ((fdboot = _rtl_open(bootfile.c_str(),O_RDONLY | O_BINARY)) == -1 )
|
||||
{
|
||||
ShowMessages("Erreur : Fichier de boot introuvable");
|
||||
error=1;
|
||||
}
|
||||
if (error!=1&&_read(fdboot, buffer, dg_flop_geom.BytesPerSector)!= dg_flop_geom.BytesPerSector)
|
||||
{
|
||||
ShowMessages("Erreur : Fichier de boot de taille incorrecte !");
|
||||
error=1;
|
||||
}
|
||||
if (error!=1&&WriteFile(hDrive, buffer, dg_flop_geom.BytesPerSector, &dwBsWritten, NULL) == 0)
|
||||
{
|
||||
ShowMessages("Ecriture impossible sur le secteur de boot !");
|
||||
error=1;
|
||||
}
|
||||
_rtl_close(fdboot);
|
||||
if (error!=1)
|
||||
{
|
||||
struct ffblk files;
|
||||
int done;
|
||||
int number=0;
|
||||
ShowMessages("Détermination des fichiers a copier");
|
||||
done = findfirst("data/*.*",&files,0);
|
||||
while (!done)
|
||||
{
|
||||
number++;
|
||||
done = findnext(&files);
|
||||
}
|
||||
install->Max=number;
|
||||
install->Min=0;
|
||||
install->Position=0;
|
||||
ShowMessages("Copie des fichiers de cos2000");
|
||||
done = findfirst("data/*.*",&files,0);
|
||||
while (!done)
|
||||
{
|
||||
ShowMessages(AnsiString(files.ff_name).LowerCase());
|
||||
if (!CopyFile((AnsiString("data/")+AnsiString(files.ff_name)).c_str(),(lecteur+"\\"+AnsiString(files.ff_name)).c_str(),false))
|
||||
{
|
||||
ShowMessages("Erreur : fichier impossible a copier"+AnsiString(GetLastErrorString()));
|
||||
error=1;
|
||||
break;
|
||||
}
|
||||
done = findnext(&files);
|
||||
install->Position++;
|
||||
}
|
||||
if (!error)
|
||||
{
|
||||
ShowMessages("Installation terminée !");
|
||||
Button2->Visible=false;
|
||||
Button1->Visible=false;
|
||||
Button3->Visible=true;
|
||||
}
|
||||
else
|
||||
ShowMessages("Installation echoué !");
|
||||
}
|
||||
free(buffer);
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
|
||||
{
|
||||
CloseHandle(hDrive);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TForm1::Button3Click(TObject *Sender)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
|
@ -1,184 +0,0 @@
|
|||
object Form1: TForm1
|
||||
Left = 418
|
||||
Top = 273
|
||||
Width = 599
|
||||
Height = 371
|
||||
Caption = 'Installation de COS2000'
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnClose = FormClose
|
||||
OnShow = FormShow
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object Button1: TButton
|
||||
Left = 288
|
||||
Top = 304
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'installer...'
|
||||
TabOrder = 0
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object install: TProgressBar
|
||||
Left = 16
|
||||
Top = 264
|
||||
Width = 553
|
||||
Height = 25
|
||||
Min = 0
|
||||
Max = 100
|
||||
TabOrder = 1
|
||||
end
|
||||
object Button2: TButton
|
||||
Left = 208
|
||||
Top = 304
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'support'
|
||||
TabOrder = 2
|
||||
OnClick = FormShow
|
||||
end
|
||||
object Memo1: TMemo
|
||||
Left = 192
|
||||
Top = 24
|
||||
Width = 377
|
||||
Height = 225
|
||||
ReadOnly = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 120
|
||||
Width = 161
|
||||
Height = 129
|
||||
Caption = 'G'#233'om'#233'trie'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
object track: TLabel
|
||||
Left = 96
|
||||
Top = 60
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = 'Aucun'
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 24
|
||||
Top = 60
|
||||
Width = 34
|
||||
Height = 13
|
||||
Caption = 'Pistes :'
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 24
|
||||
Top = 28
|
||||
Width = 48
|
||||
Height = 13
|
||||
Caption = 'Secteurs :'
|
||||
end
|
||||
object sector: TLabel
|
||||
Left = 96
|
||||
Top = 28
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = 'Aucun'
|
||||
end
|
||||
object head: TLabel
|
||||
Left = 96
|
||||
Top = 44
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = 'Aucun'
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 24
|
||||
Top = 44
|
||||
Width = 33
|
||||
Height = 13
|
||||
Caption = 'Tetes :'
|
||||
end
|
||||
object Label8: TLabel
|
||||
Left = 24
|
||||
Top = 84
|
||||
Width = 69
|
||||
Height = 13
|
||||
Caption = 'Taille secteur :'
|
||||
end
|
||||
object size: TLabel
|
||||
Left = 96
|
||||
Top = 84
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = 'Aucun'
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 161
|
||||
Height = 97
|
||||
Caption = 'Support'
|
||||
TabOrder = 5
|
||||
object Label1: TLabel
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 42
|
||||
Height = 13
|
||||
Caption = 'Lecteur :'
|
||||
end
|
||||
object drive: TLabel
|
||||
Left = 88
|
||||
Top = 24
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = 'Aucun'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 24
|
||||
Top = 40
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = 'Taille :'
|
||||
end
|
||||
object allsize: TLabel
|
||||
Left = 88
|
||||
Top = 40
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = 'Aucun'
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 24
|
||||
Top = 56
|
||||
Width = 58
|
||||
Height = 13
|
||||
Caption = 'N'#176'secteurs :'
|
||||
end
|
||||
object allsector: TLabel
|
||||
Left = 88
|
||||
Top = 56
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = 'Aucun'
|
||||
end
|
||||
end
|
||||
object Button3: TButton
|
||||
Left = 248
|
||||
Top = 304
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Quitter'
|
||||
TabOrder = 6
|
||||
Visible = False
|
||||
OnClick = Button3Click
|
||||
end
|
||||
end
|
|
@ -1,47 +0,0 @@
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef Unit1H
|
||||
#define Unit1H
|
||||
//---------------------------------------------------------------------------
|
||||
#include <Classes.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <StdCtrls.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <ComCtrls.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
class TForm1 : public TForm
|
||||
{
|
||||
__published: // IDE-managed Components
|
||||
TButton *Button1;
|
||||
TProgressBar *install;
|
||||
TButton *Button2;
|
||||
TMemo *Memo1;
|
||||
TGroupBox *GroupBox1;
|
||||
TLabel *track;
|
||||
TLabel *Label4;
|
||||
TLabel *Label5;
|
||||
TLabel *sector;
|
||||
TLabel *head;
|
||||
TLabel *Label6;
|
||||
TLabel *Label8;
|
||||
TLabel *size;
|
||||
TGroupBox *GroupBox2;
|
||||
TLabel *Label1;
|
||||
TLabel *drive;
|
||||
TLabel *Label2;
|
||||
TLabel *allsize;
|
||||
TLabel *Label3;
|
||||
TLabel *allsector;
|
||||
TButton *Button3;
|
||||
void __fastcall FormShow(TObject *Sender);
|
||||
void __fastcall Button1Click(TObject *Sender);
|
||||
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
|
||||
void __fastcall Button3Click(TObject *Sender);
|
||||
private: // User declarations
|
||||
public: // User declarations
|
||||
__fastcall TForm1(TComponent* Owner);
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern PACKAGE TForm1 *Form1;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
|
@ -1,4 +0,0 @@
|
|||
This file is used by the project manager only and should be treated like the project file
|
||||
|
||||
|
||||
main
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!-- C++Builder XML Project -->
|
||||
<PROJECT>
|
||||
<MACROS>
|
||||
<VERSION value="BCB.06.00"/>
|
||||
<PROJECT value="setup.exe"/>
|
||||
<OBJFILES value="Unit1.obj"/>
|
||||
<RESFILES value="Setup.res"/>
|
||||
<IDLFILES value=""/>
|
||||
<IDLGENFILES value=""/>
|
||||
<DEFFILE value=""/>
|
||||
<RESDEPEN value="$(RESFILES)"/>
|
||||
<LIBFILES value=""/>
|
||||
<LIBRARIES value=""/>
|
||||
<SPARELIBS value=""/>
|
||||
<PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi
|
||||
vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi
|
||||
teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi
|
||||
dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi
|
||||
inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi
|
||||
bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi
|
||||
indy.bpi bcb2kaxserver.bpi pop.bpi IcsBcb50.bpi bcbshlctrls.bpi"/>
|
||||
<PATHCPP value=".;"/>
|
||||
<PATHPAS value=".;"/>
|
||||
<PATHRC value=".;"/>
|
||||
<PATHASM value=".;"/>
|
||||
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
|
||||
<RELEASELIBPATH value="$(BCB)\lib\release"/>
|
||||
<LINKER value="ilink32"/>
|
||||
<USERDEFINES value=""/>
|
||||
<SYSDEFINES value="NO_STRICT;_NO_VCL;_RTLDLL"/>
|
||||
<MAINSOURCE value="Setup.bpf"/>
|
||||
<INCLUDEPATH value=""..\Nouveau dossier (2)";$(BCB)\include;$(BCB)\include\vcl"/>
|
||||
<LIBPATH value=""..\Nouveau dossier (2)";$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib"/>
|
||||
<WARNINGS value="-w-par"/>
|
||||
<OTHERFILES value=""/>
|
||||
</MACROS>
|
||||
<OPTIONS>
|
||||
<IDLCFLAGS value="-I"..\Nouveau dossier (2)" -I$(BCB)\include -I$(BCB)\include\vcl
|
||||
-src_suffix cpp -boa"/>
|
||||
<CFLAG1 value="-O2 -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM- -c"/>
|
||||
<PFLAGS value="-$Y- -$L- -$D- -$A8 -v -JPHNE -M"/>
|
||||
<RFLAGS value=""/>
|
||||
<AFLAGS value="/mx /w2 /zn"/>
|
||||
<LFLAGS value="-D"" -ap -Tpe -x -Gn"/>
|
||||
<OTHERFILES value=""/>
|
||||
</OPTIONS>
|
||||
<LINKER>
|
||||
<ALLOBJ value="c0x32.obj $(OBJFILES)"/>
|
||||
<ALLRES value="$(RESFILES)"/>
|
||||
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32i.lib"/>
|
||||
<OTHERFILES value=""/>
|
||||
</LINKER>
|
||||
<FILELIST>
|
||||
<FILE FILENAME="Setup.res" FORMNAME="" UNITNAME="Setup.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="Setup.bpf" FORMNAME="" UNITNAME="Setup" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="Unit1.cpp" FORMNAME="" UNITNAME="Unit1" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
</FILELIST>
|
||||
<BUILDTOOLS>
|
||||
</BUILDTOOLS>
|
||||
|
||||
<IDEOPTIONS>
|
||||
[Version Info]
|
||||
IncludeVerInfo=0
|
||||
AutoIncBuild=0
|
||||
MajorVer=1
|
||||
MinorVer=0
|
||||
Release=0
|
||||
Build=0
|
||||
Debug=0
|
||||
PreRelease=0
|
||||
Special=0
|
||||
Private=0
|
||||
DLL=0
|
||||
Locale=1036
|
||||
CodePage=1252
|
||||
|
||||
[Version Info Keys]
|
||||
CompanyName=
|
||||
FileDescription=
|
||||
FileVersion=1.0.0.0
|
||||
InternalName=
|
||||
LegalCopyright=
|
||||
LegalTrademarks=
|
||||
OriginalFilename=
|
||||
ProductName=
|
||||
ProductVersion=1.0.0.0
|
||||
Comments=
|
||||
|
||||
[Debugging]
|
||||
DebugSourceDirs=$(BCB)\source\vcl
|
||||
|
||||
[Parameters]
|
||||
RunParams=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
DebugCWD=
|
||||
HostApplication=
|
||||
RemoteHost=
|
||||
RemotePath=
|
||||
RemoteLauncher=
|
||||
RemoteCWD=
|
||||
RemoteDebug=0
|
||||
|
||||
[Compiler]
|
||||
ShowInfoMsgs=0
|
||||
LinkDebugVcl=0
|
||||
LinkCGLIB=0
|
||||
|
||||
[CORBA]
|
||||
AddServerUnit=1
|
||||
AddClientUnit=1
|
||||
PrecompiledHeaders=1
|
||||
|
||||
[Language]
|
||||
ActiveLang=
|
||||
ProjectLang=
|
||||
RootDir=
|
||||
</IDEOPTIONS>
|
||||
</PROJECT>
|
|
@ -1,135 +0,0 @@
|
|||
//---------------------------------------------------------------------------
|
||||
#include <windows.h>
|
||||
#include <winbase.h>
|
||||
#include <winioctl.h>
|
||||
#include <io.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <dir.h>
|
||||
#pragma hdrstop
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
char * GetLastErrorString(void)
|
||||
{
|
||||
LPVOID lpMsgBuf;
|
||||
|
||||
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(LPTSTR) &lpMsgBuf, 0, NULL);
|
||||
|
||||
return (char *)lpMsgBuf;
|
||||
}
|
||||
|
||||
|
||||
#pragma argsused
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
DWORD dwNotUsed;
|
||||
DWORD error=0;
|
||||
HANDLE hDrive;
|
||||
DISK_GEOMETRY dg_flop_geom;
|
||||
char lecteur[4]="a:\0";
|
||||
char device[7]="\\\\.\\a:\0";
|
||||
int fdboot;
|
||||
DWORD dwBsWritten;
|
||||
char * buffer;
|
||||
char bootfile[14]="data/boot.bin\0";
|
||||
struct ffblk files;
|
||||
int done;
|
||||
int number=0;
|
||||
char src[80];
|
||||
char dest[80];
|
||||
printf("Installation de COS2000\nInserez une disquette et appuyer sur une touche...\n");
|
||||
getchar();
|
||||
hDrive = CreateFile(device, GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);
|
||||
printf("Ouverture du peripherique %s\n",lecteur);
|
||||
if (hDrive == INVALID_HANDLE_VALUE) {
|
||||
printf("Erreur : %s\n",GetLastErrorString());
|
||||
error=1;
|
||||
}
|
||||
if(error!=1&&printf("Determination de la geometrie \n")&&DeviceIoControl(hDrive, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL,0, &dg_flop_geom, sizeof(dg_flop_geom),&dwNotUsed, NULL) == FALSE) {
|
||||
printf("Erreur : %s\n",GetLastErrorString());
|
||||
error=1;
|
||||
}
|
||||
if(error!=1&&(dg_flop_geom.MediaType==FixedMedia||dg_flop_geom.MediaType==RemovableMedia||dg_flop_geom.MediaType==Unknown))
|
||||
{
|
||||
printf("Erreur : Ceci n'est pas une disquette !\n");
|
||||
error=1;
|
||||
}
|
||||
if (error!=1&&printf("Positionnement sur le secteur 0\n")&&SetFilePointer(hDrive, 0, NULL, FILE_BEGIN) == -1) {
|
||||
printf("Erreur : %s\n",GetLastErrorString());
|
||||
error=1;
|
||||
}
|
||||
if (error!=1)
|
||||
{
|
||||
printf("Pistes :%u Secteurs:%u Tetes:%u Taille:%u\n",dg_flop_geom.Cylinders.LowPart,dg_flop_geom.SectorsPerTrack,dg_flop_geom.TracksPerCylinder,dg_flop_geom.BytesPerSector);
|
||||
}
|
||||
else
|
||||
{
|
||||
CloseHandle(hDrive);
|
||||
}
|
||||
if (hDrive == NULL||dg_flop_geom.TracksPerCylinder>2||dg_flop_geom.TracksPerCylinder==0)
|
||||
{
|
||||
printf("Aucun support valide detecte !");
|
||||
error=1;
|
||||
}
|
||||
if (error!=1)
|
||||
{
|
||||
printf("Allocation de memoire\n");
|
||||
buffer = (char *)malloc(dg_flop_geom.BytesPerSector);
|
||||
printf("Ouverture et installation du fichier de boot %s\n",bootfile);
|
||||
}
|
||||
if (error!=1&&(fdboot = _rtl_open(bootfile,O_RDONLY | O_BINARY)) == -1 )
|
||||
{
|
||||
printf("Erreur : Fichier de boot introuvable\n");
|
||||
error=1;
|
||||
}
|
||||
if (error!=1&&_read(fdboot, buffer, dg_flop_geom.BytesPerSector)!= dg_flop_geom.BytesPerSector)
|
||||
{
|
||||
printf("Erreur : Fichier de boot de taille incorrecte !\n");
|
||||
error=1;
|
||||
}
|
||||
if (error!=1&&WriteFile(hDrive, buffer, dg_flop_geom.BytesPerSector, &dwBsWritten, NULL) == 0)
|
||||
{
|
||||
printf("Ecriture impossible sur le secteur de boot !\n");
|
||||
error=1;
|
||||
}
|
||||
if (error!=1)
|
||||
{
|
||||
_rtl_close(fdboot);
|
||||
printf("Determination des fichiers a copier\n\n");
|
||||
done = findfirst("data\\*.*",&files,0);
|
||||
while (!done)
|
||||
{
|
||||
number++;
|
||||
done = findnext(&files);
|
||||
}
|
||||
printf("Copie des fichiers de cos2000\n");
|
||||
done = findfirst("data\\*.*",&files,0);
|
||||
while (!done)
|
||||
{
|
||||
printf("%s\n",files.ff_name);
|
||||
sprintf(src, "data\\%s",files.ff_name);
|
||||
sprintf(dest, "%s\\%s",lecteur,files.ff_name);
|
||||
if (!CopyFile(src,dest,false))
|
||||
{
|
||||
printf("Erreur : fichier impossible a copier %s\n",GetLastErrorString());
|
||||
error=1;
|
||||
break;
|
||||
}
|
||||
done = findnext(&files);
|
||||
}
|
||||
if (!error)
|
||||
{
|
||||
printf("Installation terminee !\nVeuillez redemarrer votre PC afin de charger le systeme");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Installation echoué !");
|
||||
}
|
||||
free(buffer);
|
||||
}
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
20
lib/MAKEFILE
|
@ -1,20 +0,0 @@
|
|||
asm= lzasm /z/t
|
||||
lnk= elink
|
||||
|
||||
all: detect.lib video.lib str0.lib bmp.lib
|
||||
|
||||
.asm.obj:
|
||||
$(asm) $<
|
||||
|
||||
.obj.lib:
|
||||
$(lnk) $< $*.lib
|
||||
|
||||
clean:
|
||||
del *.obj
|
||||
del *.ce
|
||||
del *.bak
|
||||
del *.lib
|
||||
del *.com
|
||||
del *.bin
|
||||
del *.sys
|
||||
del *.err
|
105
lib/bmp.asm
|
@ -1,105 +0,0 @@
|
|||
model tiny,stdcall
|
||||
p586N
|
||||
locals
|
||||
jumps
|
||||
codeseg
|
||||
option procalign:byte
|
||||
|
||||
include "..\include\mem.h"
|
||||
include "..\include\divers.h"
|
||||
include "..\include\bmp.h"
|
||||
|
||||
org 0h
|
||||
|
||||
start:
|
||||
header exe <"CE",1,0,0,offset exports,offset imports,,>
|
||||
|
||||
exporting
|
||||
declare showbmp
|
||||
declare loadbmppalet
|
||||
ende
|
||||
|
||||
importing
|
||||
use VIDEO,showpixel
|
||||
endi
|
||||
|
||||
;==========SHOWBMP=========
|
||||
;Affiche le BMP pointée par DS:%0 en %1, %2
|
||||
;<- DS:%0 BMP, %1 coordonnées X, %2 coordonnées Y
|
||||
;->
|
||||
;==========================
|
||||
PROC showbmp FAR
|
||||
ARG @pointer:word, @x:word, @y:word
|
||||
USES ax,bx,cx,dx,si,di
|
||||
mov si,[@pointer]
|
||||
cmp [word ptr (bmp_file si).bmp_filetype],"MB"
|
||||
jne @@errorshowing
|
||||
mov edi,[(bmp_file si).bmp_bitmapoffset]
|
||||
add di,400h
|
||||
add di,si
|
||||
xor ebx,ebx
|
||||
mov ecx,[(bmp_file si).bmp_height]
|
||||
mov edx,[(bmp_file si).bmp_width]
|
||||
;and dx,11111100b
|
||||
cmp edx,[(bmp_file si).bmp_width]
|
||||
;jae @@noadjust
|
||||
;add dx,4
|
||||
@@noadjust:
|
||||
sub edx,[(bmp_file si).bmp_width]
|
||||
@@bouclette:
|
||||
push bx cx
|
||||
add bx,[@x]
|
||||
add cx,[@y]
|
||||
call [cs:showpixel],bx,cx,[word ptr di]
|
||||
pop cx bx
|
||||
inc bx
|
||||
inc di
|
||||
cmp ebx,[(bmp_file si).bmp_width]
|
||||
jb @@bouclette
|
||||
xor bx,bx
|
||||
;add di,dx
|
||||
dec cx
|
||||
cmp cx,0
|
||||
jne @@bouclette
|
||||
clc
|
||||
ret
|
||||
@@errorshowing:
|
||||
stc
|
||||
ret
|
||||
ENDP showbmp
|
||||
|
||||
|
||||
;==========LOADBMPPALET=========
|
||||
;Charge la palette du BMP pointée par DS:%0
|
||||
;-> DS:%0 BMP
|
||||
;<-
|
||||
;===============================
|
||||
PROC loadbmppalet FAR
|
||||
ARG @pointer:word
|
||||
USES ax,bx,cx,dx,si
|
||||
mov si,[@pointer]
|
||||
mov bx,0400h+36h-4
|
||||
mov cx,100h
|
||||
mov dx, 3c8h
|
||||
@@paletteload:
|
||||
mov al, cl
|
||||
dec al
|
||||
out dx, al
|
||||
inc dx
|
||||
mov al,[bx+si+2]
|
||||
shr al,2
|
||||
out dx, al
|
||||
mov al,[bx+si+1]
|
||||
shr al,2
|
||||
out dx, al
|
||||
mov al,[bx+si]
|
||||
shr al,2
|
||||
out dx, al
|
||||
sub bx,4
|
||||
dec dx
|
||||
dec cl
|
||||
jnz @@paletteload
|
||||
ret
|
||||
ENDP loadbmppalet
|
||||
|
||||
|
762
lib/detect.asm
|
@ -1,762 +0,0 @@
|
|||
model tiny,stdcall
|
||||
p586
|
||||
locals
|
||||
jumps
|
||||
codeseg
|
||||
option procalign:byte
|
||||
|
||||
include "..\include\mem.h"
|
||||
include "..\include\cpu.h"
|
||||
include "..\include\pci.h"
|
||||
|
||||
org 0h
|
||||
|
||||
header exe <"CE",1,0,0,offset exports,,,>
|
||||
|
||||
exporting
|
||||
declare cpuinfo
|
||||
declare setinfo
|
||||
declare pciinfo
|
||||
declare getpciclass
|
||||
declare getpcisubclass
|
||||
declare getcardinfo
|
||||
declare pcireadbyte
|
||||
declare pcireadword
|
||||
declare pcireaddword
|
||||
declare detectvmware
|
||||
ende
|
||||
|
||||
PROC detectvmware FAR
|
||||
USES eax,ebx,ecx,edx
|
||||
mov eax,564D5868h
|
||||
mov ebx,12345h
|
||||
mov ecx,00Ah
|
||||
mov edx,5658h
|
||||
in ax,dx
|
||||
cmp ebx,564D5868h
|
||||
ret
|
||||
endp detectvmware
|
||||
|
||||
;renvoie un pointer dx:ax vers la classe %0
|
||||
PROC getpciclass FAR
|
||||
ARG @class:word
|
||||
USES di
|
||||
mov di,[@class]
|
||||
and di,0FFh
|
||||
shl di,1
|
||||
mov ax,[cs:offset classes+di]
|
||||
mov dx,cs
|
||||
ret
|
||||
endp getpciclass
|
||||
|
||||
;renvoie un pointer dx:ax vers la sous-classe de %1 et de classe %0
|
||||
PROC getpcisubclass FAR
|
||||
ARG @class:word,@subclass:word
|
||||
USES di
|
||||
mov di,[@class]
|
||||
and di,0FFh
|
||||
shl di,1
|
||||
mov di,[cs:offset classesd+di]
|
||||
mov dx,[@subclass]
|
||||
and dx,0FFh
|
||||
cmp dx,80h
|
||||
jne @@suiteac
|
||||
mov ax,offset divers
|
||||
jmp @@found
|
||||
@@suiteac:
|
||||
shl dx,1
|
||||
add di,dx
|
||||
mov ax,[cs:di]
|
||||
@@found:
|
||||
mov dx,cs
|
||||
ret
|
||||
endp getpcisubclass
|
||||
|
||||
divers db 'divers',0
|
||||
|
||||
classes:
|
||||
dw offset class0
|
||||
dw offset class1
|
||||
dw offset class2
|
||||
dw offset class3
|
||||
dw offset class4
|
||||
dw offset class5
|
||||
dw offset class6
|
||||
dw offset class7
|
||||
dw offset class8
|
||||
dw offset class9
|
||||
dw offset class10
|
||||
dw offset class11
|
||||
dw offset class12
|
||||
dw offset class13
|
||||
dw offset class14
|
||||
dw offset class15
|
||||
dw offset class16
|
||||
dw offset class17
|
||||
class0 db 'ancien',0
|
||||
class1 db 'stockage',0
|
||||
class2 db 'reseau',0
|
||||
class3 db 'affichage',0
|
||||
class4 db 'multimedia',0
|
||||
class5 db 'memoire',0
|
||||
class6 db 'pont',0
|
||||
class7 db 'communication',0
|
||||
class8 db 'systeme',0
|
||||
class9 db 'acquisition',0
|
||||
class10 db 'dock',0
|
||||
class11 db 'processeur',0
|
||||
class12 db 'bus serie',0
|
||||
class13 db 'sans fil',0
|
||||
class14 db 'intelligent',0
|
||||
class15 db 'satellite',0
|
||||
class16 db 'cryptage',0
|
||||
class17 db 'traitement signal',0
|
||||
|
||||
|
||||
;Classes et sous classes
|
||||
classesd:
|
||||
dw offset class0d
|
||||
dw offset class1d
|
||||
dw offset class2d
|
||||
dw offset class3d
|
||||
dw offset class4d
|
||||
dw offset class5d
|
||||
dw offset class6d
|
||||
dw offset class7d
|
||||
dw offset class8d
|
||||
dw offset class9d
|
||||
dw offset class10d
|
||||
dw offset class11d
|
||||
dw offset class12d
|
||||
dw offset class13d
|
||||
dw offset class14d
|
||||
dw offset class15d
|
||||
dw offset class16d
|
||||
dw offset class17d
|
||||
|
||||
class0d:
|
||||
dw offset subclass00
|
||||
dw offset subclass01
|
||||
subclass00 db 'divers',0
|
||||
subclass01 db 'vga',0
|
||||
|
||||
class1d:
|
||||
dw offset subclass10
|
||||
dw offset subclass11
|
||||
dw offset subclass12
|
||||
dw offset subclass13
|
||||
dw offset subclass14
|
||||
subclass10 db 'scsi',0
|
||||
subclass11 db 'ide',0
|
||||
subclass12 db 'disquette',0
|
||||
subclass13 db 'ipi',0
|
||||
subclass14 db 'raid',0
|
||||
|
||||
class2d:
|
||||
dw offset subclass20
|
||||
dw offset subclass21
|
||||
dw offset subclass22
|
||||
dw offset subclass23
|
||||
dw offset subclass24
|
||||
subclass20 db 'ethernet',0
|
||||
subclass21 db 'token ring',0
|
||||
subclass22 db 'fddi',0
|
||||
subclass23 db 'atm',0
|
||||
subclass24 db 'isdn',0
|
||||
|
||||
class3d:
|
||||
dw offset subclass30
|
||||
dw offset subclass31
|
||||
dw offset subclass32
|
||||
subclass30 db 'vga',0
|
||||
subclass31 db 'xga',0
|
||||
subclass32 db '3D',0
|
||||
|
||||
class4d:
|
||||
dw offset subclass40
|
||||
dw offset subclass41
|
||||
dw offset subclass42
|
||||
subclass40 db 'video',0
|
||||
subclass41 db 'audio',0
|
||||
subclass42 db 'telephonie',0
|
||||
|
||||
class5d:
|
||||
dw offset subclass50
|
||||
dw offset subclass51
|
||||
subclass50 db 'ram',0
|
||||
subclass51 db 'flash',0
|
||||
|
||||
class6d:
|
||||
dw offset subclass60
|
||||
dw offset subclass61
|
||||
dw offset subclass62
|
||||
dw offset subclass63
|
||||
dw offset subclass64
|
||||
dw offset subclass65
|
||||
dw offset subclass66
|
||||
dw offset subclass67
|
||||
dw offset subclass68
|
||||
subclass60 db 'hote',0
|
||||
subclass61 db 'isa',0
|
||||
subclass62 db 'eisa',0
|
||||
subclass63 db 'mca',0
|
||||
subclass64 db 'pci',0
|
||||
subclass65 db 'pcmcia',0
|
||||
subclass66 db 'nubus',0
|
||||
subclass67 db 'cardbus',0
|
||||
subclass68 db 'RACEway',0
|
||||
|
||||
class7d:
|
||||
dw offset subclass70
|
||||
dw offset subclass71
|
||||
dw offset subclass72
|
||||
dw offset subclass73
|
||||
subclass70 db 'serie',0
|
||||
subclass71 db 'parallele',0
|
||||
subclass72 db 'serie multiport',0
|
||||
subclass73 db 'modem',0
|
||||
|
||||
class8d:
|
||||
dw offset subclass80
|
||||
dw offset subclass81
|
||||
dw offset subclass82
|
||||
dw offset subclass83
|
||||
dw offset subclass84
|
||||
subclass80 db 'pic',0
|
||||
subclass81 db 'dma',0
|
||||
subclass82 db 'timer',0
|
||||
subclass83 db 'rtc',0
|
||||
subclass84 db 'hotplug',0
|
||||
|
||||
class9d:
|
||||
dw offset subclass90
|
||||
dw offset subclass91
|
||||
dw offset subclass92
|
||||
dw offset subclass93
|
||||
dw offset subclass94
|
||||
subclass90 db 'clavier',0
|
||||
subclass91 db 'stylo',0
|
||||
subclass92 db 'souris',0
|
||||
subclass93 db 'scanner',0
|
||||
subclass94 db 'joystick',0
|
||||
|
||||
class10d:
|
||||
dw offset subclass100
|
||||
subclass100 db 'station',0
|
||||
|
||||
class11d:
|
||||
dw offset subclass110
|
||||
dw offset subclass111
|
||||
dw offset subclass112
|
||||
dw offset subclass113
|
||||
dw offset subclass114
|
||||
subclass110 db '386',0
|
||||
subclass111 db '486',0
|
||||
subclass112 db 'pentium',0
|
||||
subclass113 db 'alpha',0
|
||||
subclass114 db 'coprocesseur',0
|
||||
|
||||
class12d:
|
||||
dw offset subclass120
|
||||
dw offset subclass121
|
||||
dw offset subclass122
|
||||
dw offset subclass123
|
||||
dw offset subclass124
|
||||
dw offset subclass125
|
||||
subclass120 db 'firewire',0
|
||||
subclass121 db 'access',0
|
||||
subclass122 db 'ssa',0
|
||||
subclass123 db 'usb',0
|
||||
subclass124 db 'fibre',0
|
||||
subclass125 db 'smbus',0
|
||||
|
||||
class13d:
|
||||
dw offset subclass130
|
||||
dw offset subclass131
|
||||
dw offset subclass132
|
||||
subclass130 db 'irda',0
|
||||
subclass131 db 'ir',0
|
||||
subclass132 db 'rf',0
|
||||
|
||||
class14d:
|
||||
dw offset subclass140
|
||||
subclass140 db 'IO arch',0
|
||||
|
||||
class15d:
|
||||
dw offset subclass150
|
||||
dw offset subclass151
|
||||
dw offset subclass152
|
||||
dw offset subclass153
|
||||
subclass150 db 'tv',0
|
||||
subclass151 db 'audio',0
|
||||
subclass152 db 'voix',0
|
||||
subclass153 db 'donnees',0
|
||||
|
||||
class16d:
|
||||
dw offset subclass160
|
||||
dw offset subclass161
|
||||
subclass160 db 'reseau',0
|
||||
subclass161 db 'jeux',0
|
||||
|
||||
class17d:
|
||||
dw offset subclass170
|
||||
subclass170 db 'dpio',0
|
||||
|
||||
|
||||
;al=bus cl=deviceid ch=func es:di
|
||||
PROC getcardinfo FAR
|
||||
ARG @bus:word,@device:word,@function:word,@pointer:word
|
||||
USES eax,bx,di
|
||||
mov di,[@pointer]
|
||||
cmp [@function],0
|
||||
je @@amultiorfirst
|
||||
call pcireadbyte,[@bus],[@device],0,offset (pcidata).typed
|
||||
and al,multifunction
|
||||
cmp al,0
|
||||
jne @@amultiorfirst
|
||||
mov [word ptr di],0000h
|
||||
jmp @@notexist
|
||||
@@amultiorfirst:
|
||||
xor bx,bx
|
||||
@@goinfos:
|
||||
call pcireadword,[@bus],[@device],[@function],bx
|
||||
inc bl
|
||||
inc bl
|
||||
cmp bl,2
|
||||
ja @@notzarb
|
||||
cmp ax,0FFFFh
|
||||
je @@notexist
|
||||
cmp ax,00000h
|
||||
je @@notexist
|
||||
@@notzarb:
|
||||
mov [ds:di],ax
|
||||
inc di
|
||||
inc di
|
||||
cmp bl,40h
|
||||
jbe @@goinfos
|
||||
clc
|
||||
ret
|
||||
@@notexist:
|
||||
stc
|
||||
ret
|
||||
endp getcardinfo
|
||||
|
||||
;lit un octet du bus %0 device %1 function %2 nø %3 et le met en AL
|
||||
PROC pcireadbyte FAR
|
||||
ARG @bus:word,@device:word,@function:word,@pointer:word
|
||||
USES bx,dx
|
||||
mov al,[byte ptr @bus]
|
||||
mov ah,80h
|
||||
shl eax,16
|
||||
mov ah,[byte ptr @device]
|
||||
shl ah,3
|
||||
or ah,[byte ptr @function]
|
||||
mov bl,[byte ptr @pointer]
|
||||
mov al,bl
|
||||
and al,0fch
|
||||
mov dx,config1addr
|
||||
out dx,eax
|
||||
mov dx,config1data
|
||||
and bl,3
|
||||
or dl,bl
|
||||
in al,dx
|
||||
ret
|
||||
endp pcireadbyte
|
||||
|
||||
;lit 2 octet du bus %0 device %1 function %2 nø %3 et le met en AX
|
||||
PROC pcireadword FAR
|
||||
ARG @bus:word,@device:word,@function:word,@pointer:word
|
||||
USES bx,dx
|
||||
mov al,[byte ptr @bus]
|
||||
mov ah,80h
|
||||
shl eax,16
|
||||
mov ah,[byte ptr @device]
|
||||
shl ah,3
|
||||
or ah,[byte ptr @function]
|
||||
mov bl,[byte ptr @pointer]
|
||||
mov al,bl
|
||||
and al,0fch
|
||||
mov dx,config1addr
|
||||
out dx,eax
|
||||
mov dx,config1data
|
||||
and bl,3
|
||||
or dl,bl
|
||||
in ax,dx
|
||||
ret
|
||||
endp pcireadword
|
||||
|
||||
;lit 4 octet du bus %0 device %1 function %2 nø %3 et le met en EAX
|
||||
PROC pcireaddword FAR
|
||||
ARG @bus:word,@device:word,@function:word,@pointer:word
|
||||
USES bx,dx
|
||||
mov al,[byte ptr @bus]
|
||||
mov ah,80h
|
||||
shl eax,16
|
||||
mov ah,[byte ptr @device]
|
||||
shl ah,3
|
||||
or ah,[byte ptr @function]
|
||||
mov bl,[byte ptr @pointer]
|
||||
mov al,bl
|
||||
and al,0fch
|
||||
mov dx,config1addr
|
||||
out dx,eax
|
||||
mov dx,config1data
|
||||
and bl,3
|
||||
or dl,bl
|
||||
in eax,dx
|
||||
ret
|
||||
endp pcireaddword
|
||||
|
||||
;Prob avec str pci
|
||||
;renvoie en %0 la structure pciinf carry if error
|
||||
PROC pciinfo FAR
|
||||
ARG @pointer:word
|
||||
USES ax,bx,cx,edx,edi
|
||||
mov ax,0B101h
|
||||
xor edi,edi
|
||||
mov edx," PCI"
|
||||
int 1Ah
|
||||
jc @@errorpci
|
||||
cmp dx,04350h
|
||||
jne @@errorpci
|
||||
cmp ah,0
|
||||
jne @@errorpci
|
||||
mov di,[@pointer]
|
||||
mov [(pciinf di).version_major],bh
|
||||
mov [(pciinf di).version_minor],bl
|
||||
mov [(pciinf di).types],al
|
||||
mov [(pciinf di).maxbus],cl
|
||||
clc
|
||||
ret
|
||||
@@errorpci:
|
||||
stc
|
||||
ret
|
||||
endp pciinfo
|
||||
|
||||
|
||||
;retourne en DS:%1 les set supporté du processeur par rapport a la struct %0
|
||||
PROC setinfo FAR
|
||||
ARG @pointer:word,@set:word
|
||||
USES bx,si,di
|
||||
mov di,[@set]
|
||||
lea si,[ds:cpu.mmx]
|
||||
add si,[@pointer]
|
||||
mov bx,offset @@theset
|
||||
@@set:
|
||||
cmp [word ptr cs:bx],0FFFFh
|
||||
je @@endofset
|
||||
cmp [byte ptr si],1
|
||||
jne @@nextset
|
||||
push bx
|
||||
mov bx,[cs:bx]
|
||||
@@put:
|
||||
mov al,[cs:bx]
|
||||
cmp al,0
|
||||
je @@enofput
|
||||
mov [di],al
|
||||
inc bx
|
||||
inc di
|
||||
jmp @@put
|
||||
@@enofput:
|
||||
pop bx
|
||||
@@nextset:
|
||||
inc bx
|
||||
inc bx
|
||||
inc si
|
||||
jmp @@set
|
||||
@@endofset:
|
||||
mov [byte ptr di],0
|
||||
ret
|
||||
|
||||
@@theset dw offset @@mmx
|
||||
dw offset @@mmx2
|
||||
dw offset @@sse
|
||||
dw offset @@sse2
|
||||
dw offset @@sse3
|
||||
dw offset @@fpu
|
||||
dw offset @@now3d
|
||||
dw offset @@now3d2
|
||||
dw offset @@htt
|
||||
dw offset @@apic
|
||||
dw 0FFFFh
|
||||
|
||||
@@mmx db "MMX ",0
|
||||
@@mmx2 db "MMX2 ",0
|
||||
@@now3d db "3dNow! ",0
|
||||
@@now3d2 db "3dNow Extended! ",0
|
||||
@@htt db "HyperThreading",0
|
||||
@@sse db "SSE ",0
|
||||
@@sse2 db "SSE2 ",0
|
||||
@@sse3 db "SSE3 ",0
|
||||
@@apic db "APIC ",0
|
||||
@@fpu db "FPU ",0
|
||||
|
||||
endp setinfo
|
||||
|
||||
;retourne en DS:%0 les capacités du processeur
|
||||
PROC cpuinfo FAR
|
||||
ARG @pointer:word
|
||||
USES eax,ebx,ecx,edx,si,di,ds,es
|
||||
push ds
|
||||
pop es
|
||||
mov di,[@pointer]
|
||||
mov al,0
|
||||
mov cx,size cpu
|
||||
cld
|
||||
rep stosb
|
||||
mov di,[@pointer]
|
||||
call nocpuid ;Test si cpuid est dispo
|
||||
je @@nocpuidatall
|
||||
xor eax,eax
|
||||
cpuid ;Fonction 0 de CPUID
|
||||
mov [dword ptr (cpu di).vendor],ebx ;Vendeur sur 13 octets
|
||||
mov [dword ptr (cpu di+4).vendor],edx
|
||||
mov [dword ptr (cpu di+8).vendor],ecx
|
||||
mov [byte ptr (cpu di+12).vendor],0
|
||||
cmp eax,1
|
||||
jb @@nofonc1
|
||||
mov eax,1
|
||||
cpuid ;Fonction 1 de CPUID
|
||||
mov ebx,eax ;infos de model
|
||||
and ebx,1111b
|
||||
mov [(cpu di).stepping],bl
|
||||
shr eax,4
|
||||
mov ebx,eax
|
||||
and ebx,1111b
|
||||
mov [(cpu di).models],bl
|
||||
shr eax,4
|
||||
mov ebx,eax
|
||||
and ebx,1111b
|
||||
mov [(cpu di).family],bl
|
||||
shr eax,4
|
||||
mov ebx,eax
|
||||
and ebx,11b
|
||||
mov [(cpu di).types],bl
|
||||
shr eax,2
|
||||
mov ebx,eax
|
||||
and ebx,1111b
|
||||
mov [(cpu di).emodels],bl
|
||||
shr eax,4
|
||||
mov [(cpu di).efamily],al
|
||||
mov ebx,edx
|
||||
and ebx,1 ;infos de jeu d'instruction
|
||||
setnz [(cpu di).fpu]
|
||||
mov ebx,edx
|
||||
and ebx,100000000000000000000000b
|
||||
setnz [(cpu di).mmx]
|
||||
mov ebx,edx
|
||||
and ebx,10000000000000000000000000b
|
||||
setnz [(cpu di).sse]
|
||||
mov ebx,edx
|
||||
and ebx,100000000000000000000000000b
|
||||
setnz [(cpu di).sse2]
|
||||
mov ebx,ecx
|
||||
and ebx,1b
|
||||
setnz [(cpu di).sse3]
|
||||
mov ebx,edx
|
||||
and ebx,10000000000000000000000000000b
|
||||
setnz [(cpu di).htt]
|
||||
@@nofonc1:
|
||||
mov eax,80000000h ;Fonction 80000000 de CPUID
|
||||
cpuid
|
||||
cmp eax,80000001h
|
||||
jb @@nofonc8
|
||||
mov eax,80000001h ;Fonction 80000000 de CPUID
|
||||
cpuid
|
||||
mov ebx,edx
|
||||
and ebx,10000000000000000000000b
|
||||
setnz [(cpu di).mmx2]
|
||||
mov ebx,edx
|
||||
and ebx,1000000000000000000000000000000b
|
||||
setnz [(cpu di).now3d]
|
||||
mov ebx,edx
|
||||
and ebx,10000000000000000000000000000000b
|
||||
setnz [(cpu di).now3d2]
|
||||
mov ebx,edx
|
||||
and ebx,1000000000b
|
||||
setnz [(cpu di).apic]
|
||||
@@nofonc8:
|
||||
mov si,offset @@marks
|
||||
push cs
|
||||
pop ds
|
||||
@@search:
|
||||
mov di,[@pointer]
|
||||
mov cx,12
|
||||
cld
|
||||
rep cmpsb
|
||||
jne @@notthegood
|
||||
cmp cx,0
|
||||
jne @@notthegood
|
||||
mov cl,[si]
|
||||
inc si
|
||||
mov di,[@pointer]
|
||||
cld
|
||||
rep movsb
|
||||
mov al,0
|
||||
stosb
|
||||
mov di,[@pointer]
|
||||
cmp [es:(cpu di).family],15
|
||||
jne @@notextended
|
||||
mov al,[es:(cpu di).efamily]
|
||||
mov ah,[es:(cpu di).emodels]
|
||||
mov di,[si+2]
|
||||
jmp @@searchmodel
|
||||
@@notextended:
|
||||
mov al,[es:(cpu di).family]
|
||||
mov ah,[es:(cpu di).models]
|
||||
mov di,[si]
|
||||
@@searchmodel:
|
||||
cmp [di],ax
|
||||
jne @@notgoodfamily
|
||||
mov si,di
|
||||
inc si
|
||||
inc si
|
||||
lea di,[es:cpu.names]
|
||||
add di,[@pointer]
|
||||
@@copystr:
|
||||
mov al,[si]
|
||||
mov [es:di],al
|
||||
inc si
|
||||
inc di
|
||||
cmp al,0
|
||||
jne @@copystr
|
||||
jmp @@endofsearch
|
||||
@@notgoodfamily:
|
||||
inc di
|
||||
@@nextelement:
|
||||
inc di
|
||||
cmp [byte ptr di-1],0
|
||||
jne @@nextelement
|
||||
jmp @@searchmodel
|
||||
@@notthegood:
|
||||
inc si
|
||||
cmp [word ptr si],0FFFFh
|
||||
jne @@notthegood
|
||||
inc si
|
||||
inc si
|
||||
cmp [word ptr si],0FFFFh
|
||||
je @@endofsearch
|
||||
jmp @@search
|
||||
@@endofsearch:
|
||||
ret
|
||||
@@nocpuidatall:
|
||||
ret
|
||||
|
||||
;tableau avec vendeur taille + chainereelle + pointeur famille + pointeur famille etendue
|
||||
|
||||
@@marks db "GenuineIntel",5,"Intel"
|
||||
dw @@intelfamily,@@intelfamilye
|
||||
dw 0FFFFh
|
||||
|
||||
db "AuthenticAMD",3,"Amd"
|
||||
dw @@amdfamily,@@amdfamilye
|
||||
dw 0FFFFh
|
||||
|
||||
db "CyrixInstead",5,"Cyrix"
|
||||
dw @@cyrixfamily,@@cyrixfamilye
|
||||
dw 0FFFFh
|
||||
dw 0FFFFh
|
||||
|
||||
|
||||
;tableau avec famille modele et chaine 0
|
||||
|
||||
@@intelfamily:
|
||||
db 4,0,"486 DX-25/33",0
|
||||
db 4,1,"486 DX-50",0
|
||||
db 4,2,"486 SX",0
|
||||
db 4,3,"486 DX/2",0
|
||||
db 4,4,"486 SL",0
|
||||
db 4,5,"486 SX/2",0
|
||||
db 4,7,"486 DX/2-WB",0
|
||||
db 4,8,"486 DX/4",0
|
||||
db 4,9,"486 DX/4-WB",0
|
||||
db 5,0,"Pentium 60/66 A-step",0
|
||||
db 5,1,"Pentium 60/66",0
|
||||
db 5,2,"Pentium 75 - 200",0
|
||||
db 5,3,"OverDrive PODP5V83",0
|
||||
db 5,4,"Pentium MMX",0
|
||||
db 5,7,"Mobile Pentium 75-200",0
|
||||
db 5,8,"Mobile Pentium MMX",0
|
||||
db 6,0,"Pentium Pro A-step",0
|
||||
db 6,1,"Pentium Pro",0
|
||||
db 6,3,"Pentium II (Klamath)",0
|
||||
db 6,5,"Pentium II (Deschutes)",0
|
||||
db 6,6,"Mobile Pentium II",0
|
||||
db 6,7,"Pentium III (Katmai)",0
|
||||
db 6,8,"Pentium III (Coppermine)",0
|
||||
db 6,9,"Mobile Pentium III",0
|
||||
db 6,10,"Pentium III (0.18 µm)",0
|
||||
db 6,11,"Pentium III (0.13 µm)",0
|
||||
db 7,0,"Itanium (IA-64)",0
|
||||
db 0FFh,0FFh,"Inconnu",0
|
||||
|
||||
@@intelfamilye:
|
||||
db 0,0,"Pentium IV (0.18 µm)",0
|
||||
db 0,1,"Pentium IV (0.18 µm)",0
|
||||
db 0,2,"Pentium IV (0.13 µm)",0
|
||||
db 0,3,"Pentium IV (0.09 µm)",0
|
||||
db 1,0,"Itanium 2 (IA-64)",0
|
||||
db 0FFh,0FFh,"Inconnu",0
|
||||
|
||||
@@amdfamily:
|
||||
db 4,3,"486 DX/2",0
|
||||
db 4,7,"486 DX/2-WB",0
|
||||
db 4,8,"486 DX/4",0
|
||||
db 4,9,"486 DX/4-WB",0
|
||||
db 4,14,"Am5x86-WT",0
|
||||
db 4,15,"Am5x86-WB",0
|
||||
db 5,0,"K5/SSA5",0
|
||||
db 5,1,"K5 (PR120/133)",0
|
||||
db 5,2,"K5 (PR166)",0
|
||||
db 5,3,"K5 (PR200)",0
|
||||
db 5,6,"K6 (0.30 µm)",0
|
||||
db 5,7,"K6 (0.25 µm)",0
|
||||
db 5,8,"K6-2",0
|
||||
db 5,9,"K6-3",0
|
||||
db 5,13,"K6-2+/K6-III+ (0.18 µm)",0
|
||||
db 6,0,"Athlon (25 µm)",0
|
||||
db 6,1,"Athlon (25 µm)",0
|
||||
db 6,2,"Athlon (18 µm)",0
|
||||
db 6,3,"Duron",0
|
||||
db 6,4,"Athlon (Thunderbird)",0
|
||||
db 6,6,"Athlon (Palamino)",0
|
||||
db 6,7,"Duron (Morgan)",0
|
||||
db 6,8,"Athlon (Thoroughbred)",0
|
||||
db 6,10,"Athlon (Barton)",0
|
||||
db 0FFh,0FFh,"Inconnu",0
|
||||
|
||||
@@amdfamilye:
|
||||
db 0,4,"Athlon 64",0
|
||||
db 0,5,"Athlon 64 FX/Opteron",0
|
||||
db 0FFh,0FFh,"Inconnu",0
|
||||
|
||||
@@cyrixfamily:
|
||||
db 4,4,"MediaGX",0
|
||||
db 5,2,"6x86/6x86L",0
|
||||
db 5,4,"MediaGX MMX Enhanced",0
|
||||
db 6,0,"MII (6x86MX)",0
|
||||
db 6,5,"VIA Cyrix M2 core",0
|
||||
db 6,6,"WinChip C5A",0
|
||||
db 6,7,"WinChip C5B/WinChip C5C",0
|
||||
db 6,8,"WinChip C5N",0
|
||||
db 6,9,"WinChip C5XL/WinChip C5P",0
|
||||
db 0FFh,0FFh,"Inconnu",0
|
||||
|
||||
@@cyrixfamilye:
|
||||
db 0FFh,0FFh,"Inconnu",0
|
||||
|
||||
endp cpuinfo
|
||||
|
||||
;Test si CPUID est supporté oui=not Equal
|
||||
nocpuid:
|
||||
pushfd
|
||||
pop eax
|
||||
xor eax,00200000h
|
||||
push eax
|
||||
popfd
|
||||
pushfd
|
||||
pop eax
|
||||
cmp eax,ebx
|
||||
ret
|
||||
|
||||
|
993
lib/str0.asm
|
@ -1,993 +0,0 @@
|
|||
model tiny,stdcall
|
||||
p586N
|
||||
locals
|
||||
jumps
|
||||
codeseg
|
||||
option procalign:byte
|
||||
|
||||
include "..\include\mem.h"
|
||||
include "..\include\divers.h"
|
||||
|
||||
org 0h
|
||||
|
||||
header exe <"CE",1,0,0,offset exports,,,>
|
||||
|
||||
|
||||
exporting
|
||||
declare checksyntax
|
||||
declare cmpitems
|
||||
declare gettypeditem
|
||||
declare gettyped
|
||||
declare whatisitem
|
||||
declare whatis
|
||||
declare strtoadress
|
||||
declare strisadress
|
||||
declare strisname
|
||||
declare strisbase
|
||||
declare strtoint
|
||||
declare left
|
||||
declare right
|
||||
declare middle
|
||||
declare fill
|
||||
declare replaceallchar
|
||||
declare searchchar
|
||||
declare invert
|
||||
declare cmpstr
|
||||
declare evalue
|
||||
declare insert
|
||||
declare delete
|
||||
declare copy
|
||||
declare concat
|
||||
declare compressdelimiter
|
||||
declare setnbitems
|
||||
declare getitemsize
|
||||
declare getitem
|
||||
declare getpointeritem
|
||||
declare getnbitems
|
||||
declare getlength
|
||||
declare setlength
|
||||
declare uppercase
|
||||
declare onecase
|
||||
declare lowercase
|
||||
declare invertcase
|
||||
ende
|
||||
|
||||
;Librairie qui prend en charge le format de STR ASCIIZ
|
||||
;# nombre 8
|
||||
;? str 7
|
||||
;& nom 6
|
||||
|
||||
;High Low
|
||||
;0 variable 4 hex
|
||||
;1 byte 3 dec
|
||||
;2 word 2 oct
|
||||
;3 3 octets 1 bin
|
||||
;4 dword 5 adresse
|
||||
;5 5 octets 6 nom
|
||||
;6 ... 7 str
|
||||
; 8 nombre
|
||||
|
||||
;Renvoie carry si la syntaxe de ds:si n'est pas respect‚ par rapport a es:di
|
||||
PROC checksyntax FAR
|
||||
ARG @src:word,@dest:word,@delim:word
|
||||
USES ax,bx,cx,dx,si,di,ds,es
|
||||
LOCAL @@temp:word:256
|
||||
push ss
|
||||
pop es
|
||||
lea si,[@@temp]
|
||||
mov di,[@dest]
|
||||
call copy,[@src],si
|
||||
call xch
|
||||
call compressdelimiter,si,[@delim]
|
||||
call getnbitems,si,[@delim]
|
||||
mov bx,ax
|
||||
call xch
|
||||
call getnbitems,di,[@delim]
|
||||
cmp bx,ax
|
||||
jne @@notequalatall
|
||||
xor cx,cx
|
||||
@@itemer:
|
||||
call xch
|
||||
call whatisitem,si,cx,[@delim]
|
||||
mov dx,ax
|
||||
call xch
|
||||
call whatisitem,di,cx,[@delim]
|
||||
cmp ax,dx
|
||||
jne @@prob
|
||||
cmp al,6
|
||||
jb @@equal
|
||||
call cmpitems
|
||||
je @@equal
|
||||
@@prob:
|
||||
cmp dl,4
|
||||
ja @@nonumber
|
||||
cmp dl,8
|
||||
je @@equal
|
||||
;cmp al,4
|
||||
;jne @@notequalatall
|
||||
cmp dh,ah
|
||||
ja @@notequalatall
|
||||
jmp @@equal
|
||||
@@nonumber:
|
||||
cmp al,7
|
||||
jne @@nostr
|
||||
cmp ah,0
|
||||
jne @@notequalatall
|
||||
jmp @@equal
|
||||
@@nostr:
|
||||
cmp al,6
|
||||
jne @@noname
|
||||
cmp dl,6
|
||||
jne @@noname
|
||||
cmp ah,0
|
||||
jne @@notequalatall
|
||||
jmp @@equal
|
||||
@@noname:
|
||||
cmp al,8
|
||||
je @@equal
|
||||
jmp @@notequalatall
|
||||
@@equal:
|
||||
inc cx
|
||||
cmp cx,bx
|
||||
jne @@itemer
|
||||
cld
|
||||
@@ackno:
|
||||
ret
|
||||
@@notequalatall:
|
||||
stc
|
||||
jmp @@ackno
|
||||
endp checksyntax
|
||||
|
||||
xch:
|
||||
push es
|
||||
push ds
|
||||
pop es
|
||||
pop ds
|
||||
ret
|
||||
|
||||
|
||||
;Compare les ‚l‚ments cx de deux chaine ds:si et es:di
|
||||
PROC cmpitems FAR
|
||||
ARG @src:word,@dest:word,@item:word,@delim:word
|
||||
USES ax,cx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
call getpointeritem,[@src],[@item],[@delim]
|
||||
mov si,ax
|
||||
call getitemsize,[@src],[@item],[@delim]
|
||||
mov di,[@dest]
|
||||
mov cx,ax
|
||||
cld
|
||||
rep cmpsb
|
||||
clc
|
||||
ret
|
||||
endp cmpitems
|
||||
|
||||
|
||||
;Renvoie l'‚l‚ment cx de ds:si dans edx si nb et dans es:di si str ou name
|
||||
PROC gettypeditem FAR
|
||||
ARG @src:word,@item:word,@delim:word
|
||||
USES bx,cx,si,di
|
||||
mov si,[@src]
|
||||
mov cx,[@item]
|
||||
call getpointeritem,si,cx,[@delim]
|
||||
mov di,ax
|
||||
inc cx
|
||||
call getpointeritem,si,cx,[@delim]
|
||||
mov si,ax
|
||||
dec si
|
||||
mov cl,0
|
||||
xchg cl,[ds:si]
|
||||
call gettyped,di
|
||||
xchg cl,[ds:si]
|
||||
clc
|
||||
ret
|
||||
endp gettypeditem
|
||||
|
||||
|
||||
;Renvoie eax si nb et dans ds:eax si str ou name
|
||||
PROC gettyped FAR
|
||||
ARG @src:word
|
||||
USES si
|
||||
mov si,[@src]
|
||||
xor eax,eax
|
||||
call whatis,si
|
||||
cmp al,1
|
||||
je @@bin
|
||||
cmp al,2
|
||||
je @@oct
|
||||
cmp al,3
|
||||
je @@dec
|
||||
cmp al,4
|
||||
je @@hex
|
||||
cmp al,5
|
||||
je @@pointer
|
||||
mov ax,si
|
||||
jmp @@endofgettypeditem
|
||||
@@bin:
|
||||
call strtoint,si,2
|
||||
jmp @@endofgettypeditem
|
||||
@@oct:
|
||||
call strtoint,si,8
|
||||
jmp @@endofgettypeditem
|
||||
@@dec:
|
||||
call strtoint,si,10
|
||||
jmp @@endofgettypeditem
|
||||
@@hex:
|
||||
call strtoint,si,16
|
||||
jmp @@endofgettypeditem
|
||||
@@pointer:
|
||||
call strtoadress,si
|
||||
@@endofgettypeditem:
|
||||
clc
|
||||
ret
|
||||
endp gettyped
|
||||
|
||||
;Renvoie dans ax le type de la str0 point‚e par ds:%0 ‚l‚ment %1 delim %3
|
||||
PROC whatisitem FAR
|
||||
ARG @src:word,@item:word,@delim:word
|
||||
USES bx,cx,si,di
|
||||
mov si,[@src]
|
||||
mov cx,[@item]
|
||||
call getpointeritem,si,cx,[@delim]
|
||||
mov di,ax
|
||||
inc cx
|
||||
call getpointeritem,si,cx,[@delim]
|
||||
mov si,ax
|
||||
dec si
|
||||
mov cl,0
|
||||
xchg cl,[ds:si]
|
||||
call whatis,di
|
||||
xchg cl,[ds:si]
|
||||
clc
|
||||
ret
|
||||
endp whatisitem
|
||||
|
||||
;Renvoie dans ax le type de la str0 point‚e par ds:%0
|
||||
;High Low
|
||||
;0 variable 4 hex
|
||||
;1 byte 3 dec
|
||||
;2 word 2 oct
|
||||
;3 3 octets 1 bin
|
||||
;4 dword 5 adresse
|
||||
;5 5 octets 6 name
|
||||
;6 ... 7 str
|
||||
PROC whatis FAR
|
||||
ARG @src:word
|
||||
USES bx,cx,edx,si
|
||||
mov si,[@src]
|
||||
xor cx,cx
|
||||
mov cl,2
|
||||
call strisbase,si,cx
|
||||
jnc @@finbase
|
||||
mov cl,8
|
||||
call strisbase,si,cx
|
||||
jnc @@finbase
|
||||
mov cl,10
|
||||
call strisbase,si,cx
|
||||
jnc @@finbase
|
||||
mov cl,16
|
||||
call strisbase,si,cx
|
||||
jc @@testadress
|
||||
@@finbase:
|
||||
mov bx,cx
|
||||
xor ch,ch
|
||||
mov al,[cs:bx+offset basenn-2]
|
||||
push eax
|
||||
call strtoint,si,cx
|
||||
mov edx,eax
|
||||
pop eax
|
||||
cmp edx,0000FFFFh
|
||||
ja @@bits32
|
||||
cmp dx,00FFh
|
||||
ja @@bits16
|
||||
mov ah,1
|
||||
jmp @@endofwhat
|
||||
@@bits16:
|
||||
mov ah,2
|
||||
jmp @@endofwhat
|
||||
@@bits32:
|
||||
mov ah,4
|
||||
jmp @@endofwhat
|
||||
@@testadress:
|
||||
call strisadress,si
|
||||
jc @@testname
|
||||
mov ax,0005h
|
||||
jmp @@endofwhat
|
||||
@@testname:
|
||||
call strisname
|
||||
jc @@testnumber
|
||||
xor ah,ah
|
||||
cmp [byte ptr si],'&'
|
||||
je @@okname
|
||||
call getlength,si
|
||||
mov ah,al
|
||||
@@okname:
|
||||
mov al,06h
|
||||
jmp @@endofwhat
|
||||
@@testnumber:
|
||||
cmp [byte ptr si],'#'
|
||||
jne @@testvarstr
|
||||
xor ah,ah
|
||||
mov al,08h
|
||||
jmp @@endofwhat
|
||||
@@testvarstr:
|
||||
xor ah,ah
|
||||
cmp [byte ptr si],'?'
|
||||
je @@okvarstr
|
||||
call getlength,si
|
||||
mov ah,al
|
||||
@@okvarstr:
|
||||
mov al,07h
|
||||
@@endofwhat:
|
||||
clc
|
||||
ret
|
||||
endp whatis
|
||||
|
||||
|
||||
|
||||
;Renvoie non carry si la str ds:si point‚e peut ˆtre une adresse
|
||||
PROC strtoadress FAR
|
||||
;push
|
||||
stc
|
||||
;pop
|
||||
ret
|
||||
endp strtoadress
|
||||
|
||||
|
||||
;Renvoie en es:di le pointeur str0 ds:si
|
||||
PROC strisadress FAR
|
||||
;push
|
||||
stc
|
||||
;pop
|
||||
ret
|
||||
endp strisadress
|
||||
|
||||
;Renvoie non carry si la str ds:%0 point‚e peut ˆtre un nom de fichier
|
||||
PROC strisname FAR
|
||||
ARG @src:word
|
||||
USES ax,si,di
|
||||
mov si,[@src]
|
||||
@@isname:
|
||||
mov al,[si]
|
||||
inc si
|
||||
cmp al,0
|
||||
je @@itsok
|
||||
mov di,offset non
|
||||
@@verify:
|
||||
mov ah,[cs:di]
|
||||
inc di
|
||||
cmp ah,0FFh
|
||||
je @@isname
|
||||
cmp ah,al
|
||||
jne @@verify
|
||||
stc
|
||||
jmp @@itsdead
|
||||
@@itsok:
|
||||
clc
|
||||
@@itsdead:
|
||||
ret
|
||||
endp strisname
|
||||
|
||||
non db '/<>|"?*:\',01,0FFh
|
||||
|
||||
;Renvoie non carry si le texte point‚ par %0 est de la base %1
|
||||
PROC strisbase FAR
|
||||
ARG @src:word,@base:word
|
||||
USES ax,cx,si,di,es
|
||||
push cs
|
||||
pop es
|
||||
mov si,[@src]
|
||||
@@isstrbase:
|
||||
mov al,[si]
|
||||
cmp al,0
|
||||
je @@okbase
|
||||
mov cx,[@base]
|
||||
xor ch,ch
|
||||
mov di,cx
|
||||
cmp al,[es:di-2+offset basen]
|
||||
je @@verifbase
|
||||
xor ch,ch
|
||||
inc cl
|
||||
mov di,offset base
|
||||
cld
|
||||
repne scasb
|
||||
cmp cx,0
|
||||
je @@nobase
|
||||
inc si
|
||||
jmp @@isstrbase
|
||||
@@okbase:
|
||||
clc
|
||||
@@endbase:
|
||||
ret
|
||||
@@verifbase:
|
||||
cmp [byte ptr si+1],0
|
||||
je @@okbase
|
||||
@@nobase:
|
||||
stc
|
||||
jmp @@endbase
|
||||
endp strisbase
|
||||
|
||||
base db '0123456789ABCDEF'
|
||||
basen db 'b o d h'
|
||||
basenn db 1,0,0,0,0,0,2,0,3,0,0,0,0,0,4
|
||||
|
||||
|
||||
;Converti un str %0 de base %1 en int dans eax
|
||||
PROC strtoint FAR
|
||||
ARG @src:word,@base:word
|
||||
USES ebx,ecx,edx,si,edi,es
|
||||
push cs
|
||||
pop es
|
||||
mov si,[@src]
|
||||
@@gotos:
|
||||
cmp [byte ptr si+1], 0
|
||||
je @@oklo
|
||||
inc si
|
||||
jmp @@gotos
|
||||
@@oklo:
|
||||
mov edi,1
|
||||
xor ebx,ebx
|
||||
@@baseto:
|
||||
cmp [@src],si
|
||||
ja @@endbaseto
|
||||
mov al,[si]
|
||||
xor ecx,ecx
|
||||
mov cl,[byte ptr @base]
|
||||
inc cl
|
||||
push di
|
||||
mov di,offset base
|
||||
cld
|
||||
repne scasb
|
||||
pop di
|
||||
jne @@noop
|
||||
sub cl,[byte ptr @base]
|
||||
neg cl
|
||||
mov eax,edi
|
||||
mul ecx
|
||||
add ebx,eax
|
||||
mov eax,edi
|
||||
mov cl,[byte ptr @base]
|
||||
mul ecx
|
||||
mov edi,eax
|
||||
@@noop:
|
||||
dec si
|
||||
jmp @@baseto
|
||||
@@endbaseto:
|
||||
mov eax,ebx
|
||||
clc
|
||||
ret
|
||||
endp strtoint
|
||||
|
||||
|
||||
;Renvoie en ds:%1 la partie de %2 caractŠres a partir de la gauche de ds:%0
|
||||
PROC left FAR
|
||||
ARG @src:word,@dest:word,@nb:word
|
||||
USES ax,cx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
mov si,[@src]
|
||||
mov di,[@dest]
|
||||
mov cx,[@nb]
|
||||
cld
|
||||
rep movsb
|
||||
mov al,0
|
||||
stosb
|
||||
clc
|
||||
ret
|
||||
endp left
|
||||
|
||||
;Renvoie en ds:%1 la partie de %2 caractŠres a partir de la droite de ds:%0
|
||||
PROC right FAR
|
||||
ARG @src:word,@dest:word,@nb:word
|
||||
USES ax,cx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
mov si,[@src]
|
||||
mov di,[@dest]
|
||||
call getlength,si
|
||||
add si,ax
|
||||
sub si,[@nb]
|
||||
mov cx,[@nb]
|
||||
cld
|
||||
rep movsb
|
||||
mov al,0
|
||||
stosb
|
||||
clc
|
||||
ret
|
||||
endp right
|
||||
|
||||
;Renvoie en ds:%1 la partie de %3 caractŠres a partir de la position %2 de ds:%0
|
||||
PROC middle FAR
|
||||
ARG @src:word,@dest:word,@item:word,@nb:word
|
||||
USES ax,cx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
mov si,[@src]
|
||||
mov di,[@dest]
|
||||
mov cx,[@nb]
|
||||
add si,[@item]
|
||||
cld
|
||||
rep movsb
|
||||
mov al,0
|
||||
stosb
|
||||
clc
|
||||
ret
|
||||
endp middle
|
||||
|
||||
;Rempli de %3 caractŠres %2 a partir de la position %1 de ds:%0
|
||||
PROC fill FAR
|
||||
ARG @src:word,@item:word,@char:word,@nb:word
|
||||
USES ax,cx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
mov di,[@src]
|
||||
add di,[@item]
|
||||
mov ax,[@char]
|
||||
mov cx,[@nb]
|
||||
cld
|
||||
rep stosb
|
||||
clc
|
||||
ret
|
||||
endp fill
|
||||
|
||||
;Remplace tout les caractŠres %1 de ds:%0 par des caractŠres %2
|
||||
PROC replaceallchar FAR
|
||||
ARG @src:word,@char1:word,@char2:word
|
||||
USES ax,cx,dx,di,es
|
||||
mov di,[@src]
|
||||
call getlength,di
|
||||
mov cx,ax
|
||||
mov ax,[@char1]
|
||||
mov dx,[@char2]
|
||||
push ds
|
||||
pop es
|
||||
@@findandchange:
|
||||
repne scasb
|
||||
cmp cx,0
|
||||
je @@endofchange
|
||||
mov [es:di-1],dl
|
||||
jmp @@findandchange
|
||||
@@endofchange:
|
||||
clc
|
||||
ret
|
||||
endp replaceallchar
|
||||
|
||||
;Recherche un caractŠre dl dans la chaŒne ds:%0
|
||||
PROC searchchar FAR
|
||||
ARG @src:word,@char:word
|
||||
USES cx,di,es
|
||||
mov di,[@src]
|
||||
call getlength,di
|
||||
mov cx,ax
|
||||
push ds
|
||||
pop es
|
||||
mov ax,[@char]
|
||||
repne scasb
|
||||
mov ax,di
|
||||
dec ax
|
||||
clc
|
||||
ret
|
||||
endp searchchar
|
||||
|
||||
;Inverse la chaine point‚e en ds:%0
|
||||
PROC invert FAR
|
||||
ARG @src:word
|
||||
USES ax,cx,si,di
|
||||
mov si,[@src]
|
||||
call getlength,si
|
||||
mov di,si
|
||||
add di,ax
|
||||
dec di
|
||||
@@revert:
|
||||
mov al,[si]
|
||||
xchg al,[di]
|
||||
mov [si],al
|
||||
inc si
|
||||
dec di
|
||||
cmp si,di
|
||||
ja @@finishinvert
|
||||
dec di
|
||||
cmp si,di
|
||||
ja @@finishinvert
|
||||
inc di
|
||||
jmp @@revert
|
||||
@@finishinvert:
|
||||
clc
|
||||
ret
|
||||
endp invert
|
||||
|
||||
;Compares 2 chaines de caractŠres DS:%0 et DS:%1 zerof si non equal
|
||||
PROC cmpstr FAR
|
||||
ARG @src:word,@dest:word
|
||||
USES cx,dx,si,di
|
||||
push ds
|
||||
pop es
|
||||
mov si,[@src]
|
||||
mov di,[@dest]
|
||||
call getlength,di
|
||||
mov cx,ax
|
||||
call getlength,si
|
||||
cmp cx,ax
|
||||
jne @@notequal
|
||||
repe cmpsb
|
||||
@@notequal:
|
||||
ret
|
||||
endp cmpstr
|
||||
|
||||
;Compares 2 chaines de caractŠres DS:%0 et DS:%1 zerof si non equal et renvoie le nb de caractŠre egaux dans ax
|
||||
PROC evalue FAR
|
||||
ARG @src:word,@dest:word
|
||||
USES cx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
mov si,[@src]
|
||||
mov di,[@dest]
|
||||
call getlength ,di
|
||||
mov cx,ax
|
||||
repe cmpsb
|
||||
pushf
|
||||
jne @@noident
|
||||
sub ax,cx
|
||||
popf
|
||||
clc
|
||||
ret
|
||||
@@noident:
|
||||
sub ax,cx
|
||||
dec ax
|
||||
popf
|
||||
clc
|
||||
ret
|
||||
endp evalue
|
||||
|
||||
;Insert une chaine ds:%0 en ds:%1 a partir du caractŠre %2
|
||||
PROC insert FAR
|
||||
ARG @src:word,@dest:word,@item:word
|
||||
USES ax,cx,si,di,es
|
||||
push es
|
||||
pop ds
|
||||
mov si,[@dest]
|
||||
call getlength,si
|
||||
mov cx,ax
|
||||
add si,ax
|
||||
mov di,si
|
||||
call getlength,[@src]
|
||||
add di,ax
|
||||
sub cx,[@item]
|
||||
inc cx
|
||||
std
|
||||
rep movsb
|
||||
mov si,[@src]
|
||||
mov di,[@dest]
|
||||
add di,[@item]
|
||||
mov cx,ax
|
||||
cld
|
||||
rep movsb
|
||||
clc
|
||||
ret
|
||||
endp insert
|
||||
|
||||
|
||||
;Detruit %2 caractŠres a partir du caractŠre %1 de DS:%0
|
||||
PROC delete FAR
|
||||
ARG @src:word,@item:word,@size:word
|
||||
USES ax,cx,dx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
mov si,[@src]
|
||||
call getlength,si
|
||||
mov cx,ax
|
||||
sub cx,[@size]
|
||||
sub cx,[@item]
|
||||
inc cx
|
||||
add si,[@item]
|
||||
mov di,si
|
||||
add si,[@size]
|
||||
cld
|
||||
rep movsb
|
||||
clc
|
||||
ret
|
||||
endp delete
|
||||
|
||||
;Copie une chaine de ds:si en es:di
|
||||
PROC copy FAR
|
||||
ARG @src:word,@dest:word
|
||||
USES ax,cx,si,di
|
||||
mov si,[@src]
|
||||
mov di,[@dest]
|
||||
call getlength,si
|
||||
mov cx,ax
|
||||
cld
|
||||
rep movsb
|
||||
mov al,0
|
||||
stosb
|
||||
clc
|
||||
ret
|
||||
endp copy
|
||||
|
||||
|
||||
;ConcatŠne le chaine ds:si avec ds:di
|
||||
PROC concat FAR
|
||||
ARG @src:word,@dest:word
|
||||
USES ax,cx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
mov si,[@src]
|
||||
call getlength,si
|
||||
mov cx,ax
|
||||
mov di,[@dest]
|
||||
call getlength,di
|
||||
add di,ax
|
||||
cld
|
||||
rep movsb
|
||||
mov al,0
|
||||
stosb
|
||||
clc
|
||||
ret
|
||||
endp concat
|
||||
|
||||
|
||||
;D‚truit les d‚limiteur qui sont cons‚cutifs dans ds:%0 -> renvoie le nb d'item
|
||||
PROC compressdelimiter FAR
|
||||
ARG @src:word,@delim:word
|
||||
USES cx,dx,si,di,es
|
||||
mov di,[@src]
|
||||
call getlength,di
|
||||
mov cx,ax
|
||||
push ds
|
||||
pop es
|
||||
mov ax,[@delim]
|
||||
xor dx,dx
|
||||
@@compressitems:
|
||||
repne scasb
|
||||
inc dx
|
||||
@@againcomp:
|
||||
cmp [di],al
|
||||
jne @@nosup
|
||||
call delete,di,0,1
|
||||
jmp @@againcomp
|
||||
@@nosup:
|
||||
cmp cx,0
|
||||
jne @@compressitems
|
||||
mov ax,dx
|
||||
clc
|
||||
ret
|
||||
endp compressdelimiter
|
||||
|
||||
;Met le nombre d'‚l‚ments de ds:%0 à %1
|
||||
PROC setnbitems FAR
|
||||
ARG @src:word,@size:word,@delim:word
|
||||
USES ax,cx,di,es
|
||||
mov di,[@src]
|
||||
cmp [@size],0
|
||||
je @@onlyzero
|
||||
call getnbitems,di,[@delim]
|
||||
cmp [@size],ax
|
||||
je @@noadjust
|
||||
jb @@subsome
|
||||
push ds
|
||||
pop es
|
||||
sub ax,[@size]
|
||||
neg ax
|
||||
mov cx,ax
|
||||
call getlength,di
|
||||
add di,ax
|
||||
mov ax,[@delim]
|
||||
mov ah,'a'
|
||||
rep stosw
|
||||
xor al,al
|
||||
stosb
|
||||
jmp @@noadjust
|
||||
@@subsome:
|
||||
call getpointeritem,[@src],[@size],[@delim]
|
||||
dec ax
|
||||
mov di,ax
|
||||
@@onlyzero:
|
||||
mov [byte ptr di],0
|
||||
@@noadjust:
|
||||
clc
|
||||
ret
|
||||
endp setnbitems
|
||||
|
||||
;Renvoie la taille ax de l'‚l‚ment %0
|
||||
PROC getitemsize FAR
|
||||
ARG @src:word,@item:word,@delim:word
|
||||
USES cx,dx
|
||||
mov cx,[@item]
|
||||
call getpointeritem,[@src],cx,[@delim]
|
||||
mov dx,ax
|
||||
inc cx
|
||||
call getpointeritem,[@src],cx,[@delim]
|
||||
sub ax,dx
|
||||
dec ax
|
||||
clc
|
||||
ret
|
||||
endp getitemsize
|
||||
|
||||
;Renvoie en ds:%1 l'‚l‚ment %2 de ds:%0
|
||||
PROC getitem FAR
|
||||
ARG @src:word,@dest:word,@item:word,@delim:word
|
||||
USES ax,cx,si,di,es
|
||||
push ds
|
||||
pop es
|
||||
call getpointeritem,[@src],[@item],[@delim]
|
||||
mov si,ax
|
||||
call getitemsize,[@src],[@item],[@delim]
|
||||
mov di,[@dest]
|
||||
mov cx,ax
|
||||
cld
|
||||
rep movsb
|
||||
mov al,0
|
||||
stosb
|
||||
clc
|
||||
ret
|
||||
endp getitem
|
||||
|
||||
;renvoi un pointeur ax sur l'‚l‚ment %1 de ds:%0
|
||||
PROC getpointeritem FAR
|
||||
ARG @src:word,@item:word,@delim:word
|
||||
USES cx,dx,di,es
|
||||
mov di,[@src]
|
||||
cmp [@item],0
|
||||
je @@finishpointer
|
||||
push ds
|
||||
pop es
|
||||
call getlength,di
|
||||
mov cx,ax
|
||||
push ds
|
||||
pop es
|
||||
mov ax,[@delim]
|
||||
xor dx,dx
|
||||
@@countnbitems:
|
||||
cmp [@item],dx
|
||||
je @@finishpointer
|
||||
cld
|
||||
repne scasb
|
||||
inc dx
|
||||
cmp cx,0
|
||||
jne @@countnbitems
|
||||
inc di
|
||||
@@finishpointer:
|
||||
mov ax,di
|
||||
clc
|
||||
ret
|
||||
endp getpointeritem
|
||||
|
||||
;Renvoie le nombre d'‚l‚ments ax de ds:%0
|
||||
PROC getnbitems FAR
|
||||
ARG @src:word,@delim:word
|
||||
USES cx,dx,di,es
|
||||
mov di,[@src]
|
||||
call getlength,di
|
||||
mov cx,ax
|
||||
push ds
|
||||
pop es
|
||||
mov ax,[@delim]
|
||||
xor dx,dx
|
||||
cld
|
||||
@@countitems:
|
||||
repne scasb
|
||||
inc dx
|
||||
cmp cx,0
|
||||
jne @@countitems
|
||||
mov ax,dx
|
||||
clc
|
||||
ret
|
||||
endp getnbitems
|
||||
|
||||
;renvoie la taille en octets AX de la chaine point‚e en ds:%0
|
||||
PROC getlength FAR
|
||||
ARG @src:word
|
||||
USES cx,di,es
|
||||
push ds
|
||||
pop es
|
||||
mov di,[@src]
|
||||
mov al,0
|
||||
mov cx,0FFFFh
|
||||
cld
|
||||
repne scasb
|
||||
neg cx
|
||||
dec cx
|
||||
dec cx
|
||||
mov ax,cx
|
||||
clc
|
||||
ret
|
||||
endp getlength
|
||||
|
||||
;Met la taille en octets de la chaine point‚e ds:%0 a %1
|
||||
PROC setlength FAR
|
||||
ARG @src:word,@size:word
|
||||
USES si
|
||||
mov si,[@src]
|
||||
add si,[@size]
|
||||
mov [byte ptr si],0
|
||||
clc
|
||||
ret
|
||||
endp setlength
|
||||
|
||||
;met en majuscule la chaine ds:%0
|
||||
PROC uppercase FAR
|
||||
ARG @src:word
|
||||
USES si,ax
|
||||
mov si,[@src]
|
||||
@@uppercase:
|
||||
mov al,[ds:si]
|
||||
inc si
|
||||
cmp al,0
|
||||
je @@enduppercase
|
||||
cmp al,'a'
|
||||
jb @@uppercase
|
||||
cmp al,'z'
|
||||
ja @@uppercase
|
||||
sub [byte ptr si-1],'a'-'A'
|
||||
jmp @@uppercase
|
||||
@@enduppercase:
|
||||
clc
|
||||
ret
|
||||
endp uppercase
|
||||
|
||||
;met en majuscule la premiŠre lettre chaine ds:%0
|
||||
PROC onecase FAR
|
||||
ARG @src:word
|
||||
USES ax
|
||||
mov si,[@src]
|
||||
mov al,[ds:si]
|
||||
cmp al,'a'
|
||||
jb @@oneenduppercase
|
||||
cmp al,'z'
|
||||
ja @@oneenduppercase
|
||||
sub [byte ptr si],'a'-'A'
|
||||
@@oneenduppercase:
|
||||
clc
|
||||
ret
|
||||
endp onecase
|
||||
|
||||
;met en minuscule la chaine ds:%0
|
||||
PROC lowercase FAR
|
||||
ARG @src:word
|
||||
USES si,ax
|
||||
mov si,[@src]
|
||||
@@lowercase:
|
||||
mov al,[ds:si]
|
||||
inc si
|
||||
cmp al,0
|
||||
je @@endlowercase
|
||||
cmp al,'A'
|
||||
jb @@lowercase
|
||||
cmp al,'Z'
|
||||
ja @@lowercase
|
||||
add [byte ptr si-1],'a'-'A'
|
||||
jmp @@lowercase
|
||||
@@endlowercase:
|
||||
clc
|
||||
ret
|
||||
endp lowercase
|
||||
|
||||
;Inverse la casse la chaine ds:%0
|
||||
PROC invertcase FAR
|
||||
ARG @src:word
|
||||
USES si,ax
|
||||
mov si,[@src]
|
||||
@@invertcase:
|
||||
mov al,[ds:si]
|
||||
inc si
|
||||
cmp al,0
|
||||
je @@endinvertcase
|
||||
cmp al,'A'
|
||||
jb @@invertcase
|
||||
cmp al,'Z'
|
||||
jbe @@goinvertcase
|
||||
cmp al,'a'
|
||||
jb @@invertcase
|
||||
cmp al,'z'
|
||||
ja @@invertcase
|
||||
sub [byte ptr si-1],'a'-'A'
|
||||
jmp @@invertcase
|
||||
@@goinvertcase:
|
||||
add [byte ptr si-1],'a'-'A'
|
||||
jmp @@invertcase
|
||||
@@endinvertcase:
|
||||
clc
|
||||
ret
|
||||
endp invertcase
|
||||
|
891
lib/video.asm
|
@ -1,891 +0,0 @@
|
|||
model tiny,stdcall
|
||||
p486
|
||||
locals
|
||||
jumps
|
||||
codeseg
|
||||
option procalign:byte
|
||||
|
||||
include "..\include\mem.h"
|
||||
|
||||
org 0h
|
||||
|
||||
header exe <"CE",1,0,0,offset exports,offset imports,,>
|
||||
|
||||
exporting
|
||||
declare print
|
||||
declare showdate
|
||||
declare showtime
|
||||
declare showname
|
||||
declare showattr
|
||||
declare showsize
|
||||
declare showspace
|
||||
declare showint
|
||||
declare showsigned
|
||||
declare showhex
|
||||
declare showbin
|
||||
declare showbcd
|
||||
declare showstring
|
||||
declare showstring0
|
||||
declare showintr
|
||||
declare showintl
|
||||
declare showchar
|
||||
ende
|
||||
|
||||
importing
|
||||
use VIDEO,addline
|
||||
use VIDEO,setcolor
|
||||
use VIDEO,getxy
|
||||
use VIDEO,setxy
|
||||
use VIDEO,setvideomode
|
||||
use VIDEO,setfont
|
||||
use VIDEO,clearscreen
|
||||
use VIDEO,enablescroll
|
||||
use VIDEO,disablescroll
|
||||
use VIDEO,showchars
|
||||
use VIDEO,savestate
|
||||
use VIDEO,restorestate
|
||||
endi
|
||||
|
||||
|
||||
;================PRINT==============
|
||||
;Affiche la chaine %0 en utilisant les parametres de formatage %x....%x
|
||||
;-> %0 %x
|
||||
;<-
|
||||
;===================================
|
||||
PROC print FAR
|
||||
ARG @@pointer:word
|
||||
push ax bx cx si di
|
||||
xor di,di
|
||||
mov si,[@@pointer]
|
||||
@@strinaize0:
|
||||
mov cl,[si]
|
||||
cmp cl,0
|
||||
je @@no0
|
||||
cmp cl,'%'
|
||||
je @@special
|
||||
cmp cl,'\'
|
||||
je @@special2
|
||||
@@showit:
|
||||
xor ch,ch
|
||||
call [cs:showchars],cx,0FFFFh
|
||||
inc si
|
||||
jmp @@strinaize0
|
||||
@@special:
|
||||
cmp [byte ptr si+1],'%'
|
||||
jne @@notshowit
|
||||
inc si
|
||||
jmp @@showit
|
||||
@@notshowit:
|
||||
mov cl,[byte ptr si+1]
|
||||
cmp cl,'c'
|
||||
je @@showchars
|
||||
cmp cl,'u'
|
||||
je @@showint
|
||||
cmp cl,'v'
|
||||
je @@showfixint
|
||||
cmp cl,'w'
|
||||
je @@showintr
|
||||
cmp cl,'i'
|
||||
je @@showsigned
|
||||
cmp cl,'h'
|
||||
je @@showhex
|
||||
cmp cl,'b'
|
||||
je @@showbin
|
||||
cmp cl,'s'
|
||||
je @@showstring
|
||||
cmp cl,'0'
|
||||
je @@showstring0
|
||||
cmp cl,'y'
|
||||
je @@showbcd
|
||||
cmp cl,'z'
|
||||
je @@showsize
|
||||
cmp cl,'a'
|
||||
je @@showattr
|
||||
cmp cl,'n'
|
||||
je @@showname
|
||||
cmp cl,'t'
|
||||
je @@showtime
|
||||
cmp cl,'d'
|
||||
je @@showdate
|
||||
clc
|
||||
jmp @@no0
|
||||
|
||||
@@showchars:
|
||||
cmp [byte ptr si+2],'M'
|
||||
je @@showmultchar
|
||||
call [cs:showchars],[word ptr @@pointer+di+2],0FFFFh
|
||||
add si,2
|
||||
add di,2
|
||||
jmp @@strinaize0
|
||||
@@showmultchar:
|
||||
mov cx,[offset @@pointer+di+2+2]
|
||||
cmp cx,0
|
||||
je @@nextfunc
|
||||
@@showcharsx:
|
||||
call [cs:showchars],[word ptr @@pointer+di+2],0FFFFh
|
||||
dec cx
|
||||
jnz @@showcharsx
|
||||
@@nextfunc:
|
||||
add si,3
|
||||
add di,4
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showint:
|
||||
call showint,[dword ptr @@pointer+di+2]
|
||||
add si,2
|
||||
add di,4
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showfixint:
|
||||
call showintl,[word ptr @@pointer+di+6],[dword ptr @@pointer+di+2]
|
||||
add di,6
|
||||
add si,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showintr:
|
||||
call showintr,[word ptr @@pointer+di+6],[dword ptr @@pointer+di+2]
|
||||
add di,6
|
||||
add si,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showsigned:
|
||||
call @@Chosesize
|
||||
call showsigned
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showhex:
|
||||
call @@Chosesize
|
||||
call showhex
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showbin:
|
||||
call @@Chosesize
|
||||
call showbin
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showstring:
|
||||
cmp [byte ptr si+2],'P'
|
||||
je @@showstring@@pointer
|
||||
call showstring,[word ptr @@pointer+di+2]
|
||||
add si,2
|
||||
add di,2
|
||||
jmp @@strinaize0
|
||||
@@showstring@@pointer:
|
||||
push ds
|
||||
mov ds,[offset @@pointer+di+2+2]
|
||||
call showstring,[word ptr @@pointer+di+2]
|
||||
add si,3
|
||||
add di,4
|
||||
pop ds
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showstring0:
|
||||
cmp [byte ptr si+2],'P'
|
||||
je @@showstring0@@pointer
|
||||
call showstring0,[word ptr offset @@pointer+di+2]
|
||||
add si,2
|
||||
add di,2
|
||||
jmp @@strinaize0
|
||||
@@showstring0@@pointer:
|
||||
push ds
|
||||
mov ds,[offset @@pointer+di+2+2]
|
||||
call showstring0,[word ptr offset @@pointer+di+2]
|
||||
add si,3
|
||||
add di,4
|
||||
pop ds
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showbcd:
|
||||
call @@Chosesize
|
||||
call showbcd
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showsize:
|
||||
call showsize,[dword ptr offset @@pointer+di+2]
|
||||
add si,2
|
||||
add di,4
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showattr:
|
||||
call showattr,[word ptr offset @@pointer+di+2]
|
||||
add si,2
|
||||
add di,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showname:
|
||||
call showname,[word ptr offset @@pointer+di+2]
|
||||
add si,2
|
||||
add di,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showtime:
|
||||
call showtime,[word ptr offset @@pointer+di+2]
|
||||
add si,2
|
||||
add di,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showdate:
|
||||
call showdate,[word ptr offset @@pointer+di+2]
|
||||
add si,2
|
||||
add di,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@Chosesize:
|
||||
pop cx
|
||||
push [dword ptr offset @@pointer+di+2]
|
||||
add di,4
|
||||
cmp [byte ptr si+2],'B'
|
||||
je @@byte
|
||||
cmp [byte ptr si+2],'W'
|
||||
je @@word
|
||||
cmp [byte ptr si+2],'D'
|
||||
je @@dword
|
||||
dec si
|
||||
|
||||
@@word:
|
||||
push 16
|
||||
add si,3
|
||||
push cx
|
||||
retn
|
||||
|
||||
@@byte:
|
||||
push 8
|
||||
add si,3
|
||||
push cx
|
||||
retn
|
||||
|
||||
@@dword:
|
||||
push 32
|
||||
add si,3
|
||||
push cx
|
||||
retn
|
||||
|
||||
@@special2:
|
||||
cmp [byte ptr si+1],'\'
|
||||
jne @@notshowit2
|
||||
inc si
|
||||
jmp @@showit
|
||||
@@notshowit2:
|
||||
mov cl,[byte ptr si+1]
|
||||
cmp cl,'l'
|
||||
je @@showline
|
||||
cmp cl,'g'
|
||||
je @@goto
|
||||
cmp cl,'h'
|
||||
je @@gotox
|
||||
cmp cl,'c'
|
||||
je @@color
|
||||
cmp cl,'m'
|
||||
je @@setvideomode
|
||||
cmp cl,'e'
|
||||
je @@clearscreen
|
||||
cmp cl,'s'
|
||||
je @@savestate
|
||||
cmp cl,'r'
|
||||
je @@restorestate
|
||||
cmp cl,'i'
|
||||
je @@enablescroll
|
||||
cmp cl,'j'
|
||||
je @@disablescroll
|
||||
cmp cl,'f'
|
||||
je @@setfont
|
||||
clc
|
||||
jmp @@no0
|
||||
|
||||
@@color:
|
||||
mov al,[si+2]
|
||||
sub al,'0'
|
||||
shl al,4
|
||||
add al,[si+3]
|
||||
sub al,'0'
|
||||
xor ah,ah
|
||||
call [cs:setcolor],ax
|
||||
add si,4
|
||||
jmp @@strinaize0
|
||||
|
||||
@@gotox:
|
||||
mov bh,[si+2]
|
||||
sub bh,'0'
|
||||
mov bl,bh
|
||||
shl bl,3
|
||||
add bl,bh
|
||||
add bl,bh
|
||||
add bl,[si+3]
|
||||
sub bl,'0'
|
||||
xor bh,bh
|
||||
call [cs:getxy]
|
||||
xor ah,ah
|
||||
call [cs:setxy],bx,ax
|
||||
add si,4
|
||||
jmp @@strinaize0
|
||||
|
||||
@@setvideomode:
|
||||
mov ah,[si+2]
|
||||
sub ah,'0'
|
||||
mov al,ah
|
||||
shl al,3
|
||||
add al,ah
|
||||
add al,ah
|
||||
add al,[si+3]
|
||||
sub al,'0'
|
||||
xor ah,ah
|
||||
call [cs:setvideomode],ax
|
||||
add si,4
|
||||
jmp @@strinaize0
|
||||
|
||||
@@setfont:
|
||||
mov ah,[si+2]
|
||||
sub ah,'0'
|
||||
mov al,ah
|
||||
shl al,3
|
||||
add al,ah
|
||||
add al,ah
|
||||
add al,[si+3]
|
||||
sub al,'0'
|
||||
xor ah,ah
|
||||
call [cs:setfont],ax
|
||||
add si,4
|
||||
jmp @@strinaize0
|
||||
|
||||
@@showline:
|
||||
call [cs:addline]
|
||||
add si,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@clearscreen:
|
||||
call [cs:clearscreen]
|
||||
add si,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@savestate:
|
||||
call [cs:savestate]
|
||||
add si,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@restorestate:
|
||||
call [cs:restorestate]
|
||||
add si,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@enablescroll:
|
||||
call [cs:enablescroll]
|
||||
add si,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@disablescroll:
|
||||
call [cs:disablescroll]
|
||||
add si,2
|
||||
jmp @@strinaize0
|
||||
|
||||
@@goto:
|
||||
mov ah,[si+2]
|
||||
sub ah,'0'
|
||||
mov al,ah
|
||||
shl al,3
|
||||
add al,ah
|
||||
add al,ah
|
||||
add al,[si+3]
|
||||
sub al,'0'
|
||||
xor ah,ah
|
||||
;
|
||||
mov bh,[si+5]
|
||||
sub bh,'0'
|
||||
mov bl,bh
|
||||
shl bl,3
|
||||
add bl,bh
|
||||
add bl,bh
|
||||
add bl,[si+6]
|
||||
sub bl,'0'
|
||||
xor bh,bh
|
||||
call [cs:setxy],ax,bx
|
||||
add si,7
|
||||
jmp @@strinaize0
|
||||
|
||||
@@no0:
|
||||
add di,bp
|
||||
mov ax,[ss:bp] ;BP
|
||||
mov bx,[ss:bp+2] ;IP
|
||||
mov cx,[ss:bp+4] ;CS
|
||||
mov [ss:di],ax
|
||||
mov [ss:di+2],bx
|
||||
mov [ss:di+4],cx
|
||||
mov bp,di
|
||||
pop di si cx bx ax
|
||||
mov sp,bp
|
||||
ret
|
||||
ENDP print
|
||||
|
||||
|
||||
;================SHOWDATE==============
|
||||
;Affiche la date contenu en %0
|
||||
;-> %0
|
||||
;<-
|
||||
;======================================
|
||||
PROC showdate FAR
|
||||
ARG @dates:word
|
||||
USES edx
|
||||
xor edx,edx
|
||||
mov dx,[@dates]
|
||||
and dx,11111b
|
||||
call showintl,2,edx
|
||||
call [cs:showchars],'/',0FFFFh
|
||||
mov dx,[@dates]
|
||||
shr dx,5
|
||||
and dx,111b
|
||||
call showintl,2,edx
|
||||
call [cs:showchars],'/',0FFFFh
|
||||
mov dx,[@dates]
|
||||
shr dx,8
|
||||
and dx,11111111b
|
||||
add dx,1956
|
||||
call showintl,2,edx
|
||||
ret
|
||||
ENDP showdate
|
||||
|
||||
;================SHOWTIME==============
|
||||
;Affiche l'heure contenu en %0
|
||||
;-> %0
|
||||
;<-
|
||||
;======================================
|
||||
PROC showtime FAR
|
||||
ARG @times:word
|
||||
USES edx
|
||||
xor edx,edx
|
||||
mov dx,[@times]
|
||||
shr dx,11
|
||||
and dx,11111b
|
||||
call showintl,2,edx
|
||||
call [cs:showchars],':',0FFFFh
|
||||
mov dx,[@times]
|
||||
shr dx,5
|
||||
and dx,111111b
|
||||
call showintl,2,edx
|
||||
call [cs:showchars],':',0FFFFh
|
||||
mov dx,[@times]
|
||||
and dx,11111b
|
||||
shl dx,1
|
||||
call showintl,2,edx
|
||||
ret
|
||||
ENDP showtime
|
||||
|
||||
;================SHOWNAME==============
|
||||
;Affiche le nom pointé par ds:%0
|
||||
;-> ds:%0
|
||||
;<-
|
||||
;======================================
|
||||
PROC showname FAR
|
||||
ARG @thename:word
|
||||
USES cx,si
|
||||
mov si,[@thename]
|
||||
xor cx,cx
|
||||
@@showthename:
|
||||
call [cs:showchars],[word ptr ds:si],0FFFFh
|
||||
inc si
|
||||
inc cx
|
||||
cmp cx,8
|
||||
jne @@suiteaname
|
||||
call [cs:showchars],' ',0FFFFh
|
||||
@@suiteaname:
|
||||
cmp cx,8+3
|
||||
jb @@showthename
|
||||
ret
|
||||
ENDP showname
|
||||
|
||||
;================SHOWATTR==============
|
||||
;Affiche les attributs spécifié par %0
|
||||
;-> %0
|
||||
;<-
|
||||
;======================================
|
||||
PROC showattr FAR
|
||||
ARG @attr:word
|
||||
push 0FFFFh
|
||||
test [@attr],00000001b
|
||||
je @@noreadonly
|
||||
push 'L'
|
||||
jmp @@readonly
|
||||
@@noreadonly:
|
||||
push '-'
|
||||
@@readonly:
|
||||
call [cs:showchars]
|
||||
push 0FFFFh
|
||||
test [@attr],00000010b
|
||||
je @@nohidden
|
||||
push 'C'
|
||||
jmp @@hidden
|
||||
@@nohidden:
|
||||
push '-'
|
||||
@@hidden:
|
||||
call [cs:showchars]
|
||||
push 0FFFFh
|
||||
test [@attr],00000100b
|
||||
je @@nosystem
|
||||
push 'S'
|
||||
jmp @@system
|
||||
@@nosystem:
|
||||
push '-'
|
||||
@@system:
|
||||
call [cs:showchars]
|
||||
push 0FFFFh
|
||||
test [@attr],00100000b
|
||||
je @@noarchive
|
||||
push 'A'
|
||||
jmp @@archive
|
||||
@@noarchive:
|
||||
push '-'
|
||||
@@archive:
|
||||
call [cs:showchars]
|
||||
push 0FFFFh
|
||||
test [@attr],00010000b
|
||||
je @@nodirectory
|
||||
push 'R'
|
||||
jmp @@directory
|
||||
@@nodirectory:
|
||||
push '-'
|
||||
@@directory:
|
||||
call [cs:showchars]
|
||||
ret
|
||||
ENDP showattr
|
||||
|
||||
;================SHOWSIZE==============
|
||||
;Affiche le nom pointé par %0
|
||||
;-> %0
|
||||
;<-
|
||||
;======================================
|
||||
PROC showsize FAR
|
||||
ARG @thesize:dword
|
||||
USES edx,ds
|
||||
push cs
|
||||
pop ds
|
||||
mov edx,[@thesize]
|
||||
cmp edx,1073741824
|
||||
ja @@giga
|
||||
cmp edx,1048576*9
|
||||
ja @@mega
|
||||
cmp edx,1024*9
|
||||
ja @@kilo
|
||||
call showintr,4,edx
|
||||
call showstring0,offset unit
|
||||
jmp @@finsize
|
||||
@@kilo:
|
||||
shr edx,10
|
||||
call showintr,4,edx
|
||||
call showstring0,offset unitkilo
|
||||
jmp @@finsize
|
||||
@@mega:
|
||||
shr edx,20
|
||||
call showintr,4,edx
|
||||
call showstring0,offset unitmega
|
||||
jmp @@finsize
|
||||
@@giga:
|
||||
shr edx,30
|
||||
call showintr,4,edx
|
||||
call showstring0,offset unitgiga
|
||||
@@finsize:
|
||||
ret
|
||||
|
||||
unit db ' o ',0
|
||||
unitkilo db ' ko',0
|
||||
unitmega db ' mo',0
|
||||
unitgiga db ' go',0
|
||||
ENDP showsize
|
||||
|
||||
;==========SHOWSPACE===========
|
||||
;met un espace aprés le curseur
|
||||
;->
|
||||
;<-
|
||||
;==============================
|
||||
PROC showspace FAR
|
||||
call [cs:showchars],' ',0FFFFh
|
||||
clc
|
||||
ret
|
||||
ENDP showspace
|
||||
|
||||
|
||||
;==========SHOWINT===========
|
||||
;Affiche un entier %0 aprés le curseur
|
||||
;-> %0
|
||||
;<-
|
||||
;============================
|
||||
PROC showint FAR
|
||||
ARG @integer:dword
|
||||
USES eax,bx,cx,edx,esi
|
||||
xor cx,cx
|
||||
mov eax,[@integer]
|
||||
mov esi,10
|
||||
mov bx,offset showbuffer+27
|
||||
@@decint:
|
||||
xor edx,edx
|
||||
div esi
|
||||
add dl,'0'
|
||||
inc cx
|
||||
mov [cs:bx],dl
|
||||
dec bx
|
||||
cmp ax,0
|
||||
jne @@decint
|
||||
mov ax,cx
|
||||
@@showinteger:
|
||||
inc bx
|
||||
mov cl,[cs:bx]
|
||||
call [cs:showchars],cx,0FFFFh
|
||||
dec ax
|
||||
jnz @@showinteger
|
||||
ret
|
||||
|
||||
showbuffer db 50 dup (0FFh)
|
||||
ENDP showint
|
||||
|
||||
;==========SHOWINTL===========
|
||||
;Affiche un entier %0 aprés le curseur de taille %1 caractère centré a gauche
|
||||
;-> %0 un entier % taille en caractères
|
||||
;<-
|
||||
;===============================
|
||||
PROC showintl FAR
|
||||
ARG @sizeofint:word,@integer:dword
|
||||
USES eax,bx,cx,edx,esi,di
|
||||
mov di,[@sizeofint]
|
||||
xor cx,cx
|
||||
mov eax,[@integer]
|
||||
mov esi,10
|
||||
mov bx,offset showbuffer+27
|
||||
@@decint:
|
||||
xor edx,edx
|
||||
div esi
|
||||
add dl,'0'
|
||||
inc cx
|
||||
mov [cs:bx],dl
|
||||
dec bx
|
||||
cmp cx,di
|
||||
jae @@nomuch
|
||||
cmp ax,0
|
||||
jne @@decint
|
||||
mov ax,di
|
||||
xchg cx,di
|
||||
sub cx,di
|
||||
@@rego:
|
||||
mov [byte ptr cs:bx],'0'
|
||||
dec bx
|
||||
dec cx
|
||||
jnz @@rego
|
||||
jmp @@finishim
|
||||
@@nomuch:
|
||||
mov ax,di
|
||||
@@finishim:
|
||||
@@showinteger:
|
||||
inc bx
|
||||
mov cl,[cs:bx]
|
||||
call [cs:showchars],cx,0FFFFh
|
||||
dec ax
|
||||
jnz @@showinteger
|
||||
ret
|
||||
ENDP showintl
|
||||
|
||||
;==========SHOWINTR===========
|
||||
;Affiche un entier %0 aprés le curseur de taille %1 caractère centré a droite
|
||||
;-> %0 un entier % taille en caractères
|
||||
;<-
|
||||
;===============================
|
||||
PROC showintr FAR
|
||||
ARG @sizeofint:word,@integer:dword
|
||||
USES eax,bx,cx,edx,esi,di
|
||||
mov di,[@sizeofint]
|
||||
xor cx,cx
|
||||
mov eax,[@integer]
|
||||
mov esi,10
|
||||
mov bx,offset showbuffer+27
|
||||
@@decint:
|
||||
xor edx,edx
|
||||
div esi
|
||||
add dl,'0'
|
||||
inc cx
|
||||
mov [cs:bx],dl
|
||||
dec bx
|
||||
cmp cx,di
|
||||
jae @@nomuch
|
||||
cmp ax,0
|
||||
jne @@decint
|
||||
mov ax,di
|
||||
xchg cx,di
|
||||
sub cx,di
|
||||
@@rego:
|
||||
mov [byte ptr cs:bx],' '
|
||||
dec bx
|
||||
dec cx
|
||||
jnz @@rego
|
||||
jmp @@finishim
|
||||
@@nomuch:
|
||||
mov ax,di
|
||||
@@finishim:
|
||||
@@showinteger:
|
||||
inc bx
|
||||
mov cl,[cs:bx]
|
||||
call [cs:showchars],cx,0FFFFh
|
||||
dec ax
|
||||
jnz @@showinteger
|
||||
ret
|
||||
ENDP showintr
|
||||
|
||||
;==========SHOWSIGNED===========
|
||||
;Affiche un entier %0 de taille %1 aprés le curseur
|
||||
;-> %0 un entier, %1 la taille
|
||||
;<-
|
||||
;===============================
|
||||
PROC showsigned FAR
|
||||
ARG @sizeofint:word,@integer:dword=taille
|
||||
USES ebx,cx,edx
|
||||
mov ebx,[@integer]
|
||||
mov cx,[@sizeofint]
|
||||
xor edx,edx
|
||||
cmp cx,1
|
||||
ja @@signed16
|
||||
mov dl,bl
|
||||
cmp dl,7Fh
|
||||
jbe @@notsigned
|
||||
neg dl
|
||||
jmp @@showminus
|
||||
@@signed16:
|
||||
cmp cx,2
|
||||
ja @@signed32
|
||||
mov dx,bx
|
||||
cmp dx,7FFFh
|
||||
jbe @@notsigned
|
||||
neg dx
|
||||
jmp @@showminus
|
||||
@@signed32:
|
||||
mov edx,ebx
|
||||
cmp edx,7FFFFFFFh
|
||||
jbe @@notsigned
|
||||
neg edx
|
||||
@@showminus:
|
||||
call [cs:showchars],'-',0FFFFh
|
||||
@@notsigned:
|
||||
call showint,edx
|
||||
ret
|
||||
ENDP showsigned
|
||||
|
||||
;==========SHOWHEX===========
|
||||
;Affiche un nombre hexadécimal %0 de taille %1 aprés le curseur
|
||||
;-> %0 un entier, %1 la taille
|
||||
;<-
|
||||
;============================
|
||||
PROC showhex FAR
|
||||
ARG @sizeofint:word,@integer:dword=taille
|
||||
USES ax,bx,cx,edx
|
||||
mov edx,[@integer]
|
||||
mov cx,[@sizeofint]
|
||||
mov ax,cx
|
||||
shr ax,2
|
||||
sub cx,32
|
||||
neg cx
|
||||
shl edx,cl
|
||||
@@Hexaize:
|
||||
rol edx,4
|
||||
mov bx,dx
|
||||
and bx,0fh
|
||||
mov cl,[cs:bx+offset Tab]
|
||||
call [cs:showchars],cx,0FFFFh
|
||||
dec al
|
||||
jnz @@Hexaize
|
||||
ret
|
||||
|
||||
Tab db '0123456789ABCDEF'
|
||||
ENDP showhex
|
||||
|
||||
;==========SHOWBIN===========
|
||||
;Affiche un nombre binaire %0 de taille %1 aprés le curseur
|
||||
;-> %0 un entier, %1 la taille
|
||||
;<-
|
||||
;============================
|
||||
PROC showbin FAR
|
||||
ARG @sizeofint:word,@integer:dword=taille
|
||||
USES ax,cx,edx
|
||||
mov edx,[@integer]
|
||||
mov cx,[@sizeofint]
|
||||
sub cx,32
|
||||
neg cx
|
||||
shl edx,cl
|
||||
mov ax,[@sizeofint]
|
||||
@@binaize:
|
||||
rol edx,1
|
||||
mov cl,'0'
|
||||
adc cl,0
|
||||
call [cs:showchars],cx,0FFFFh
|
||||
dec al
|
||||
jnz @@binaize
|
||||
ret
|
||||
ENDP showbin
|
||||
|
||||
;==========SHOWBCD===========
|
||||
;Affiche un nombre en BCD %0 de taille %1 aprés le curseur
|
||||
;-> %0 un entier, %1 la taille
|
||||
;<-
|
||||
;============================
|
||||
PROC showbcd FAR
|
||||
ARG @sizeofint:word,@integer:dword
|
||||
USES ax,cx,edx
|
||||
mov edx,[@integer]
|
||||
mov ax,[@sizeofint]
|
||||
mov cx,ax
|
||||
shr ax,2
|
||||
sub cx,32
|
||||
neg cx
|
||||
shl edx,cl
|
||||
@@BCDaize:
|
||||
rol edx,4
|
||||
mov cl,dl
|
||||
and cl,0fh
|
||||
add cl,'0'
|
||||
call [cs:showchars],cx,0FFFFh
|
||||
dec al
|
||||
jnz @@BCDaize
|
||||
ret
|
||||
ENDP showbcd
|
||||
|
||||
;==========SHOWSTRING===========
|
||||
;Affiche une chaine de caractère pointée par ds:%1 aprés le curseur
|
||||
;-> ds:%1 pointeur chaine type pascal
|
||||
;<-
|
||||
;===============================
|
||||
PROC showstring FAR
|
||||
ARG @pointer:word
|
||||
USES bx,si
|
||||
mov si,[@pointer]
|
||||
mov bl,[si]
|
||||
@@strinaize:
|
||||
inc si
|
||||
call [cs:showchars],[word ptr si],0FFFFh
|
||||
dec bl
|
||||
jnz @@strinaize
|
||||
ret
|
||||
ENDP showstring
|
||||
|
||||
;==========showchars===========
|
||||
;Affiche un caractère %0 aprés le curseur
|
||||
;-> %0 caractère
|
||||
;<-
|
||||
;===============================
|
||||
PROC showchar FAR
|
||||
ARG @pointer:word
|
||||
call [cs:showchars],[@pointer],0FFFFh
|
||||
ret
|
||||
ENDP showchar
|
||||
|
||||
;==========SHOWSTRING0===========
|
||||
;Affiche une chaine de caractère pointée par ds:%1 aprés le curseur
|
||||
;-> ds:%1 pointeur chaine type zéro terminal
|
||||
;<-
|
||||
;================================
|
||||
PROC showstring0 FAR
|
||||
ARG @pointer:word
|
||||
USES cx,si
|
||||
mov si,[@pointer]
|
||||
@@strinaize0:
|
||||
mov cl,[si]
|
||||
cmp cl,0
|
||||
je @@no0
|
||||
call [cs:showchars],cx,0FFFFh
|
||||
inc si
|
||||
jmp @@strinaize0
|
||||
@@no0:
|
||||
ret
|
||||
ENDP showstring0
|
||||
|
266
noyau/8237.asm
|
@ -1,266 +0,0 @@
|
|||
;****************************************************************
|
||||
; *
|
||||
; Periph‚rique : DMA *
|
||||
; Plages Entr‚es-Sorties : 0000-000F *
|
||||
; 00C0-00DF *
|
||||
; 0080-0090 *
|
||||
; (0094-009F) *
|
||||
; Plages M‚moires : AUCUNES *
|
||||
; *
|
||||
DmaRead equ 044h ;I/O to memory, no autoinit, increment, single mode
|
||||
DmaWrite equ 048h ;Memory to I/O, no autoinit, increment, single mode
|
||||
|
||||
;Lecture des bits du registre d'‚tat (08, D0 )
|
||||
STATUS_REQ3 = 80h ;Bit actif: le canal DMA concern‚
|
||||
STATUS_REQ2 = 40h ;re‡oit une requˆte DMA
|
||||
STATUS_REQ1 = 20h ;Request
|
||||
STATUS_REQ0 = 10h
|
||||
STATUS_TC3 = 08h ;Bit actif: Un transfert DMA a ‚t‚
|
||||
STATUS_TC2 = 04h ;ex‚cut‚ depuis la derniŠre lecture
|
||||
STATUS_TC1 = 02h ;du registre d'‚tat.
|
||||
STATUS_TC0 = 01h ;Terminal Count
|
||||
|
||||
;Ecriture des bits du registre de commande (08, D0)
|
||||
COMMAND_DACKLEVEL = 80h ;Bit 7 actif: ligne DMA Acknowledge HIGH active
|
||||
COMMAND_DREQLEVEL = 40h ;Bit 6 actif: ligne REQ Acknowledge LOW active
|
||||
COMMAND_EXTWRITE = 20h ;Bit 5 actif: EXTENDED Write,sinon LATE Write
|
||||
COMMAND_FIXEDPRI = 10h ;Bit 4 actif: priorit‚ constante
|
||||
COMMAND_COMPRESS = 08h ;Bit 3 actif: compression
|
||||
COMMAND_INACTIVE = 04h ;Bit 2 actif: contr“leur d‚sactiv‚
|
||||
COMMAND_ADH0 = 02h ;Bit 1 actif: Adress Hold pour canal 0/4 d‚sactiv‚
|
||||
COMMAND_MEM2MEM = 01h ;Bit 0 actif: m‚moire/m‚moire, sinon m‚moire/p‚riph‚rie
|
||||
|
||||
;Ecriture des bits du registre de requˆte ( 09, D2 )
|
||||
REQUEST_RESERVED = 0F8h ;R‚glage des bits r‚serv‚s =0
|
||||
REQUEST_SET = 04h ;D‚finir requˆte DMA
|
||||
REQUEST_CLR = 00h ;Supprimer requˆte DMA
|
||||
REQUEST_MSK = 03h ;Indiquer le canal dans les deux bits du bas
|
||||
|
||||
;Ecriture des bits du registre de masquage de canal ( 0A, D4 )
|
||||
CHANNEL_RESERVED = 0F8h ;R‚glage des bits r‚serv‚s =0
|
||||
CHANNEL_SET = 04h ;Masquer/verrouiller canal DMA
|
||||
CHANNEL_CLR = 00h ;Lib‚rer canal DMA
|
||||
CHANNEL_MSK = 03h ;Indiquer le canal dans les deux bits du bas
|
||||
|
||||
;Ecriture des bits du registre de mode (0B,D6)
|
||||
MODE_DEMAND = 00h ;Transf‚rer … la demande
|
||||
MODE_SINGLE = 40h ;Transf‚rer valeurs uniques
|
||||
MODE_BLOCK = 80h ;Transf‚rer en bloc
|
||||
MODE_CASCADE = 0C0h ;Transf‚rer en cascade
|
||||
MODE_DECREMENT = 20h ;D‚cr‚menter
|
||||
MODE_AUTOINIT = 10h ;Autoinitialisation vers la fin
|
||||
MODE_VERIFY = 00h ;V‚rifier
|
||||
MODE_WRITE = 04h ;Ecrire dans la m‚moire
|
||||
MODE_READ = 08h ;Lire depuis la m‚moire
|
||||
MODE_INVALID = 0Ch ;Incorrect
|
||||
MODE_CHANNELMSK = 03h ;Indiquer le canal dans les deux bits du bas
|
||||
|
||||
;Ports du DMA esclave
|
||||
|
||||
DmaStatusS dw 08h ;R SLAVE Registre d'‚tat
|
||||
DmaCommandS dw 08h ;W SLAVE Registre de commande
|
||||
DmaRequestS dw 09h ;W SLAVE Ex‚cuter requˆte DMA
|
||||
DmachMaskS dw 0ah ;W SLAVE Masquer canaux
|
||||
DmaModeS dw 0bh ;W SLAVE Mode de transfert
|
||||
DmaFlipFlopS dw 0ch ;W SLAVE Flipflop adr/compteur
|
||||
DmaTempS dw 0dh ;R SLAVE Reset du contr“leur
|
||||
DmaClearS dw 0dh ;R SLAVE Registre temporaire
|
||||
DmaMaskClrS dw 0eh ;R SLAVE Lib‚rer canaux
|
||||
DmaMaskS dw 0fh ;R SLAVE Masquer canaux
|
||||
|
||||
;Ports du DMA esclave
|
||||
|
||||
DmaStatusM dw 0D0h ;R MASTER Registre d'‚tat
|
||||
DmaCommandM dw 0D0h ;W MASTER Registre de commande
|
||||
DmaRequestM dw 0D2h ;W MASTER Ex‚cuter requˆte DMA
|
||||
DmaMaskM dw 0D4h ;W MASTER Masquer canaux
|
||||
DmaModeM dw 0D6h ;W MASTER Mode de transfert
|
||||
DmaFlipFlopM dw 0D8h ;W MASTER Flipflop adr/compteur
|
||||
DmaTempM dw 0DAh ;R MASTER Reset du contr“leur
|
||||
DmaClearM dw 0DAh ;R MASTER Registre temporaire
|
||||
DmaMaskClrM dw 0DCh ;R MASTER Lib‚rer canaux
|
||||
DmaMaskM2 dw 0DEh ;R MASTER Masquer canaux
|
||||
|
||||
DmaAdress db 00h ;DMA address register 0
|
||||
db 002h ;DMA address register 1
|
||||
db 004h ;DMA address register 2
|
||||
db 006h ;DMA address register 3
|
||||
db 0c0h ;DMA address register 4
|
||||
db 0c4h ;DMA address register 5
|
||||
db 0c8h ;DMA address register 6
|
||||
db 0cch ;DMA address register 7
|
||||
|
||||
DmaCount db 001h ;DMA count registers 0
|
||||
db 003h ;DMA count registers 1
|
||||
db 005h ;DMA count registers 2
|
||||
db 007h ;DMA count registers 3
|
||||
db 0c2h ;DMA count registers 4
|
||||
db 0c6h ;DMA count registers 5
|
||||
db 0cah ;DMA count registers 6
|
||||
db 0ceh ;DMA count registers 7
|
||||
|
||||
DmaPage db 087h ;DMA page registers 0
|
||||
db 083h ;DMA page registers 1
|
||||
db 081h ;DMA page registers 2
|
||||
db 082h ;DMA page registers 3
|
||||
db 08fh ;DMA page registers 4
|
||||
db 08bh ;DMA page registers 5
|
||||
db 089h ;DMA page registers 6
|
||||
db 08ah ;DMA page registers 7
|
||||
|
||||
;verouille le canal AL
|
||||
DisableDma:
|
||||
push ax dx
|
||||
cmp al, 4
|
||||
jae MasterDisableDma
|
||||
mov dx, DmaMaskS
|
||||
or al, 00000100b
|
||||
out dx, al
|
||||
jmp EndDisableDma
|
||||
MasterDisableDma:
|
||||
mov dx, DmaMaskS
|
||||
and al, 00000011b
|
||||
or al, 00000100b
|
||||
out dx, al
|
||||
EndDisableDma:
|
||||
pop dx ax
|
||||
ret
|
||||
|
||||
;déverouille le canal AL
|
||||
EnableDma:
|
||||
push ax dx
|
||||
cmp al, 4
|
||||
jae MasterDisableDma
|
||||
mov dx, DmaMaskS
|
||||
out dx, al
|
||||
jmp EndEnableDma
|
||||
MasterEnableDma:
|
||||
mov dx, DmaMaskS
|
||||
and al, 00000011b
|
||||
out dx, al
|
||||
EndEnableDma:
|
||||
pop dx ax
|
||||
ret
|
||||
|
||||
;Efface le FlipFlop canal AL
|
||||
ClrDmaFlipFlop:
|
||||
push ax dx
|
||||
cmp al, 4
|
||||
jae MasterClrFlipFlopDma
|
||||
mov dx,DmaFlipFlopS
|
||||
xor ax, ax
|
||||
out dx, al
|
||||
jmp EndClrFlipFlopDma
|
||||
MasterClrFlipFlopDma:
|
||||
mov dx,DmaFlipFlopM
|
||||
xor ax, ax
|
||||
out dx, al
|
||||
EndClrFlipFlopDma:
|
||||
pop dx ax
|
||||
ret
|
||||
|
||||
;Met le mode du canal al à ah
|
||||
SetDmaMode:
|
||||
push ax dx
|
||||
cmp al, 4
|
||||
jae MasterSetDmaMode
|
||||
mov dx,DmaModeS
|
||||
or al, ah
|
||||
out dx, al
|
||||
jmp EndSetDmaMode
|
||||
MasterSetDmaMode:
|
||||
mov dx,DmaModeM
|
||||
and al, 00000011b
|
||||
or al, ah
|
||||
out dx, al
|
||||
EndSetDmaMode:
|
||||
pop dx ax
|
||||
ret
|
||||
|
||||
|
||||
;Met le page du canal al a ah
|
||||
SetDmaPage:
|
||||
push ax bx dx si
|
||||
cmp al, 4
|
||||
jae MasterSetDmaPage
|
||||
mov si, offset DmaPage
|
||||
xor dh, dh
|
||||
xor bh, bh
|
||||
mov bl, al
|
||||
mov dl, cs:[si+bx]
|
||||
xchg al, ah
|
||||
out dx, al
|
||||
jmp EndSetDmaPage
|
||||
MasterSetDmaPage:
|
||||
EndSetDmaPage:
|
||||
pop si dx bx ax
|
||||
ret
|
||||
|
||||
;Met l'adresse du canal al a DS:BX
|
||||
SetDmaAdress:
|
||||
push ax bx cx dx si
|
||||
push ax
|
||||
mov ax, ds
|
||||
and ax, 0000111111111111b
|
||||
shl ax,4
|
||||
add bx, ax
|
||||
mov ax, ds
|
||||
and ax, 1111000000000000b
|
||||
shr ax, 4
|
||||
mov cx,ax
|
||||
pop ax
|
||||
push ax
|
||||
add ax,cx
|
||||
call SetDmaPage
|
||||
pop ax
|
||||
call ClrDmaFlipFlop
|
||||
mov si, offset DmaAdress
|
||||
xor dh, dh
|
||||
push bx
|
||||
xor bh, bh
|
||||
mov bl, al
|
||||
mov dl, byte ptr cs:[si+bx]
|
||||
pop bx
|
||||
cmp al, 4
|
||||
jae MasterSetDmaAddress
|
||||
mov al, bh
|
||||
out dx, al
|
||||
mov al, bl
|
||||
out dx, al
|
||||
jmp EndSetDmaAddress
|
||||
MasterSetDmaAddress:
|
||||
mov al, bh
|
||||
out dx, al
|
||||
call ClrDmaFlipFlop
|
||||
mov al, bl
|
||||
out dx, al
|
||||
EndSetDmaAddress:
|
||||
pop si dx cx bx ax
|
||||
ret
|
||||
|
||||
;Spécifie au controleur DMA le nombre d'octets à transférer dans CX
|
||||
SetDmaCount:
|
||||
push ax bx dx si
|
||||
call ClrDmaFlipFlop
|
||||
mov si, offset DmaCount
|
||||
xor dh, dh
|
||||
xor bh, bh
|
||||
mov bl, al
|
||||
mov dl, byte ptr cs:[si+bx]
|
||||
cmp al, 4
|
||||
jae MasterSetDmaCount
|
||||
mov al, ch
|
||||
out dx, al
|
||||
mov al, cl
|
||||
out dx, al
|
||||
jmp EndSetDmaCount
|
||||
MasterSetDmaCount:
|
||||
mov al, ch
|
||||
out dx, al
|
||||
call ClrDmaFlipFlop
|
||||
mov al, cl
|
||||
out dx, al
|
||||
EndSetDmaCount:
|
||||
pop si dx bx ax
|
||||
ret
|
||||
|
415
noyau/8259a.asm
|
@ -1,415 +0,0 @@
|
|||
;Adresses de port du contr“leur IRQ
|
||||
MASTERPIC = 020h ;Adresse de base du PIC maŒtre
|
||||
SLAVEPIC = 0A0h ;Adresse de base du PIC esclave
|
||||
IRQMASK = 001h ;Offset sur port de masquage
|
||||
|
||||
;Commandes IRQ OCW2
|
||||
DISABLEROTATION = 000h ;Desactiver la rotation de priorités en mode EOI automatique
|
||||
EOI = 020h ;End of Interrupt non sp‚cifi‚
|
||||
COMMANDEOI = 060h ;Commande EOI particulière
|
||||
ENABLEROTATION = 080h ;Activer la rotation de priorités en mode EOI automatique
|
||||
ROTATIONNOSPEC = 0A0h ;Rotation des priorités en mode EOI automatique
|
||||
SETPRIORITY = 0C0h ;Definir la priorité
|
||||
ROTATIONSPEC = 0E0h ;Rotation des priorités en mode EOI spécifié
|
||||
|
||||
;Position des vecteurs d'interruptions
|
||||
MASTERFIRSTVECTOR = 008h ;Vecteurs logiciels des interruptions
|
||||
SLAVEFIRSTVECTOR = 070h ;‚lectroniques
|
||||
|
||||
;OCW3 codes registres
|
||||
IRR = 002h ;Interrupt Request Register
|
||||
ISR = 003h ;In Service Register
|
||||
;OCW3 et modes
|
||||
OCW3 = 008h ;OCW3
|
||||
POLLING = 004h ;Polling bit
|
||||
|
||||
|
||||
ISR = 0Bh ; Pas d'op‚ration, pas de Poll, lire ISR OCW3
|
||||
IRR = 0Ah ; Pas d'op‚ration, pas de Poll, lire IRR
|
||||
|
||||
;Autorise une interruption ‚lectronique
|
||||
;Entr‚e : %1 - Num‚ro de l'interruption (0-15) … autoriser 0-7 = MASTERPIC , 8-15 = SLAVEPIC
|
||||
PROC enableirq FAR
|
||||
ARG @irq:word
|
||||
USES ax,cx,dx
|
||||
mov ax,[@irq]
|
||||
mov dx,MASTERPIC+IRQMASK
|
||||
cmp al,7
|
||||
jbe @@master
|
||||
mov dx,SLAVEPIC+IRQMASK
|
||||
@@master:
|
||||
mov cl,al
|
||||
and cl,7
|
||||
mov al,1
|
||||
shl al,cl
|
||||
not al
|
||||
mov ah,al
|
||||
in al,dx
|
||||
and al,ah
|
||||
out dx,al
|
||||
ret
|
||||
endp enableirq
|
||||
|
||||
;Desactive une interruption ‚lectronique
|
||||
;Entr‚e : %0 - Num‚ro de l'interruption (0-15) … desactiver 0-7 = MASTERPIC , 8-15 = SLAVEPIC
|
||||
PROC disableirq FAR
|
||||
ARG @irq:word
|
||||
USES ax,cx,dx
|
||||
mov ax,[@irq]
|
||||
mov dx,MASTERPIC+IRQMASK
|
||||
cmp al,7
|
||||
jbe @@master
|
||||
mov dx,SLAVEPIC+IRQMASK
|
||||
@@master:
|
||||
mov cl,al
|
||||
and cl,7
|
||||
mov al,1
|
||||
shl al,cl
|
||||
not al
|
||||
mov ah,al
|
||||
in al,dx
|
||||
or al,ah
|
||||
out dx,al
|
||||
ret
|
||||
endp disableirq
|
||||
|
||||
|
||||
;Signale "End Of Interrupt" de l'interruption %0
|
||||
PROC seteoi FAR
|
||||
ARG @irq:word
|
||||
USES ax,dx
|
||||
mov ax,[@irq]
|
||||
cmp al,7
|
||||
jbe @@master
|
||||
mov al,EOI
|
||||
out SLAVEPIC,al
|
||||
@@master:
|
||||
mov al,EOI
|
||||
out MASTERPIC,al
|
||||
ret
|
||||
endp seteoi
|
||||
|
||||
|
||||
;Lit les masques d'un contr“leur IRQ dans ax, 0 master ou slave 1 ds %1
|
||||
PROC readimr FAR
|
||||
ARG @controleur:word
|
||||
USES bx,dx
|
||||
mov bx,[@controleur]
|
||||
mov dx,MASTERPIC+ IRQMASK
|
||||
cmp bl,0
|
||||
jne @@master
|
||||
mov dx,SLAVEPIC+ IRQMASK
|
||||
@@master:
|
||||
xor ah,ah
|
||||
in al,dx
|
||||
pop dx
|
||||
ret
|
||||
endp readimr
|
||||
|
||||
;Lit le registre d'‚tat d'un contr“leur IRQ dans ax, 0 master ou slave 1 ds %1
|
||||
PROC readisr FAR
|
||||
ARG @controleur:word
|
||||
USES bx,dx
|
||||
mov bx,[@controleur]
|
||||
mov dx,MASTERPIC
|
||||
cmp bh,0
|
||||
jne @@master
|
||||
mov dx,SLAVEPIC
|
||||
@@master:
|
||||
mov al,ISR
|
||||
out dx,al
|
||||
xor ah,ah
|
||||
in al,dx
|
||||
ret
|
||||
endp readisr
|
||||
|
||||
|
||||
;Lit le registre d'‚tat d'un contr“leur IRQ dans al, 0 master ou slave 1 ds bh
|
||||
PROC readirr FAR
|
||||
ARG @controleur:word
|
||||
USES bx,dx
|
||||
mov bx,[@controleur]
|
||||
mov dx,MASTERPIC
|
||||
cmp bh,0
|
||||
jne @@master
|
||||
mov dx,SLAVEPIC
|
||||
@@master:
|
||||
mov al,IRR
|
||||
out dx,al
|
||||
xor ah,ah
|
||||
in al,dx
|
||||
ret
|
||||
endp readirr
|
||||
|
||||
;carry si enable et pas carry si pas enable
|
||||
PROC isenableirq FAR
|
||||
ARG @irq:word
|
||||
USES ax,cx,dx
|
||||
mov ax,[@irq]
|
||||
mov dx,MASTERPIC+IRQMASK
|
||||
cmp al,7
|
||||
jbe @@master
|
||||
mov dx,SLAVEPIC+IRQMASK
|
||||
@@master:
|
||||
mov cl,al
|
||||
and cx,7
|
||||
in al,dx
|
||||
neg al
|
||||
bt ax,cx
|
||||
ret
|
||||
endp isenableirq
|
||||
|
||||
|
||||
;carry si enable et pas carry si pas enable
|
||||
PROC isinserviceirq FAR
|
||||
ARG @irq:word
|
||||
USES ax,cx,dx
|
||||
mov ax,[@irq]
|
||||
mov dx,MASTERPIC
|
||||
cmp al,7
|
||||
jbe @@master
|
||||
mov dx,SLAVEPIC
|
||||
@@master:
|
||||
mov cl,al
|
||||
mov al,ISR
|
||||
out dx,al
|
||||
and cx,7
|
||||
in al,dx
|
||||
neg al
|
||||
bt ax,cx
|
||||
ret
|
||||
endp isinserviceirq
|
||||
|
||||
|
||||
;carry si enable et pas carry si pas enable
|
||||
PROC isrequestirq FAR
|
||||
ARG @irq:word
|
||||
USES ax,cx,dx
|
||||
mov ax,[@irq]
|
||||
mov dx,MASTERPIC
|
||||
cmp al,7
|
||||
jbe @@master
|
||||
mov dx,SLAVEPIC
|
||||
@@master:
|
||||
mov cl,al
|
||||
mov al,IRR
|
||||
out dx,al
|
||||
and cx,7
|
||||
in al,dx
|
||||
neg al
|
||||
bt ax,cx
|
||||
ret
|
||||
endp isrequestirq
|
||||
|
||||
|
||||
PROC installirqhandler FAR
|
||||
USES eax,bx,cx,edx,si,di,ds,es
|
||||
push fs
|
||||
call mbcreate,offset interruptionbloc,256*size ints
|
||||
mov es,ax
|
||||
mov ax,0x0000
|
||||
mov ds,ax
|
||||
xor si,si
|
||||
@@searchdummypointer:
|
||||
mov fs,[(vector si).data.seg]
|
||||
mov bx,[(vector si).data.off]
|
||||
cmp [byte ptr fs:bx],0xCF ;iret
|
||||
je @@founded
|
||||
add si,size vector
|
||||
cmp si,256*4
|
||||
jb @@searchdummypointer
|
||||
xor edx,edx
|
||||
jmp @@suite
|
||||
@@founded:
|
||||
mov edx,[(vector si).content]
|
||||
@@suite:
|
||||
xor cx,cx
|
||||
xor si,si
|
||||
xor di,di
|
||||
cli
|
||||
@@copy:
|
||||
mov [es:(ints di).number],cl
|
||||
mov [es:(ints di).locked],0
|
||||
mov [es:(ints di).vector1.content],0
|
||||
mov [es:(ints di).vector3.content],0
|
||||
mov [es:(ints di).vector4.content],0
|
||||
mov [es:(ints di).vector5.content],0
|
||||
mov [es:(ints di).vector6.content],0
|
||||
mov [es:(ints di).vector7.content],0
|
||||
mov [es:(ints di).vector8.content],0
|
||||
mov [es:(ints di).launchedlow],0
|
||||
mov [es:(ints di).launchedhigh],0
|
||||
mov [es:(ints di).calledlow],0
|
||||
mov [es:(ints di).calledhigh],0
|
||||
mov eax,[(vector si).content]
|
||||
cmp eax,edx
|
||||
je @@notarealvector
|
||||
mov [es:(ints di).vector1.content],eax
|
||||
mov [es:(ints di).activated],1
|
||||
jmp @@copynext
|
||||
@@notarealvector:
|
||||
mov [es:(ints di).vector1.content],0
|
||||
mov [es:(ints di).activated],0
|
||||
@@copynext:
|
||||
mov bx,cx
|
||||
shl bx,3
|
||||
sub bx,cx
|
||||
add bx,offset coupling
|
||||
mov [(vector si).data.seg],cs
|
||||
mov [(vector si).data.off],bx
|
||||
add si,size vector
|
||||
add di,size ints
|
||||
inc cl
|
||||
cmp cl,0
|
||||
jne @@copy
|
||||
@@end:
|
||||
pop fs
|
||||
sti
|
||||
ret
|
||||
endp installirqhandler
|
||||
|
||||
|
||||
interruptionbloc db '/interrupts',0
|
||||
|
||||
|
||||
PROC savecontext FAR
|
||||
ARG @pointer:word
|
||||
USES eax,si,ds
|
||||
pushfd
|
||||
push eax
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
push esi
|
||||
push edi
|
||||
push ds
|
||||
push es
|
||||
push fs
|
||||
push gs
|
||||
push ss
|
||||
mov si,[@pointer]
|
||||
mov ds,[ss:bp+4]
|
||||
mov eax,ebp
|
||||
mov ax,[word ptr ss:bp]
|
||||
push eax
|
||||
push [word ptr ss:bp+4]
|
||||
xor eax,eax
|
||||
mov ax,[word ptr ss:bp+2]
|
||||
push eax
|
||||
mov ax,bp
|
||||
add ax,4
|
||||
push eax
|
||||
pop [(regs si).sesp]
|
||||
pop [(regs si).seip]
|
||||
pop [(regs si).scs]
|
||||
pop [(regs si).sebp]
|
||||
pop [(regs si).sss]
|
||||
pop [(regs si).sgs]
|
||||
pop [(regs si).sfs]
|
||||
pop [(regs si).ses]
|
||||
pop [(regs si).sds]
|
||||
pop [(regs si).sedi]
|
||||
pop [(regs si).sesi]
|
||||
pop [(regs si).sedx]
|
||||
pop [(regs si).secx]
|
||||
pop [(regs si).sebx]
|
||||
pop [(regs si).seax]
|
||||
pop [(regs si).seflags]
|
||||
ret
|
||||
endp savecontext
|
||||
|
||||
PROC restorecontextg FAR
|
||||
ARG @pointer:word
|
||||
mov si,[@pointer]
|
||||
pushd [cs:(regs si).sesi]
|
||||
pushd [cs:(regs si).seflags]
|
||||
mov eax,[cs:(regs si).seax]
|
||||
mov ebx,[cs:(regs si).sebx]
|
||||
mov ecx,[cs:(regs si).secx]
|
||||
mov edx,[cs:(regs si).sedx]
|
||||
mov edi,[cs:(regs si).sedi]
|
||||
mov ebp,[cs:(regs si).sebp]
|
||||
mov es,[cs:(regs si).ses]
|
||||
mov fs,[cs:(regs si).sfs]
|
||||
mov gs,[cs:(regs si).sgs]
|
||||
mov ds,[cs:(regs si).sds]
|
||||
popfd
|
||||
pop esi
|
||||
pop [cs:dummy]
|
||||
db 0xCA,0x02,0x00 ;retf 2
|
||||
endp restorecontextg
|
||||
|
||||
|
||||
|
||||
coupling:
|
||||
counter = 0
|
||||
REPEAT 256
|
||||
push counter+256
|
||||
push offset irqhandlers
|
||||
ret
|
||||
counter = counter + 1
|
||||
ENDM
|
||||
|
||||
interrupt dw 0
|
||||
dummy dw 0
|
||||
calling_reg regs <>
|
||||
function_reg regs <>
|
||||
|
||||
irqhandlers:
|
||||
cli
|
||||
pop [cs:interrupt]
|
||||
call savecontext,offset calling_reg
|
||||
call irqhandler,[cs:interrupt]
|
||||
call restorecontextg,offset calling_reg
|
||||
sti
|
||||
iret
|
||||
|
||||
PROC irqhandler NEAR
|
||||
ARG @int:word
|
||||
push cs
|
||||
pop ds
|
||||
call mbfindsb,offset interruptionbloc,cs
|
||||
jc @@end
|
||||
mov es,ax
|
||||
mov ax,[@int]
|
||||
sub ax,256
|
||||
mov cx,size ints
|
||||
mul cx
|
||||
mov si,ax
|
||||
add [es:(ints si).calledlow],1
|
||||
adc [es:(ints si).calledhigh],0
|
||||
cmp [es:(ints si).activated],1
|
||||
jne @@end
|
||||
add [es:(ints si).launchedlow],1
|
||||
adc [es:(ints si).launchedhigh],0
|
||||
lea si,[es:(ints si).vector1]
|
||||
mov cl,8
|
||||
@@launchall:
|
||||
cmp [es:(vector si).content],0
|
||||
je @@end
|
||||
push [word ptr cs:calling_reg.seflags]
|
||||
push cs
|
||||
push offset @@back
|
||||
push [es:(vector si).data.seg]
|
||||
push [es:(vector si).data.off]
|
||||
call savecontext,offset function_reg
|
||||
call restorecontextg,offset calling_reg
|
||||
db 0xCB
|
||||
@@back:
|
||||
cli
|
||||
call savecontext,offset calling_reg
|
||||
call restorecontextg,offset function_reg
|
||||
@@next:
|
||||
add si,size vector
|
||||
dec cl
|
||||
jnz @@launchall
|
||||
@@end:
|
||||
ret
|
||||
endp irqhandler
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
asm= lzasm /z/t
|
||||
lnk= elink
|
||||
|
||||
all: systeme.sys boot.bin
|
||||
|
||||
systeme.sys: video.obj disque.obj systeme.obj
|
||||
$(lnk) systeme.obj systeme.sys
|
||||
|
||||
systeme.obj: ..\lib\detect.lib ..\lib\video.lib video.sys disque.sys
|
||||
$(asm) systeme.asm
|
||||
|
||||
disque.sys:
|
||||
$(lnk) disque.obj disque.sys
|
||||
|
||||
video.sys:
|
||||
$(lnk) video.obj video.sys
|
||||
|
||||
boot.bin: boot.obj
|
||||
$(lnk) boot.obj boot.bin /bs
|
||||
|
||||
video.obj:
|
||||
$(asm) video.asm
|
||||
|
||||
disque.obj:
|
||||
$(asm) disque.asm
|
||||
|
||||
boot.obj:
|
||||
$(asm) boot.asm
|
||||
|
||||
clean:
|
||||
del *.obj
|
||||
del *.exe
|
||||
del *.bak
|
||||
del *.lib
|
||||
del *.com
|
||||
del *.bin
|
||||
del *.sys
|
||||
del *.err
|
216
noyau/boot.asm
|
@ -1,216 +0,0 @@
|
|||
model tiny,stdcall
|
||||
p486
|
||||
locals
|
||||
jumps
|
||||
codeseg
|
||||
option procalign:byte
|
||||
|
||||
include "..\include\mem.h"
|
||||
include "..\include\fat.h"
|
||||
include "..\include\divers.h"
|
||||
|
||||
org 7C00h
|
||||
|
||||
jmp boot
|
||||
|
||||
bootsec bootinfo <"COS2000A",512,1,1,2,224,2880,0F0h,9,18,2,0,0,0,0,0,29h,01020304h,"COS2000 ","FAT12 ">
|
||||
|
||||
errorloading db " [Erreur]",0dh,0ah,0
|
||||
okloading db "Recherche noyau ",0Dh,0ah," -"
|
||||
sys db "SYSTEME SYS",0
|
||||
syst db " [ Ok ]",0dh,0ah,"Chargement ",0
|
||||
dot db ".",0
|
||||
|
||||
|
||||
|
||||
errorboot:
|
||||
mov si,offset errorloading
|
||||
call showstr
|
||||
mov ah,0
|
||||
int 16h
|
||||
int 19h
|
||||
|
||||
boot:
|
||||
mov [bootsec.bootdrive],dl
|
||||
cli
|
||||
mov ax,09000h
|
||||
mov ss,ax
|
||||
mov sp,0FFFFh
|
||||
sti
|
||||
boot2:
|
||||
push cs
|
||||
push cs
|
||||
pop es
|
||||
pop ds
|
||||
xor ax,ax
|
||||
mov dl,[bootsec.bootdrive]
|
||||
int 13h
|
||||
jc errorboot
|
||||
mov si,offset okloading
|
||||
call showstr
|
||||
mov cx,[bootsec.reservedsectors]
|
||||
add cx,[bootsec.hiddensectorsh]
|
||||
adc cx,[bootsec.hiddensectorsl]
|
||||
push cx
|
||||
mov bx,[bootsec.sectorsperfat]
|
||||
mov di,offset bufferfat
|
||||
readfat:
|
||||
call readsector
|
||||
jc errorboot
|
||||
inc cx
|
||||
add di,[bootsec.sectorsize]
|
||||
dec bx
|
||||
jnz readfat
|
||||
pop cx
|
||||
xor ax,ax
|
||||
mov al,[bootsec.fatsperdrive]
|
||||
mov bx,[bootsec.sectorsperfat]
|
||||
mul bx
|
||||
add cx,ax
|
||||
mov ax,32
|
||||
mul [bootsec.directorysize]
|
||||
div [bootsec.sectorsize]
|
||||
add ax,cx
|
||||
sub ax,2
|
||||
mov [word ptr bootsec.reservedfornt],ax
|
||||
xor dx,dx
|
||||
checkroot:
|
||||
mov di,offset buffer
|
||||
call readsector
|
||||
jc errorboot
|
||||
xor bx,bx
|
||||
findnext:
|
||||
cmp [byte ptr di],0
|
||||
je errorboot
|
||||
cmp [byte ptr di],0E5h
|
||||
je no
|
||||
cmp [byte ptr di],041h
|
||||
je no
|
||||
mov si,offset dot
|
||||
call showstr
|
||||
push di cx
|
||||
mov si,offset sys
|
||||
mov cx,11
|
||||
rep cmpsb
|
||||
pop cx di
|
||||
je oksystem
|
||||
no:
|
||||
add di,32
|
||||
add bx,32
|
||||
inc dx
|
||||
cmp dx,[bootsec.directorysize]
|
||||
ja errorboot
|
||||
cmp bx,[bootsec.sectorsize]
|
||||
jb findnext
|
||||
inc cx
|
||||
jmp checkroot
|
||||
oksystem:
|
||||
mov si,offset syst
|
||||
call showstr
|
||||
mov cx,[di+26]
|
||||
mov ax,8000h
|
||||
mov es,ax
|
||||
push es
|
||||
mov di,0000h
|
||||
push 0010h
|
||||
mov si,offset dot
|
||||
xor ax,ax
|
||||
fatagain:
|
||||
cmp cx,0FF0h
|
||||
jae finishload
|
||||
push cx
|
||||
add cx,[word ptr bootsec.reservedfornt]
|
||||
call readsector
|
||||
pop cx
|
||||
jc errorboot
|
||||
inc ax
|
||||
call showstr
|
||||
add di,[bootsec.sectorsize]
|
||||
call getfat
|
||||
jnc fatagain
|
||||
finishload:
|
||||
retf
|
||||
|
||||
;=============READSECTOR (Fonction 01H)===============
|
||||
;Lit le secteur CX et le met en es:di
|
||||
;-> AH=1
|
||||
;<- Flag Carry si erreur
|
||||
;=====================================================
|
||||
readsector:
|
||||
push ax bx cx dx si
|
||||
mov ax,cx
|
||||
xor dx,dx
|
||||
div [bootsec.sectorspertrack]
|
||||
inc dl
|
||||
mov bl,dl
|
||||
xor dx,dx
|
||||
div [bootsec.headsperdrive]
|
||||
xchg dl,dh
|
||||
mov cx,ax
|
||||
xchg cl,ch
|
||||
shl cl,6
|
||||
or cl, bl
|
||||
mov bx,di
|
||||
mov si, 4
|
||||
mov al, 1
|
||||
tryagain:
|
||||
mov ah, 2
|
||||
mov dl,[bootsec.bootdrive]
|
||||
int 13h
|
||||
jnc done
|
||||
dec si
|
||||
jnz tryagain
|
||||
done:
|
||||
pop si dx cx bx ax
|
||||
ret
|
||||
|
||||
|
||||
getfat:
|
||||
push ax bx dx di
|
||||
mov di,offset bufferfat
|
||||
mov ax,cx
|
||||
mov bx,ax
|
||||
and bx,0000000000000001b
|
||||
shr ax,1
|
||||
mov cx,3
|
||||
mul cx
|
||||
add di,ax
|
||||
cmp bx,0h
|
||||
jnz evenfat
|
||||
oddfat:
|
||||
mov dx,[di]
|
||||
and dx,0FFFh
|
||||
mov cx,dx
|
||||
jmp endfat
|
||||
evenfat:
|
||||
mov dx,[di+1]
|
||||
and dx,0FFF0h
|
||||
shr dx,4
|
||||
mov cx,dx
|
||||
endfat:
|
||||
pop di dx bx ax
|
||||
ret
|
||||
|
||||
|
||||
showstr:
|
||||
push ax bx si
|
||||
again:
|
||||
lodsb
|
||||
or al,al
|
||||
jz fin
|
||||
mov ah,0Eh
|
||||
mov bx,07h
|
||||
int 10h
|
||||
jmp again
|
||||
fin:
|
||||
pop si bx ax
|
||||
ret
|
||||
|
||||
|
||||
db 055h,0AAh
|
||||
|
||||
endof:
|
||||
|
||||
buffer equ offset endof+2048
|
||||
bufferfat equ offset endof+4096
|
||||
|
|
@ -1,261 +0,0 @@
|
|||
.model tiny
|
||||
.486
|
||||
smart
|
||||
.code
|
||||
|
||||
org 0h
|
||||
|
||||
include ..\include\mem.h
|
||||
|
||||
start:
|
||||
|
||||
jmp tsr
|
||||
offsets dd 0
|
||||
db 'KEYBOARD'
|
||||
tsr:
|
||||
pushf
|
||||
db 2eh,0ffh,1eh
|
||||
dw offsets
|
||||
cli
|
||||
cmp cs:isstate,1
|
||||
je endofforce
|
||||
mov cs:isstate,1
|
||||
mov cs:eaxr,eax
|
||||
in al,60h
|
||||
cmp al,68
|
||||
je F10
|
||||
cmp al,87
|
||||
je F11
|
||||
cmp al,88
|
||||
je F12
|
||||
endof:
|
||||
mov cs:isstate,0
|
||||
mov eax,cs:eaxr
|
||||
endofforce:
|
||||
sti
|
||||
iret
|
||||
isstate db 0
|
||||
infos db 40 dup (0)
|
||||
feax dd 0
|
||||
|
||||
F10:
|
||||
push cs
|
||||
pop ds
|
||||
mov si,offset com
|
||||
mov ah,5
|
||||
int 49h
|
||||
pop ax
|
||||
pop ax
|
||||
pop ax
|
||||
push gs
|
||||
push gs
|
||||
push gs
|
||||
pop ds
|
||||
pop es
|
||||
pop fs
|
||||
push gs
|
||||
push size exe
|
||||
sti
|
||||
mov cs:[isstate],0
|
||||
retf
|
||||
|
||||
com db 'COMMANDE.CE',0
|
||||
|
||||
F11:
|
||||
push ax di es
|
||||
push cs
|
||||
pop es
|
||||
mov di,offset infos
|
||||
mov ah,34
|
||||
int 47h
|
||||
mov al,cs:[di+7]
|
||||
inc al
|
||||
cmp al,9
|
||||
jbe notabove
|
||||
mov al,0
|
||||
notabove:
|
||||
mov ah,0
|
||||
int 47h
|
||||
pop es di ax
|
||||
jmp endof
|
||||
|
||||
|
||||
f12:
|
||||
pushad
|
||||
pushf
|
||||
push ds
|
||||
mov cs:[eaxr],eax
|
||||
mov cs:[ebxr],ebx
|
||||
mov cs:[ecxr],ecx
|
||||
mov cs:[edxr],edx
|
||||
mov cs:[esir],esi
|
||||
mov cs:[edir],edi
|
||||
mov cs:[espr],esp
|
||||
mov cs:[ebpr],ebp
|
||||
mov cs:[csr],cs
|
||||
mov cs:[dsr],ds
|
||||
mov cs:[esr],es
|
||||
mov cs:[fsr],fs
|
||||
mov cs:[gsr],gs
|
||||
mov cs:[ssr],ss
|
||||
push cs
|
||||
pop ds
|
||||
mov si,offset sep
|
||||
call Showstr
|
||||
mov si,offset reg
|
||||
mov di,offset regdata
|
||||
mov bx,7
|
||||
showregs:
|
||||
cmp byte ptr cs:[si+6],":"
|
||||
jne endshowregs
|
||||
call Showstr
|
||||
cmp byte ptr cs:[si+4]," "
|
||||
je segsss
|
||||
mov edx,cs:[di]
|
||||
mov cx,32
|
||||
call Showhex
|
||||
add di,4
|
||||
jmp showmax
|
||||
segsss:
|
||||
mov dx,cs:[di]
|
||||
mov cx,16
|
||||
call Showhex
|
||||
add di,2
|
||||
showmax:
|
||||
add si,9
|
||||
mov bp,dx
|
||||
push si
|
||||
mov si,offset beginds
|
||||
call showstr
|
||||
mov si,bp
|
||||
mov cx,8
|
||||
mov al,0
|
||||
letshow:
|
||||
mov dl,ds:[si]
|
||||
inc si
|
||||
call showhex
|
||||
inc al
|
||||
cmp al,10
|
||||
jb letshow
|
||||
mov si,offset ende
|
||||
call showstr
|
||||
mov si,offset begines
|
||||
call showstr
|
||||
mov si,bp
|
||||
mov cx,8
|
||||
mov al,0
|
||||
letshow2:
|
||||
mov dl,es:[si]
|
||||
inc si
|
||||
call showhex
|
||||
inc al
|
||||
cmp al,10
|
||||
jb letshow2
|
||||
mov si,offset ende
|
||||
call showstr
|
||||
pop si
|
||||
jmp showregs
|
||||
endshowregs:
|
||||
mov si,offset sep
|
||||
call Showstr
|
||||
xor ax,ax
|
||||
int 16h
|
||||
pop ds
|
||||
popf
|
||||
popad
|
||||
jmp endof
|
||||
begines db ' es[',0
|
||||
beginds db ' ds[',0
|
||||
ende db '] ',0
|
||||
|
||||
|
||||
;==============================Affiche le nombre nb hexa en EDX de taille CX et couleur BL==============
|
||||
ShowHex:
|
||||
push ax bx cx edx si di
|
||||
mov di,cx
|
||||
sub cx,32
|
||||
neg cx
|
||||
shl edx,cl
|
||||
shr di,2
|
||||
mov ah,09h
|
||||
and bx,1111b
|
||||
Hexaize:
|
||||
rol edx,4
|
||||
mov si,dx
|
||||
and si,1111b
|
||||
mov al,[si+offset tab]
|
||||
push cx
|
||||
mov cx,1
|
||||
cmp al,32
|
||||
jb control2
|
||||
mov ah,09h
|
||||
int 10h
|
||||
control2:
|
||||
mov ah,0Eh
|
||||
int 10h
|
||||
pop cx
|
||||
dec di
|
||||
jnz Hexaize
|
||||
pop di si edx cx bx ax
|
||||
ret
|
||||
Tab db '0123456789ABCDEF'
|
||||
|
||||
;==============================Affiche une chaine DS:SI de couleur BL==============
|
||||
showstr:
|
||||
push ax bx cx si
|
||||
mov cx,1
|
||||
again:
|
||||
lodsb
|
||||
or al,al
|
||||
jz fin
|
||||
and bx,0111b
|
||||
cmp al,32
|
||||
jb control
|
||||
mov ah,09h
|
||||
int 10h
|
||||
control:
|
||||
mov ah,0Eh
|
||||
int 10h
|
||||
jmp again
|
||||
fin:
|
||||
pop si cx bx ax
|
||||
ret
|
||||
|
||||
|
||||
;================================================
|
||||
;Routine de débogage
|
||||
;================================================
|
||||
regdata:
|
||||
eaxr dd 0
|
||||
ebxr dd 0
|
||||
ecxr dd 0
|
||||
edxr dd 0
|
||||
esir dd 0
|
||||
edir dd 0
|
||||
espr dd 0
|
||||
ebpr dd 0
|
||||
csr dw 0
|
||||
dsr dw 0
|
||||
esr dw 0
|
||||
fsr dw 0
|
||||
gsr dw 0
|
||||
ssr dw 0
|
||||
|
||||
reg db 0Dh,0Ah,"eax : ",0
|
||||
db 0Dh,0Ah,"ebx : ",0
|
||||
db 0Dh,0Ah,"ecx : ",0
|
||||
db 0Dh,0Ah,"edx : ",0
|
||||
db 0Dh,0Ah,"esi : ",0
|
||||
db 0Dh,0Ah,"edi : ",0
|
||||
db 0Dh,0Ah,"esp : ",0
|
||||
db 0Dh,0Ah,"ebp : ",0
|
||||
db 0Dh,0Ah,"cs : ",0
|
||||
db 0Dh,0Ah,"ds : ",0
|
||||
db 0Dh,0Ah,"es : ",0
|
||||
db 0Dh,0Ah,"fs : ",0
|
||||
db 0Dh,0Ah,"gs : ",0
|
||||
db 0Dh,0Ah,"ss : ",0
|
||||
|
||||
sep db 0Ah,0Dh,'********************',0Ah,0Dh,0
|
||||
|
||||
end start
|