├── ASM ├── BOOT │ ├── MBR_BIOS.ASM │ └── MBR_RELAIS.ASM ├── DEF │ ├── 0u0.asm │ ├── 25u0.asm │ ├── F00u0.asm │ ├── be-azs.asm │ ├── bug1.asm │ ├── ch-qzf.asm │ ├── ch-qzg.asm │ ├── colemak.asm │ ├── dvorak.asm │ ├── en-qwi.asm │ ├── en-txt.asm │ ├── fr-aza.asm │ ├── fr-bpo.asm │ └── fr-txt.asm ├── NOYAU │ ├── CI_CD.ASM │ ├── CI_COP.ASM │ ├── CI_DIR.ASM │ ├── CI_EX.ASM │ ├── CI_LISTE.ASM │ ├── CI_REN.ASM │ ├── CI_SUP.ASM │ ├── DN_ACC.ASM │ ├── DN_CLAV_FR.ASM │ ├── DN_CLAV_USI.ASM │ ├── DN_CURS.ASM │ ├── DN_MSG_EN.ASM │ ├── DN_MSG_FR.ASM │ ├── DN_PALG.ASM │ ├── DN_POLG.ASM │ ├── DN_VARS.ASM │ ├── ETAGE1_DSQ.ASM │ ├── ETAGE1_ISO.ASM │ ├── ETAGE1_PXE.ASM │ ├── ETAGE2_EFI.ASM │ ├── ETAGE2_IMB.ASM │ ├── ETAGE2_MBR.ASM │ ├── ETAGE3.ASM │ ├── ETAGE4.ASM │ ├── ETAGE4b.ASM │ ├── SF_COM.ASM │ ├── SF_DISK.ASM │ ├── SF_FICH.ASM │ ├── SF_GEN.ASM │ ├── SF_INIT.ASM │ ├── SF_MAJV.ASM │ ├── SF_MEM.ASM │ ├── SF_PERI.ASM │ ├── SF_PORT.ASM │ ├── SF_RM.ASM │ ├── SF_TACHE.ASM │ ├── SF_USB.ASM │ ├── SF_VID.ASM │ └── cfg.sh └── PROG │ ├── 3C90X.asm │ ├── I8254X.asm │ ├── RTL8139.asm │ ├── ajarch.asm │ ├── calc.asm │ ├── cdg.asm │ ├── cdns.asm │ ├── cftp.asm │ ├── chttp.asm │ ├── circ.asm │ ├── crypto_code.inc │ ├── crypto_data.inc │ ├── ctftp.asm │ ├── curs_crx.inc │ ├── curs_fgd.inc │ ├── curs_fhb.inc │ ├── curs_txt.inc │ ├── date.asm │ ├── dcp.asm │ ├── edg.asm │ ├── edh.asm │ ├── edt.asm │ ├── expl.asm │ ├── fe.inc │ ├── hello.asm │ ├── help.asm │ ├── ics.asm │ ├── ip_code.inc │ ├── ip_data.inc │ ├── ipconfig.asm │ ├── jn1.asm │ ├── lspci.asm │ ├── lsusb.asm │ ├── man.asm │ ├── nlg_se.inc │ ├── palette.asm │ ├── partd.asm │ ├── pilote.asm │ ├── ping.asm │ ├── scanip.asm │ ├── shttp.asm │ ├── snif.asm │ ├── spxe.asm │ ├── stftp.asm │ ├── stlnt.asm │ ├── term.asm │ ├── trace.asm │ ├── utf8.asm │ ├── voir.asm │ └── whois.asm ├── BIN ├── 0u0.def ├── 1u0.def ├── 25u0.def ├── 3C90X.FE ├── AJARCH.FE ├── AUTOCOMP.CFG ├── BIOS.MBR ├── CALC.FE ├── CDNS.FE ├── CFG.ZIP ├── CFTP.FE ├── CHTTP.FE ├── CIRC.FE ├── CTFTP.FE ├── DATE.FE ├── DCP.FE ├── EDG.FE ├── EDH.FE ├── EDT.FE ├── ETAGE24.ASM ├── ETAGE3.BIN ├── ETAGE4.BIN ├── EXPL.CFG ├── EXPL.FE ├── F00u0.def ├── FASM.FE ├── FFu0.def ├── I8254X.FE ├── ICS.FE ├── IPCONFIG.FE ├── JN1.FE ├── LC.FE ├── LSPCI.CFG ├── LSPCI.FE ├── LSUSB.CFG ├── LSUSB.FE ├── MAN.FE ├── MAN.ZIP ├── MANUAL.TXT ├── MANUEL.TXT ├── MBR_BIOS.MBR ├── PARTD.FE ├── PILOTE.FE ├── PILOTEPCI.CFG ├── PING.FE ├── RELAIS.MBR ├── RTL8139.FE ├── SCANIP.FE ├── SDHCP.FE ├── SDNS.FE ├── SEAC.BAZ ├── SEAC.IMB ├── SEAC.IMG ├── SEAC.ISO ├── SEAC.PXE ├── SHTTP.FE ├── SNIF.FE ├── STFTP.FE ├── STLNT.FE ├── TERM.FE ├── TRACA.FE ├── TRACE.FE ├── USBCLASS.TXT ├── UTF8.FE ├── VETHER.FE ├── VOIR.FE ├── WHOIS.FE ├── be-azs.def ├── bepo.def ├── bug1.def ├── cfg.sh ├── colemak.def ├── dvorak.def ├── en-qwi.def ├── en-txt.def ├── fond.png ├── fr-aza.def ├── fr-txt.def ├── icones.png └── logo.png ├── C ├── FICHIER.c ├── HELLO.c ├── TEMPO.c ├── co.sh └── includes │ ├── base_seac.h │ ├── base_seac.s │ ├── seac.ld │ ├── seac_com.h │ ├── seac_fich.h │ ├── seac_gen.h │ ├── seac_port.h │ ├── seac_sec.h │ └── seac_vid.h ├── IMGWIKI ├── clavier.png ├── exemple1.png ├── rcrl.png ├── rorl.png ├── sar.png ├── shal.png ├── shr.png └── tecop.png ├── Makefile ├── OUTILS ├── ajarch ├── ajarch.exe ├── ajarchl.asm ├── ajarchw.asm ├── bootnet.asm ├── bootnet.exe ├── nlg_linux.inc └── nlg_win.inc ├── README.md ├── compilation.bat └── compilation.sh /ASM/BOOT/MBR_BIOS.ASM: -------------------------------------------------------------------------------- 1 | codeMBR: 2 | ;ce code d'amorçage recherche la présence d'une partition de type 30h dans la table du MBR, 3 | ;charge les premiers secteurs de la première partition 30h trouvé en 0000h:7E00h jusqu'a 80000h:FFFFh 4 | ;saute vers 0000h:7E00h 5 | 6 | 7 | ;ce code utillise les fonctions du BIOS 8 | 9 | type_part equ 30h 10 | 11 | 12 | use16 13 | org 7C00h 14 | xor ax,ax 15 | mov ds,ax 16 | mov es,ax 17 | mov ax,9000h 18 | mov ss,ax 19 | mov sp,0FFF0h 20 | mov [num_disque],dl ;dl=disque sur lequel le bios a booté 21 | 22 | 23 | 24 | ;test si la lecture des secteurs via fonction 42h est ok 25 | mov ah,41h 26 | mov dl,[num_disque] 27 | mov bx,55AAh 28 | int 13h 29 | jnc newpc 30 | 31 | ;si non recupère les carac physique du disque 32 | mov dl,[num_disque] 33 | mov ah,8 34 | int 13h 35 | and cx,3Fh ;cx=secteur par piste 36 | mov [sec_piste],cx 37 | xor ax,ax 38 | mov al,dh ;ax=nombre de tête 39 | mul cx 40 | mov [sec_cylindre],ax ;ax=nb de secteur par cylindre 41 | 42 | newpc: 43 | 44 | 45 | 46 | 47 | ;recherche une partition d'un type spécial 48 | mov si,1C2h+7C00h 49 | cmp byte[si],type_part 50 | je suite 51 | add si,10h 52 | cmp byte[si],type_part 53 | je suite 54 | add si,10h 55 | cmp byte[si],type_part 56 | je suite 57 | add si,10h 58 | cmp byte[si],type_part 59 | je suite 60 | 61 | mov si,messagerreur 62 | call afmsg 63 | infini: 64 | jmp infini 65 | 66 | suite: 67 | mov ebx,[si+4] ;charge le début de la partition de 0000h:7E00h à 9000h:FFFFh 68 | mov si,msgchargement 69 | call afmsg 70 | mov si,7E00h 71 | 72 | boucle_chargement: 73 | call chrg_sec 74 | inc ebx 75 | add si,200h 76 | cmp si,0 77 | jne boucle_chargement 78 | mov si,msgpoint 79 | call afmsg 80 | xor si,si 81 | mov ax,es 82 | add ax,1000h 83 | mov es,ax 84 | cmp ax,09000h 85 | jne boucle_chargement 86 | 87 | and byte[num_disque],0Fh 88 | add byte[num_disque],"0" 89 | 90 | mov si,messageok 91 | call afmsg 92 | jmp 0000h:7E00h ;saute sur la partition 93 | 94 | ;************************************************ 95 | ;sous fonctions 96 | 97 | afmsg: 98 | mov al,[si] 99 | cmp al,0 100 | jne affiche 101 | ret 102 | affiche: 103 | push ebx 104 | mov ah,0Eh 105 | mov bx,07h 106 | int 10h 107 | inc si 108 | pop ebx 109 | jmp afmsg 110 | 111 | 112 | chrg_sec: ;ebx=Numero de secteur es:si=zone ou copier 113 | pushad 114 | cmp word[sec_piste],0 115 | jne oldpc 116 | 117 | mov [ofsdap],si 118 | mov ax,es 119 | mov [segdap],ax 120 | mov [adressedap],ebx 121 | 122 | mov ah,42h 123 | mov dl,[num_disque] 124 | mov si,zt_dap 125 | int 13h 126 | jmp findec 127 | 128 | oldpc: 129 | mov ax,bx 130 | xor dx,dx 131 | mov cx,[sec_cylindre] 132 | div cx 133 | mov bx,ax ;bx=cylindre 134 | mov ax,dx 135 | mov cl,[sec_piste] ;nb de secteur par piste 136 | div cl 137 | mov dh,al 138 | mov cx,bx 139 | xchg cl,ch 140 | shl cl,6 141 | and cl,0C0h 142 | inc ah 143 | and ah,03Fh 144 | or cl,ah 145 | mov bp,5 146 | mov bx,si 147 | alfq: 148 | mov al,1 149 | mov ah,2 150 | mov dl,[num_disque] 151 | int 13h 152 | jnc findec 153 | dec bp 154 | jnz alfq 155 | findec: 156 | popad 157 | ret 158 | 159 | 160 | msgchargement: 161 | db 10,13,"chargement en cours",0 162 | msgpoint: 163 | db ".",0 164 | 165 | 166 | messagerreur: 167 | db 10,13,"pas de partition de type 30h detect",82h,0 168 | messageok: 169 | db 10,13,"lancement ok sur 8" 170 | num_disque: 171 | db 0,0 172 | 173 | 174 | sec_piste: 175 | dw 0 176 | sec_cylindre: 177 | dw 0 178 | 179 | 180 | zt_dap: 181 | db 10h 182 | db 0 183 | dw 1 184 | ofsdap: 185 | dw 0 186 | segdap: 187 | dw 0 188 | adressedap: 189 | dd 0,0 190 | 191 | 192 | 193 | ;82h = é 194 | 195 | ;8Ah = è 196 | 197 | ;88h = ê 198 | 199 | 200 | -------------------------------------------------------------------------------- /ASM/BOOT/MBR_RELAIS.ASM: -------------------------------------------------------------------------------- 1 | codeMBR: 2 | ;ce code d'amorçage charge le prmier secteur d'une partition marqué amorçable en 7c00h et saute sur celuis ci 3 | 4 | 5 | ;ce code utillise les fonctions du BIOS 6 | 7 | type_part equ 30h 8 | 9 | 10 | use16 11 | org 7C00h 12 | xor ax,ax 13 | mov ds,ax 14 | mov es,ax 15 | mov ax,9000h 16 | mov ss,ax 17 | mov sp,0FFF0h 18 | mov [num_disque],dl ;dl=disque sur lequel le bios a booté 19 | 20 | 21 | 22 | ;test si la lecture des secteurs via fonction 42h est ok 23 | mov ah,41h 24 | mov dl,[num_disque] 25 | mov bx,55AAh 26 | int 13h 27 | jnc newpc 28 | 29 | ;si non recupère les carac physique du disque 30 | mov dl,[num_disque] 31 | mov ah,8 32 | int 13h 33 | and cx,3Fh ;cx=secteur par piste 34 | mov [sec_piste],cx 35 | xor ax,ax 36 | mov al,dh ;ax=nombre de tête 37 | mul cx 38 | mov [sec_cylindre],ax ;ax=nb de secteur par cylindre 39 | 40 | newpc: 41 | 42 | 43 | 44 | 45 | ;recherche une partition d'un type spécial 46 | mov si,1BEh+7C00h 47 | test byte[si],80h 48 | jnz suite 49 | add si,10h 50 | test byte[si],80h 51 | jnz suite 52 | add si,10h 53 | test byte[si],80h 54 | jnz suite 55 | add si,10h 56 | test byte[si],80h 57 | jnz suite 58 | 59 | mov si,messagerreur 60 | call afmsg 61 | infini: 62 | jmp infini 63 | 64 | suite: 65 | mov ebx,[si+8] ;charge le premier secteur en 8000h 66 | mov si,8000h 67 | call chrg_sec 68 | 69 | 70 | 71 | 72 | and byte[num_disque],0Fh 73 | add byte[num_disque],"0" 74 | mov si,messageok 75 | call afmsg 76 | 77 | 78 | mov si,7C00h ;duplique le code en 7E00h 79 | mov di,7E00h 80 | mov cx,512 81 | rep movsb 82 | jmp 0000h:fin+200h ;et continue sur la version dupliqué 83 | 84 | fin: 85 | mov si,8000h ;recopie le code précédamenct chargé a la bonne place 86 | mov di,7C00h 87 | mov cx,512 88 | rep movsb 89 | jmp 0000h:07C00h ;et saute dessus! 90 | 91 | 92 | ;************************************************ 93 | ;sous fonctions 94 | 95 | afmsg: 96 | mov al,[si] 97 | cmp al,0 98 | jne affiche 99 | ret 100 | affiche: 101 | push ebx 102 | mov ah,0Eh 103 | mov bx,07h 104 | int 10h 105 | inc si 106 | pop ebx 107 | jmp afmsg 108 | 109 | 110 | chrg_sec: ;ebx=Numero de secteur es:si=zone ou copier 111 | pushad 112 | cmp word[sec_piste],0 113 | jne oldpc 114 | 115 | mov [ofsdap],si 116 | mov ax,es 117 | mov [segdap],ax 118 | mov [adressedap],ebx 119 | 120 | mov ah,42h 121 | mov dl,[num_disque] 122 | mov si,zt_dap 123 | int 13h 124 | jmp findec 125 | 126 | oldpc: 127 | mov ax,bx 128 | xor dx,dx 129 | mov cx,[sec_cylindre] 130 | div cx 131 | mov bx,ax ;bx=cylindre 132 | mov ax,dx 133 | mov cl,[sec_piste] ;nb de secteur par piste 134 | div cl 135 | mov dh,al 136 | mov cx,bx 137 | xchg cl,ch 138 | shl cl,6 139 | and cl,0C0h 140 | inc ah 141 | and ah,03Fh 142 | or cl,ah 143 | mov bp,5 144 | mov bx,si 145 | alfq: 146 | mov al,1 147 | mov ah,2 148 | mov dl,[num_disque] 149 | int 13h 150 | jnc findec 151 | dec bp 152 | jnz alfq 153 | findec: 154 | popad 155 | ret 156 | 157 | 158 | messagerreur: 159 | db 10,13,"pas de partition amorçable detect",82h,0 160 | messageok: 161 | db 10,13,"lancement ok sur 8" 162 | num_disque: 163 | db 0,0 164 | 165 | 166 | sec_piste: 167 | dw 0 168 | sec_cylindre: 169 | dw 0 170 | 171 | 172 | zt_dap: 173 | db 10h 174 | db 0 175 | dw 1 176 | ofsdap: 177 | dw 0 178 | segdap: 179 | dw 0 180 | adressedap: 181 | dd 0,0 182 | 183 | 184 | 185 | ;82h = é 186 | 187 | ;8Ah = è 188 | 189 | ;88h = ê 190 | 191 | 192 | -------------------------------------------------------------------------------- /ASM/DEF/0u0.asm: -------------------------------------------------------------------------------- 1 | db "DEFG" 2 | db 8 ;largeur caractère (valeur possible: 8, 16, et 32) 3 | db 16 ;hauteur caractère (valeur possible: 16 et 32) 4 | dw 0 ;remplissage 5 | dd 000h ;numéros du premier caractère (doit etre aligné sur 256) 6 | dd 0 ;remplissage 7 | 8 | 9 | include "../NOYAU/DN_POLG.ASM" 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ASM/DEF/25u0.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/DEF/25u0.asm -------------------------------------------------------------------------------- /ASM/DEF/F00u0.asm: -------------------------------------------------------------------------------- 1 | 摢•䑅䙇∍੤戠㠠††㭬慲来畲⁣慲慣瓨牥
癡汥畲⁰潳獩扬攺‸ⰠㄶⰠ整″㈩ഊ摢‱㘠†※桡畴敵爠捡牡捴攠⡶慬敵爠灯獳楢汥㨠ㄶ⁥琠㌲⤍੤眠〠††㭲敭灬楳獡来ഊ摤‰䘰〰と†㭮畭潳⁤甠灲敭楥爠捡牡捴攠⡤潩琠整牥⁡汩杮獵爠㈵㘩ഊ摤‰††※牥浰汩獳慧攍਍਍਻獭楬敹⁥渠㠠灡牴楥
桡畴⤍ਠ†††††††††ഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〱ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〱〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〱〰〰ぢഊ摢‰〱〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊഊ摢‰〰〰〰ぢഊ摢‰〰ㄱㄱㅢഊ摢‰ㄱ〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‱ㄱ〰〰ぢഊ摢‱ㄱ〰〰ぢഊ摢‱ㄱ〰〰ぢഊ摢‱ㄱ〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊ摢‰〰〰〰ぢഊ摢‱ㄱㄱ〰ぢഊ摢‰〰〰ㄱぢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰ㄱㅢഊ摢‰〰〰ㄱㅢഊ摢‰〰〰ㄱㅢഊ摢‰〰〰ㄱㅢഊ摢‰〰〰〱ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰〱〰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊഊഊഊഊ㭶攠⡨慵琩ഊഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〱ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〱〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〱〰〰ぢഊ摢‰〱〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊഊ摢‰〰〰〰ぢഊ摢‰〰ㄱㄱㅢഊ摢‰ㄱ〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰〱〰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊ摢‰〰〰〰ぢഊ摢‱ㄱㄱ〰ぢഊ摢‰〰〰ㄱぢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〱ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〱〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰〱〰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊഊഊഊഊ㭬潳慮来⁥渠㡸
桡畴⤍਍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〱戍੤戠〰〰〰ㄱ戍੤戠〰〰〱ㄱ戍੤戠〰〰ㄱㄱ戍੤戠〰〱ㄱㄱ戍੤戠〰ㄱㄱㄱ戍੤戠〱ㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍਍੤戠〰〰〰〱戍੤戠〰〰〰ㄱ戍੤戠〰〰〱ㄱ戍੤戠〰〰ㄱㄱ戍੤戠〰〱ㄱㄱ戍੤戠〰ㄱㄱㄱ戍੤戠〱ㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍਍੤戠㄰〰〰〰戍੤戠ㄱ〰〰〰戍੤戠ㄱ㄰〰〰戍੤戠ㄱㄱ〰〰戍੤戠ㄱㄱ㄰〰戍੤戠ㄱㄱㄱ〰戍੤戠ㄱㄱㄱ㄰戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍੤戠ㄱㄱㄱㄱ戍਍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠㄰〰〰〰戍੤戠ㄱ〰〰〰戍੤戠ㄱ㄰〰〰戍੤戠ㄱㄱ〰〰戍੤戠ㄱㄱ㄰〰戍੤戠ㄱㄱㄱ〰戍੤戠ㄱㄱㄱ㄰戍੤戠ㄱㄱㄱㄱ戍਍਍਍਍਍਍਻敮捯牮整潣桥
桡畴⤍਍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰ㄱㄱ戍੤戠〰ㄱ〰〰戍੤戠〱〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰ㄱ㄰戍੤戠〰〱〰〱戍੤戠〰㄰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〱戍੤戠〰〰〰〱戍੤戠〰〰〰㄰戍੤戠〰〰〱〰戍੤戠〰〰〱〰戍਍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠ㄱ〰〰〰戍੤戠〰㄰〰〰戍੤戠〰〱〰〰戍੤戠〰〰㄰〰戍੤戠〰〰㄰〰戍੤戠㄰〰㄰〰戍੤戠㄰〰㄰〰戍੤戠〰〱〰〰戍੤戠〰〱〰〰戍੤戠〰㄰〰〰戍੤戠〰㄰〰〰戍੤戠〱〰〰〱戍਍੤戠〰〰〰〰戍੤戠〰〰〰ㄱ戍੤戠〰〰ㄱㄱ戍੤戠〰〱ㄱㄱ戍੤戠〰ㄱㄱ㄰戍੤戠〰ㄱㄱ〱戍੤戠〱ㄱ㄰ㄱ戍੤戠〱ㄱ〱ㄱ戍੤戠〱㄰ㄱㄱ戍੤戠〱〱ㄱㄱ戍੤戠〰ㄱㄱㄱ戍੤戠〱ㄱㄱㄱ戍੤戠〱ㄱㄱㄱ戍੤戠ㄱㄱㄱ㄰戍੤戠ㄱㄱㄱ㄰戍੤戠ㄱㄱㄱ〱戍਍੤戠〰〰〰〰戍੤戠ㄱㄱ㄰〰戍੤戠ㄱ㄰〱〰戍੤戠㄰〱㄰㄰戍੤戠〱ㄱ㄰㄰戍੤戠ㄱㄱ〱㄰戍੤戠ㄱㄱ〱㄰戍੤戠ㄱ㄰ㄱ㄰戍੤戠ㄱ〱ㄱ㄰戍੤戠㄰ㄱㄱ㄰戍੤戠㄰ㄱㄱ〰戍੤戠〱ㄱㄱ〰戍੤戠〱ㄱ㄰〰戍੤戠ㄱㄱ〰〰戍੤戠ㄱ〰〰〰戍੤戠㄰〰〰〰戍਍਍਍਍਍਍਍਻獭楬敹⁥渠㠠灡牴楥
扡猩ഊഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰〱〰〰ㅢഊ摢‰〱〰〱ぢഊ摢‰〰㄰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ挸㔺ഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰ㄱ〰〰ぢഊ摢‰〰ㄱ㄰ぢഊ摢‰〰〰〱ㅢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰ㄱ〰〰ぢഊ摢‰〰ㄱㄱㅢഊ摢‰〰〰〰ぢഊ挸㘺†††††††††‍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〱戍੤戠〰〰〰〰戍੤戠〰〰〰〱戍੤戠〰〰〱㄰戍੤戠〰ㄱ㄰〰戍੤戠ㄱ〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〱戍੤戠〰〰〱㄰戍੤戠ㄱㄱ㄰〰戍੤戠〰〰〰〰戍੣㠷㨠†††††††††‍੤戠〰〰〰㄰戍੤戠〰〰〰㄰戍੤戠〰〰〰㄰戍੤戠〰〰〰㄰戍੤戠〰〰〰㄰戍੤戠㄰〰〱〰戍੤戠〱〰〱〰戍੤戠〰〰㄰〰戍੤戠〰〰㄰〰戍੤戠〰〱〰〰戍੤戠〰㄰〰〰戍੤戠〱〰〰〰戍੤戠㄰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍਍਍਍਍਍਍਍਍਍਍਍਍਍਻盩滨牥
扡猩ഊഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰〱〰〰ㅢഊ摢‰〱〰〱ぢഊ摢‰〰㄰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊ摢‰〰〰〰ぢഊ摢‰〰〰〱ㅢഊ摢‰〰ㄱ㄰ぢഊ摢‰ㄱ〰〰ぢഊ摢‱〰㄰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〰〱ㅢഊ摢‰〰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰ㄱ〰〰ぢഊ摢‰〰ㄱㄱㅢഊ摢‰〰〰〰ぢഊഊ摢‰〰〰〰ぢഊ摢‱㄰〰〰ぢഊ摢‰〱ㄱ〰ぢഊ摢‰〰〰ㄱぢഊ摢‰〰〱〰ㅢഊ摢‰〰〱〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〱〰〰ぢഊ摢‱㄰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ㅢഊ摢‰〰〰ㄱぢഊ摢‱ㄱㄱ〰ぢഊ摢‰〰〰〰ぢഊഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‰〰〰〱ぢഊ摢‱〰〰㄰ぢഊ摢‰㄰〰㄰ぢഊ摢‰〰〱〰ぢഊ摢‰〰〱〰ぢഊ摢‰〰㄰〰ぢഊ摢‰〱〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊഊഊഊഊ㭬潳慮来⁥渠㡸
扡猩ഊഊഊ摢‱ㄱㄱㄱㅢഊ摢‰ㄱㄱㄱㅢഊ摢‰〱ㄱㄱㅢഊ摢‰〰ㄱㄱㅢഊ摢‰〰〱ㄱㅢഊ摢‰〰〰ㄱㅢഊ摢‰〰〰〱ㅢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‰ㄱㄱㄱㅢഊ摢‰〱ㄱㄱㅢഊ摢‰〰ㄱㄱㅢഊ摢‰〰〱ㄱㅢഊ摢‰〰〰ㄱㅢഊ摢‰〰〰〱ㅢഊ摢‰〰〰〰ㅢഊഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱぢഊ摢‱ㄱㄱ㄰ぢഊ摢‱ㄱㄱ〰ぢഊ摢‱ㄱ㄰〰ぢഊ摢‱ㄱ〰〰ぢഊ摢‱㄰〰〰ぢഊ摢‱〰〰〰ぢഊഊ摢‱ㄱㄱㄱㅢഊ摢‱ㄱㄱㄱぢഊ摢‱ㄱㄱ㄰ぢഊ摢‱ㄱㄱ〰ぢഊ摢‱ㄱ㄰〰ぢഊ摢‱ㄱ〰〰ぢഊ摢‱㄰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊഊഊഊഊഊഊ㭥湣潲湥琠浯捨攠⡢慳⤍਍੤戠〰〰㄰〰戍੤戠〰〰㄰〰戍੤戠〰〱〰〱戍੤戠〰〱〰〱戍੤戠〰〱〰㄰戍੤戠〰㄰〰㄰戍੤戠〰㄰〰㄰戍੤戠〰㄰〰㄰戍੤戠〰〱〰〱戍੤戠〰〱〰〰戍੤戠〰〱〰〰戍੤戠〰〰㄰〰戍੤戠〰〰〱㄰戍੤戠〰〰〰〱戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍਍੤戠㄰〰〰〱戍੤戠㄰〰〰〱戍੤戠〰〰〰〱戍੤戠〰㄰〰ㄱ戍੤戠〱〰〰ㄱ戍੤戠〱〰〰ㄱ戍੤戠〰㄰〰ㄱ戍੤戠〰〱㄰ㄱ戍੤戠㄰〰〱ㄱ戍੤戠〱ㄱ㄰〱戍੤戠〰〰〰㄰戍੤戠〰〰ㄱ〰戍੤戠〰ㄱ〰〱戍੤戠ㄱ〰〱㄰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍਍੤戠〱ㄱㄱ〰戍੤戠〰ㄱ㄰〰戍੤戠ㄱㄱ㄰〰戍੤戠ㄱㄱ〰〰戍੤戠ㄱㄱ〰〰戍੤戠ㄱ㄰〰〰戍੤戠ㄱ㄰〰〰戍੤戠ㄱ〰〰〰戍੤戠ㄱ〰〰〱戍੤戠〱〰〰㄰戍੤戠㄰㄰〰㄰戍੤戠㄰㄰〰㄰戍੤戠〰㄰〰〱戍੤戠〱〰〰〰戍੤戠㄰〰〰〰戍੤戠〰〰〰〰戍਍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍੤戠㄰〰ㄱ〰戍੤戠〱〱〰〰戍੤戠〱〱ㄱ〰戍੤戠〱〱〰㄰戍੤戠㄰〰ㄱ〰戍੤戠〰㄰〰〰戍੤戠〰〰〰〰戍੤戠〰〰〰〰戍਍਍਍਍਍਻獭楬敹⁥渠摥畸⁰慲瑩攺ഊഊ摢‰〰〰ㄱㅢഊ摢‰〰ㄱ〰ぢഊ摢‰〱〰〰ぢഊ摢‰㄰〰〰ぢഊ摢‰㄰〰㄰ぢഊ摢‱〰〱ㄱぢഊ摢‱〰〰㄰ぢഊ摢‱〰〰〰ぢഊ摢‱〰〰〰ぢഊ摢‱〰㄰〰ぢഊ摢‱〰㄰〰ぢഊ摢‰㄰〱㄰ぢഊ摢‰㄰〰〱ㅢഊ摢‰〱〰〰ぢഊ摢‰〰ㄱ〰ぢഊ摢‰〰〰ㄱㅢഊഊഊഊ摢‱ㄱ〰〰ぢഊ摢‰〰ㄱ〰ぢഊ摢‰〰〰㄰ぢഊ摢‰〰〰〱ぢഊ摢‰〱〰〱ぢഊ摢‰ㄱ㄰〰ㅢഊ摢‰〱〰〰ㅢഊ摢‰〰〰〰ㅢഊ摢‰〰〰〰ㅢഊ摢‰〰〱〰ㅢഊ摢‰〰〱〰ㅢഊ摢‰〱㄰〱ぢഊ摢‱㄰〰〱ぢഊ摢‰〰〰㄰ぢഊ摢‰〰ㄱ〰ぢഊ摢‱ㄱ〰〰ぢഊഊഊഊ摢‰〰〰〰ぢ†††††ഊ摢‰〰〰〰ぢഊ摢‰〱ㄱ〰ぢഊ摢‰ㄱㄱ㄰ぢഊ摢‱〰㄰〱ぢഊ摢‱〰㄰〱ぢഊ摢‱ㄱㄱㄱぢഊ摢‰ㄱㄱ㄰ぢഊ摢‰〱ㄱ〰ぢഊ摢‰〱ㄱ〰ぢഊ摢‰〰〰〰ぢഊ摢‰〱ㄱ〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊഊഊ摢‰〰〰〰ぢ††ഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〱ㄱ〰ぢഊ摢‰㄰〰㄰ぢഊ摢‱〰〰〱ぢഊ摢‱〱〱〱ぢഊ摢‱〰〰〱ぢഊ摢‱〰〰〱ぢഊ摢‱〱〱〱ぢഊ摢‱〰㄰〱ぢഊ摢‰㄰〰㄰ぢഊ摢‰〱ㄱ〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊ摢‰〰〰〰ぢഊഊ 2 | -------------------------------------------------------------------------------- /ASM/DEF/bug1.asm: -------------------------------------------------------------------------------- 1 | qemu: ;definition pour clavier ps2 pour le problème de mélange de touche avec qemu 2 | 3 | db "DEFC" 4 | dw touche_codeps2 ;adresse de la définition PS/2 5 | dw 0 ;adresse de la définition usb 6 | dw 0 ;adresse de la définition clavier principale 7 | dw 0 ;adresse de la définition clavier secondaire 8 | dw 0 ;adresse de la définition chasse 9 | db 0,0 ;numéros de touches a employer avec la touche CTRL pour basculer d'un jeu de carractère a un autre 10 | 11 | 12 | 13 | 14 | 15 | ;**************************************************************** 16 | ;liste des code touche pour clavier PS2 17 | 18 | touche_codeps2: 19 | db 001h,000h,000h,000h ;esc #001 20 | db 03Bh,000h,000h,000h ;F1 #002 21 | db 03Ch,000h,000h,000h ;F2 #003 22 | db 03Dh,000h,000h,000h ;F3 #004 23 | db 03Eh,000h,000h,000h ;F4 #005 24 | db 03Fh,000h,000h,000h ;F5 #006 25 | db 040h,000h,000h,000h ;F6 #007 26 | db 041h,000h,000h,000h ;F7 #008 27 | db 042h,000h,000h,000h ;F8 #009 28 | db 043h,000h,000h,000h ;F9 #010 29 | db 044h,000h,000h,000h ;F10 #011 30 | db 057h,000h,000h,000h ;F11 #012 31 | db 058h,000h,000h,000h ;F12 #013 32 | db 0E0h,02Ah,0E0h,037h ;impr ecran #014 33 | db 046h,000h,000h,000h ;stop defil #015 34 | db 0E1h,01Dh,045h,000h ;pause #016 35 | db 028h,000h,000h,000h ;² #017 36 | db 002h,000h,000h,000h ;1 #018 37 | db 003h,000h,000h,000h ;2 #019 38 | db 004h,000h,000h,000h ;3 #020 39 | db 005h,000h,000h,000h ;4 #021 40 | db 006h,000h,000h,000h ;5 #022 41 | db 007h,000h,000h,000h ;6 #023 42 | db 008h,000h,000h,000h ;7 #024 43 | db 009h,000h,000h,000h ;8 #025 44 | db 00Ah,000h,000h,000h ;9 #026 45 | db 00Bh,000h,000h,000h ;0 #027 46 | db 01Ah,000h,000h,000h ;° #028 47 | db 00Dh,000h,000h,000h ;+ #029 48 | db 00Eh,000h,000h,000h ;back #030 49 | db 00Fh,000h,000h,000h ;tab #031 50 | db 01Eh,000h,000h,000h ;a #032 51 | db 02Ch,000h,000h,000h ;z #033 52 | db 012h,000h,000h,000h ;e #034 53 | db 013h,000h,000h,000h ;r #035 54 | db 014h,000h,000h,000h ;t #036 55 | db 015h,000h,000h,000h ;y #037 56 | db 016h,000h,000h,000h ;u #038 57 | db 017h,000h,000h,000h ;i #039 58 | db 018h,000h,000h,000h ;o #040 59 | db 019h,000h,000h,000h ;p #041 60 | db 01Bh,000h,000h,000h ;^ #042 61 | db 027h,000h,000h,000h ;$ #043 62 | db 01Ch,000h,000h,000h ;entre #044 63 | db 03Ah,000h,000h,000h ;lock #045 64 | db 010h,000h,000h,000h ;q #046 65 | db 01Fh,000h,000h,000h ;s #047 66 | db 020h,000h,000h,000h ;d #048 67 | db 021h,000h,000h,000h ;f #049 68 | db 022h,000h,000h,000h ;g #050 69 | db 023h,000h,000h,000h ;h #051 70 | db 024h,000h,000h,000h ;j #052 71 | db 025h,000h,000h,000h ;k #053 72 | db 026h,000h,000h,000h ;l #054 73 | db 032h,000h,000h,000h ;m #055 74 | db 029h,000h,000h,000h ;ù #056 75 | db 02Bh,000h,000h,000h ;* #057 76 | db 02Ah,000h,000h,000h ;maj g #058 77 | db 056h,000h,000h,000h ;< #059 ??? 78 | db 011h,000h,000h,000h ;w #060 79 | db 02Dh,000h,000h,000h ;x #061 80 | db 02Eh,000h,000h,000h ;c #062 81 | db 02Fh,000h,000h,000h ;v #063 82 | db 030h,000h,000h,000h ;b #064 83 | db 031h,000h,000h,000h ;n #065 84 | db 033h,000h,000h,000h ;? #066 85 | db 034h,000h,000h,000h ;. #067 86 | db 035h,000h,000h,000h ;/ #068 87 | db 049h,000h,000h,000h ;! #069 ??? 88 | db 036h,000h,000h,000h ;maj dr #070 89 | db 01Dh,000h,000h,000h ;ctrl g #071 90 | db 038h,000h,000h,000h ;alt g #072 91 | db 039h,000h,000h,000h ;espace #073 92 | db 0E0h,038h,000h,000h ;alt gr #074 93 | db 0E0h,01Dh,000h,000h ;ctrl d #075 94 | db 0E0h,052h,000h,000h ;inser #076 95 | db 0E0h,047h,000h,000h ;top #077 96 | db 0E0h,049h,000h,000h ;page haut #078 97 | db 0E0h,053h,000h,000h ;suppr #079 98 | db 0E0h,04Fh,000h,000h ;fin #080 99 | db 0E0h,051h,000h,000h ;page bas #081 100 | db 0E0h,048h,000h,000h ;fl haut #082 101 | db 0E0h,04Bh,000h,000h ;fl gauche #083 102 | db 0E0h,050h,000h,000h ;fl bas #084 103 | db 0E0h,04Dh,000h,000h ;fl droit #085 104 | db 045h,000h,000h,000h ;verr num #086 105 | db 0E0h,035h,000h,000h ;/ #087 106 | db 037h,000h,000h,000h ;* #088 107 | db 04Ah,000h,000h,000h ;- #089 108 | db 047h,000h,000h,000h ;7 #090 109 | db 048h,000h,000h,000h ;8 #091 110 | db 049h,000h,000h,000h ;9 #092 111 | db 04Eh,000h,000h,000h ;+ #093 112 | db 04Bh,000h,000h,000h ;4 #094 113 | db 04Ch,000h,000h,000h ;5 #095 114 | db 04Dh,000h,000h,000h ;6 #096 115 | db 04Fh,000h,000h,000h ;1 #097 116 | db 050h,000h,000h,000h ;2 #098 117 | db 051h,000h,000h,000h ;3 #099 118 | db 0E0h,01Ch,000h,000h ;entre pav n #100 119 | db 052h,000h,000h,000h ;0 #101 120 | db 053h,000h,000h,000h ;. #102 121 | db 0E0h,05Bh,000h,000h ;win g #103 122 | db 0E0h,05Ch,000h,000h ;win d #104 123 | db 0E0h,05Dh,000h,000h ;list d #105 124 | db 0E0h,05Eh,000h,000h ;inc1 #106 125 | db 0E0h,05Fh,000h,000h ;inc2 #107 126 | db 0E0h,063h,000h,000h ;inc3 #108 127 | db 000h,000h,000h,000h ; #109 128 | db 000h,000h,000h,000h ; #110 129 | db 000h,000h,000h,000h ; #111 130 | db 000h,000h,000h,000h ; #112 131 | db 000h,000h,000h,000h ; #113 132 | db 000h,000h,000h,000h ; #114 133 | db 000h,000h,000h,000h ; #115 134 | db 000h,000h,000h,000h ; #116 135 | db 000h,000h,000h,000h ; #117 136 | db 000h,000h,000h,000h ; #118 137 | db 000h,000h,000h,000h ; #119 138 | db 000h,000h,000h,000h ; #120 139 | db 000h,000h,000h,000h ; #121 140 | db 000h,000h,000h,000h ; #122 141 | db 000h,000h,000h,000h ; #123 142 | db 000h,000h,000h,000h ; #124 143 | db 000h,000h,000h,000h ; #125 144 | db 000h,000h,000h,000h ; #126 145 | db 000h,000h,000h,000h ; #127 146 | db 000h,000h,000h,000h ; #128 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /ASM/DEF/colemak.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/DEF/colemak.asm -------------------------------------------------------------------------------- /ASM/DEF/dvorak.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/DEF/dvorak.asm -------------------------------------------------------------------------------- /ASM/DEF/en-qwi.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/DEF/en-qwi.asm -------------------------------------------------------------------------------- /ASM/DEF/en-txt.asm: -------------------------------------------------------------------------------- 1 | ;fichier de définition message systeme en anglais 2 | 3 | org 0 4 | db "DEFL" 5 | dd messages_erreur,fin_messages 6 | db "EN",0,0 7 | 8 | 9 | include "../NOYAU/DN_MSG_EN.ASM" 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ASM/DEF/fr-aza.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/DEF/fr-aza.asm -------------------------------------------------------------------------------- /ASM/DEF/fr-txt.asm: -------------------------------------------------------------------------------- 1 | ;fichier de définition message systeme en Français 2 | 3 | org 0 4 | db "DEFL" 5 | dd messages_erreur,fin_messages 6 | db "FR",0,0 7 | 8 | 9 | include "../NOYAU/DN_MSG_FR.ASM" 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ASM/NOYAU/CI_CD.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/CI_CD.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/CI_COP.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/CI_COP.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/CI_DIR.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/CI_DIR.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/CI_EX.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/CI_EX.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/CI_LISTE.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/CI_LISTE.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/CI_REN.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/CI_REN.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/CI_SUP.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/CI_SUP.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/DN_ACC.ASM: -------------------------------------------------------------------------------- 1 | dn_acc.asm: 2 | ;table de combinaison entre les suites d'une chasse et le caractère associé pour produire des caractères accentué 3 | ;4o=caractère de chasse 4o=lettre simple 4o=caractère resultant 4 | 5 | dd 060h,041h,0C0h ;À 6 | dd 0B4h,041h,0C1h ;Á 7 | dd 05Eh,041h,0C2h ; 8 | dd 07Eh,041h,0C3h ;à 9 | dd 0A8h,041h,0C4h ;Ä 10 | dd 2DAh,041h,0C5h ;Å 11 | dd 0B8h,043h,0C7h ;Ç 12 | dd 060h,045h,0C8h ;È 13 | dd 0B4h,045h,0C9h ;É 14 | dd 05Eh,045h,0CAh ;Ê 15 | dd 0A8h,045h,0CBh ;Ë 16 | dd 060h,049h,0CCh ;Ì 17 | dd 0B4h,049h,0CDh ;Í 18 | dd 05Eh,049h,0CEh ;Î 19 | dd 0A8h,049h,0CFh ;Ï 20 | dd 07Eh,04Eh,0D1h ;Ñ 21 | dd 060h,04Fh,0D2h ;Ò 22 | dd 0B4h,04Fh,0D3h ;Ó 23 | dd 05Eh,04Fh,0D4h ;Ô 24 | dd 07Eh,04Fh,0D5h ;Õ 25 | dd 0A8h,04Fh,0D6h ;Ö 26 | dd 060h,055h,0D9h ;Ù 27 | dd 0B4h,055h,0DAh ;Ú 28 | dd 05Eh,055h,0DBh ;Û 29 | dd 0A8h,055h,0DCh ;Ü 30 | dd 0B4h,059h,0DDh ;Ý 31 | dd 060h,061h,0E0h ;à 32 | dd 0B4h,061h,0E1h ;á 33 | dd 05Eh,061h,0E2h ;â 34 | dd 07Eh,061h,0E3h ;ã 35 | dd 0A8h,061h,0E4h ;ä 36 | dd 2DAh,061h,0E5h ;å 37 | dd 0B8h,063h,0E7h ;ç 38 | dd 060h,065h,0E8h ;è 39 | dd 0B4h,065h,0E9h ;é 40 | dd 05Eh,065h,0EAh ;ê 41 | dd 0A8h,065h,0EBh ;ë 42 | dd 060h,069h,0ECh ;ì 43 | dd 0B4h,069h,0EDh ;í 44 | dd 05Eh,069h,0EEh ;î 45 | dd 0A8h,069h,0EFh ;ï 46 | dd 07Eh,06Eh,0F1h ;ñ 47 | dd 060h,06Fh,0F2h ;ò 48 | dd 0B4h,06Fh,0F3h ;ó 49 | dd 05Eh,06Fh,0F4h ;ô 50 | dd 07Eh,06Fh,0F5h ;õ 51 | dd 0A8h,06Fh,0F6h ;ö 52 | dd 060h,075h,0F9h ;ù 53 | dd 0B4h,075h,0FAh ;ú 54 | dd 05Eh,075h,0FBh ;û 55 | dd 0A8h,075h,0FCh ;ü 56 | dd 0B4h,079h,0FDh ;ý 57 | dd 0A8h,079h,0FFh ;ÿ 58 | dd 0A8h,059h,178h ;Ÿ 59 | 60 | 61 | 62 | ;******************************************************* 63 | ;rajout non officiels 64 | 65 | dd 0A4h,041h,0C6h ;Æ ;rajout non officiel avec le caractère monétaire comme chasse 66 | dd 0A4h,061h,0E6h ;æ 67 | dd 0A4h,04Fh,152h ;Œ 68 | dd 0A4h,06Fh,153h ;œ 69 | dd 0A4h,073h,17Fh ;ſ 70 | dd 0A4h,053h,0DFh ;ß 71 | dd 0A4h,02Fh,0F7h ;÷ 72 | dd 2DAh,04Fh,0D8h ;Ø ;rajout non officiel avec le l'accent rond 73 | dd 2DAh,06Fh,0F8h ;ø 74 | 75 | 76 | dd 0 77 | -------------------------------------------------------------------------------- /ASM/NOYAU/DN_CLAV_FR.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/DN_CLAV_FR.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/DN_CLAV_USI.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/DN_CLAV_USI.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/DN_CURS.ASM: -------------------------------------------------------------------------------- 1 | ;curseur souris, bitmap 16*16 en 256 couleur. couleur 0FFh=couleur transparente 2 | 3 | db 018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 4 | db 018h,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 5 | db 018h,018h,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 6 | db 018h,018h,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 7 | db 018h,018h,018h,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 8 | db 018h,018h,018h,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 9 | db 018h,018h,018h,018h,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 10 | db 018h,018h,018h,018h,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 11 | db 018h,018h,018h,018h,018h,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 12 | db 018h,018h,018h,018h,018h,01Ch,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 13 | db 018h,018h,018h,018h,018h,018h,01Ch,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh 14 | db 018h,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 15 | db 018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 16 | db 018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 17 | db 018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 18 | db 018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 19 | -------------------------------------------------------------------------------- /ASM/NOYAU/DN_MSG_EN.ASM: -------------------------------------------------------------------------------- 1 | dn_msg_en: 2 | ;message systeme uttilisé par SeAC 3 | ;doit être entregistré au format utf8 4 | 5 | 6 | messages_systeme: 7 | db 1Ah,0C2h,080h,0C2h,081h,0C2h,082h,0C2h,083h,1Fh,"SEAC",1Ah," V0.23 May 2025 development version",13 8 | db 0C2h,084h,0C2h,085h,0C2h,086h,0C2h,087h,1Fh,"S",1Ah,"ysteme d'",1Fh,"E",1Ah,"xploitation ",1Fh,"A",1Ah,"proximativement ",1Fh,"C",1Ah,"omplet",17h,13,0 9 | 10 | 11 | db 13,16h,"unknown command: ",0 ;1 12 | db 13,16h,"directory not found: ",0 ;2 13 | db 13,16h,"Error while executing the command ",34,0 ;3 14 | db 13,16h,"Task not found: ",0 ;4 15 | db 13,16h,"Unable to go further up the file tree",17h,13,0 ;5 16 | db 13,16h,"unrecognized file format",13,0 ;6 17 | db 13,16h,"Video mode not supported",13,0 ;7 18 | db 0 ;8 19 | db 13,16h,"Locked video mode change",13,0 ;9 20 | 21 | 22 | ;message des exceptions 23 | db "Divide Error",0 ;ex0 message 10 24 | db "Debug Exception",0 ;ex1 25 | db "Nonmaskable external interrupt",0 ;ex2 26 | db "Breakpoint",0 ;ex3 27 | db "Overflow",0 ;ex4 28 | db "BOUND Range Exceeded",0 ;ex5 29 | db "Invalid Opcode (Undefined Opcode)",0 ;ex6 30 | db "No Math Coprocessor",0 ;ex7 31 | db "Double fault",0 ;ex8 32 | db "CoProcessor Segment Overrun",0 ;ex9 33 | db "Invalid TSS",0 ;ex10 34 | db "Segment Not Present",0 ;ex11 35 | db "Stack fault",0 ;ex12 36 | db "General protection fault",0 ;ex13 37 | db "Page Fault",0 ;ex14 38 | db "Exception # 15",0 ;ex15 39 | db "x87 FPU Floating-Point Error",0 ;ex16 40 | db "Alignment Check",0 ;ex17 41 | db "Machine Check",0 ;ex18 42 | db "SIMD Floating-Point Exception",0 ;ex19 43 | db "Virtualization Exception",0 ;ex20 44 | db "exception # 21",0 ;21 45 | db "exception # 22",0 ;22 46 | db "exception # 23",0 ;23 47 | db "exception # 24",0 ;24 48 | db "exception # 25",0 ;25 49 | db "exception # 26",0 ;26 50 | db "exception # 27",0 ;27 51 | db "exception # 28",0 ;28 52 | db "exception # 29",0 ;29 53 | db "exception # 30",0 ;30 54 | db "exception # 31",0 ;ex31 message 41 55 | 56 | db 13,"Process # ",0 ;42 57 | db " caused the exception: ",0 ;43 58 | db " after step ",0 ;44 59 | db 13,"the main task had to be restarted",17h,13,0 ;45 60 | db 13,"the faulty task had to be stopped",17h,13,0 ;46 61 | db "impossible to reserve memory",0 ;47 seul texte qui doit être codé en ISO 8859-1 et pas en UTF8 62 | db 1Ch,"detection of an error in memory, erasure of corrupted memory",17h,13,0 ;48 63 | db 0 ;49 64 | 65 | 66 | 67 | 68 | 69 | db 13,"List of disks:",13,"#dm Ram Disk",13,0 ;50 70 | db 13,"Liste des partitions et disques amovibles detecté:",13,0 ;51 71 | db " Unknown partition type(",0 ;52 72 | db " damaged partition of ",0 ;53 73 | db " partition type FAT12 of",0 ;54 74 | db " partition type FAT16 of ",0 ;55 75 | db " partition type FAT32 of ",0 ;56 76 | db " partition type exFAT of ",0 ;57 77 | db " partition type Ext2 of ",0 ;58 78 | db " partition type Ext3 of ",0 ;59 79 | db " partition type TOD of ",0 ;60 80 | db " partition type NTFS of ",0 ;61 81 | db " partition type SFS of ",0 ;62 82 | db 0 ;63 83 | db 0 ;64 84 | db 0 ;65 85 | db 0 ;66 86 | db 0 ;67 87 | db 0 ;68 88 | db "#di Floppy Drive",13,0 ;69 89 | 90 | db 13,"List of files in the folder: ",0 ;70 91 | 92 | db 13,"List of Tasks running:",13,0 ;71 93 | 94 | 95 | db 13,"memory organization:",13,0 ;72 96 | db "free memory: ",0 ;73 97 | db 13,"memory used by system: ",0 ;74 98 | db 13,"memory used by task: ",0 ;75 99 | db 13,"memory used by communication between tasks: ",0 ;76 100 | db 13,"total memory: ",0 ;77 101 | 102 | db " bytes",13,0 ;78 103 | db 0 ;79 104 | 105 | db 13,"List of video modes supported:",13,0 ;80 106 | db " text",13,0;81 107 | db "bits banked memory",13,0 ;82 108 | db "bits linear memory",13,0 ;83 109 | db 0 ;84 110 | db 0 ;85 111 | db 0 ;86 112 | db " file has been loaded for the language definition",13,0 ;87 113 | db " file has been loaded for the keyboard definition",13,0 ;88 114 | db " file has been loaded for the graphic character definition",13,0 ;89 115 | 116 | db 0 ;90 117 | db 0 ;91 118 | db "forced stop of task ",0 ;92 119 | db "modification of the execution time of the task ",0 ;93 120 | db "the system folder has been defined",13,0 ;94 121 | db " has been copied to ",0 ;95 122 | db " has been removed",13,0 ;96 123 | db " file has been renamed to ",0 ;97 124 | db "the ",0 ;98 125 | db "error during HID device initialization",13,0 ;99 126 | db "USB device ",34,0; 100 127 | db 34," has been connected to address ", 0; 101 128 | db "error when connecting a new USB device during phase ",0; 102 129 | db "disconnection of USB device", 0; 103 130 | db 0;104 131 | db 0;105 132 | db 0;106 133 | db 0;107 134 | db 0;108 135 | db 0;109 136 | db "error while opening input file",0 ;110 137 | 138 | db "error while opening output file",0 ;111 139 | 140 | db "error while opening input folder",0 ;112 141 | 142 | db "error while opening output folder",0 ;113 143 | 144 | db "error while creating input file",0 ;114 145 | 146 | db "error while creating output file",0 ;115 147 | 148 | db "error while creating input folder",0 ;116 149 | 150 | db "error while creating output folder",0 ;117 151 | 152 | db "error while reading from input file",0 ;118 153 | 154 | db "error while reading from output file",0 ;119 155 | 156 | db "error while reading from input folder",0 ;120 157 | 158 | db "error while reading from output folder",0 ;121 159 | 160 | db "error while writing to input file",0 ;122 161 | 162 | db "error while writing to output file",0 ;123 163 | 164 | db "error while writing to input folder",0 ;124 165 | 166 | db "error while writing to output folder",0 ;125 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | ;************************************************************************ 175 | messages_erreur: 176 | db "execution sans probleme",0 177 | db "parameter error",13,0 ;erreur 1 178 | db "read error",13,0 ;erreur 2 179 | db "drive / disk / file not found",13,0 ;erreur 3 180 | db "file system error",13,0 ;erreur 4 181 | db "writing error",13,0 ;erreur 5 182 | db "no disk response",13,0 ;erreur 6 183 | db "disk busy",13,0 ;erreur 7 184 | db "file already open",13,0 ;erreur 8 185 | db "forbidden reading",13,0 ;erreur 9 186 | db "forbidden opening",13,0 ;erreur 10 187 | db "not enougth memory",13,0 ;erreur 11 188 | db "the open file is a folder",13,0 ;erreur 12 189 | db "error of unknown origin",13,0 ;erreur 13 190 | db "unrecognized number of colors",13,0 ;erreur 14 191 | db "screen missing",13,0 ;erreur 15 192 | db "unauthorized action",13,0 ;erreur 16 193 | db "empty buffer zone",13,0 ;erreur 17 194 | db "full buffer zone",13,0 ;erreur 18 195 | db "controller does not respond",13,0 ;erreur 19 196 | db "controller absent",13,0 ;erreur 20 197 | db "cannot delete folder because it is not empty",13,0 ;erreur 21 198 | db "forbidden character in file name",13,0 ;erreur 22 199 | db "file creation not possible",13,0 ;erreur 23 200 | db "file name already used",13,0 ;erreur 24 201 | db "no answer",13,0 ;erreur 25 202 | db "structure error",13,0 ;erreur 26 203 | db "data available",13,0 ;erreur 27 204 | db "data not available",13,0 ;erreur 28 205 | db "memory area unavailable",13,0 ;erreur 29 206 | db "memory area outside physical memory",13,0 ;erreur 30 207 | db "UHCI controller error",13,0 ;erreur 31 208 | db "OHCI controller error",13,0 ;erreur 32 209 | db "EHCI controller error",13,0 ;erreur 33 210 | db "XHCI controller error",13,0 ;erreur 34 211 | db "Stack overflow or underflow",13,0 ;erreur 35 212 | db "Invalid arithmetic operation",13,0 ;erreur 36 213 | db "Invalid operation",13,0 ;erreur 37 214 | db "Denormalized operand",13,0 ;erreur 38 215 | db "Divide-by-zero",13,0 ;erreur 39 216 | db "Numeric overflow",13,0 ;erreur 40 217 | db "Numeric underflow",13,0 ;erreur 41 218 | db "Inexact result (precision)",13,0 ;erreur 42 219 | 220 | 221 | 222 | fin_messages: 223 | -------------------------------------------------------------------------------- /ASM/NOYAU/DN_PALG.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/DN_PALG.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/DN_POLG.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/DN_POLG.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/DN_VARS.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/DN_VARS.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE1_DSQ.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/ETAGE1_DSQ.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE1_ISO.ASM: -------------------------------------------------------------------------------- 1 | cdrom: ;image disque amorçable, a la fois pour cdrom et pour disque dur 2 | use16 3 | org 0h 4 | 5 | 6 | 7 | 8 | ;macro pour la génération de donnée spécifique a iso9660 9 | 10 | 11 | ;doubles dw 12 | macro dwlm v 13 | { 14 | dw v 15 | db (v shr 8) 16 | db (v and 0xFF) 17 | } 18 | 19 | 20 | ;double dd 21 | macro ddlm v 22 | { 23 | dd v 24 | db ((v shr 24) and 0xFF) 25 | db ((v shr 16) and 0xFF) 26 | db ((v shr 8) and 0xFF) 27 | db (v and 0xFF) 28 | } 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | ;******************************************************* 44 | ;partie pour démarrer sur disque dur 45 | MBR: 46 | file "../../BIN/BIOS.MBR" 47 | 48 | 49 | rb 446 + MBR - $ 50 | ;partition de protection du systeme de fichier iso9660 (finalement inutile) 51 | ;db 0 ;partition bootable? 52 | ;db 0,0,0 ;coordonnée CHS 53 | ;db 031h ;type de partition(bidon) 54 | ;db 0,0,0 ;coordonné CHS de fin 55 | ;dd 1 ;adresse de début 56 | ;dd (secteur_partition_boot/512)-1 ;taille 57 | 58 | ;partition contenant l'image boutable 59 | db 0 ;partition bootable? 60 | db 0,0,0 ;coordonnée CHS 61 | db 030h ;type de partition (30h=partition image boot seac) 62 | db 0,0,0 ;coordonné CHS de fin 63 | dd secteur_partition_boot/512 ;adresse de début 64 | dd ((finsecteur_partition_boot-secteur_partition_boot)/512) ;taille 65 | 66 | 67 | 68 | rb 510 + MBR - $ 69 | db 055h,0AAh 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | rb 16*2048-$ 84 | 85 | 86 | 87 | 88 | 89 | secteur_iso9660: ;primary volume descriptor https://wiki.osdev.org/ISO_9660 90 | db 1,"CD001",1,0 91 | rb 32 ;system identifier 92 | rb 32 ;volume identifier 93 | rb 8 ;innutilisé 94 | ddlm (fin_image_iso/2048) ;nombre de secteur du volume 95 | rb 32 ;innutilisé 96 | dw 0,0 ; 97 | dw 0,0 ; 98 | dw 0,0 ; 99 | dd 0,0 ; 100 | dd 0 ; 101 | dd 0 ; 102 | dd 0 ; 103 | dd 0 ; 104 | 105 | ;descripteur du dossier racine 106 | db 34,0 ;longueur descripteur 107 | ddlm (secteur_dossier/2048);position fichier 108 | ddlm (fin_secteur_dossier-secteur_dossier) ;taille fichier 109 | db 85,4,28,12,20,0,4 110 | db 0,0,0 ;attributs 111 | dwlm 0 ;numéros de volume 112 | db 10 ;taille du nom du fichier 113 | db 0 114 | 115 | 116 | rb 128 ; 117 | rb 128 ; 118 | rb 128 ; 119 | rb 128 ; 120 | rb 37 ; 121 | rb 37 ; 122 | rb 37 ; 123 | rb 17 ; 124 | rb 17 ; 125 | rb 17 ; 126 | rb 17 ; 127 | db 1 ;version 128 | db 0 ;innutilisé 129 | 130 | 131 | rb 2048 + secteur_iso9660 - $ 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | ;voir chapitre2.5 de la spec "el torito" pour avoir le descriptif des tables 141 | 142 | 143 | 144 | secteur_eltorito: ;secteur de boot 145 | db 0 146 | db "CD001" 147 | db 1 148 | db "EL TORITO SPECIFICATION" 149 | rb 41 150 | dd 18 ;numéro du secteur ou se trouve le catalogue 151 | 152 | rb 2048 + secteur_eltorito - $ 153 | 154 | secteur_catalogue: 155 | 156 | ;validation entry pour x86 157 | dd 1,0,0,0,0,0,0 158 | db 0AAh,055h,055h,0AAh 159 | 160 | ;entrée par defaut 161 | 162 | ;sans emulation 163 | ;db 88h ;signale que boutable 164 | ;db 0 ;type d'emulation (0=sans) 165 | ;dw 7E0h ;segment ou charger l'image 166 | ;db 0 ;system type 167 | ;db 0 ;innutilisé 168 | ;dw (finsecteur_partition_boot-secteur_partition_boot)/2048 ;nombre de secteur chargé au démarrage 169 | ;dd secteur_partition_boot/2048 ;adresse du secteur ou commence l'image 170 | ;dd 0,0,0,0,0 ;innutilisé 171 | 172 | ;emulation de disque dur 173 | ;db 88h ;signale que boutable 174 | ;db 4 ;type d'emulation (4=disque dur) 175 | ;dw 0 ;segment ou charger l'image 176 | ;db 0 ;system type 177 | ;db 0 ;innutilisé 178 | ;dw finsecteur_partition_boot/2048 ;nombre de secteur chargé au démarrage 179 | ;dd 0 ;adresse du secteur ou commence l'image 180 | ;dd 0,0,0,0,0 ;innutilisé 181 | 182 | ;emulation de disquette 183 | db 88h ;signale que boutable 184 | db 2 ;type d'emulation (2=disquette) 185 | dw 0 ;segment ou charger l'image 186 | db 0 ;system type 187 | db 0 ;innutilisé 188 | dw 720 ;nombre de secteur chargé au démarrage? 189 | dd (secteur_fichier_image/2048) ;adresse du secteur ou commence l'image 190 | dd 0,0,0,0,0 ;innutilisé 191 | 192 | 193 | ;entrée finale 194 | dd 91h,0,0,0 195 | dd 0,0,0,0 196 | 197 | rb 2048 + secteur_catalogue - $ 198 | 199 | 200 | ;*************************************************dossier racine de l'image de cdrom 201 | secteur_dossier: 202 | db 44,0 ;longueur descripteur 203 | ddlm 0 ;position fichier 204 | ddlm fin_image_iso ;taille fichier 205 | db 85,4,28,12,20,0,4 206 | db 0,0,0 ;attributs 207 | dwlm 0 ;numéros de volume 208 | db 10 ;taille du nom du fichier 209 | db "SEAC.ISO;1" 210 | db 0 211 | 212 | db 46,0 ;longueur descripteur 213 | ddlm (secteur_readme/2048) ;position fichier 214 | ddlm (finsecteur_readme-secteur_readme) ;taille fichier 215 | db 85,4,28,12,20,0,4 216 | db 0,0,0 ;attributs 217 | dwlm 0 ;numéros de volume 218 | db 12 ;taille du nom du fichier 219 | db "README.TXT;1" 220 | db 0 221 | 222 | db 44,0 ;longueur descripteur 223 | ddlm (secteur_fichier_image/2048) ;position fichier 224 | ddlm 1474560 ;taille fichier 225 | db 85,4,28,12,20,0,4 226 | db 0,0,0 ;attributs 227 | dwlm 0 ;numéros de volume 228 | db 10 ;taille du nom du fichier 229 | db "SEAC.IMG;1" 230 | db 0 231 | 232 | db 44,0 ;longueur descripteur 233 | ddlm (secteur_archive/2048) ;position fichier 234 | ddlm (finsecteur_archive-secteur_archive) ;taille fichier 235 | db 85,4,28,12,20,0,4 236 | db 0,0,0 ;attributs 237 | dwlm 0 ;numéros de volume 238 | db 10 ;taille du nom du fichier 239 | db "SEAC.ZIP;1" 240 | db 0 241 | 242 | 243 | fin_secteur_dossier: 244 | 245 | 246 | rb 2048 + secteur_dossier - $ 247 | 248 | 249 | 250 | 251 | ;*************************************************dossier racine de l'image de cdrom 252 | secteur_readme: 253 | db "you are on a bootable cdrom of the SEAC operating system",13,10 254 | db "SEAC.ISO = hybrid bootable image file of CDrom and hard disk",13,10 255 | db "SEAC.IMG = bootable floppy image file",13,10 256 | db 13,10 257 | db "vous êtes sur un cdrom amorçable du systeme d'exploitation SEAC",13,10 258 | db "SEAC.ISO = fichier image hybride amorçable de CDrom et disque dur",13,10 259 | db "SEAC.IMG = fichier image amorçable de disquette",13,10 260 | 261 | 262 | finsecteur_readme: 263 | 264 | rb 2048 + secteur_readme - $ 265 | 266 | secteur_archive: 267 | file "../../BIN/SEAC.ZIP" 268 | rb ((($/2048)+1)*2048)-$ 269 | finsecteur_archive: 270 | 271 | 272 | 273 | 274 | secteur_fichier_image: 275 | file "../../BIN/SEAC.IMG" 276 | rb ((($/2048)+1)*2048)-$ 277 | 278 | 279 | secteur_partition_boot: 280 | file "../../BIN/SEAC.BAZ" 281 | rb ((($/2048)+1)*2048)-$-1 282 | db 0 283 | finsecteur_partition_boot: 284 | 285 | 286 | 287 | fin_image_iso: 288 | -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE1_PXE.ASM: -------------------------------------------------------------------------------- 1 | use16 2 | org 0h 3 | jmp etage2 4 | 5 | rb 512 - $ 6 | 7 | etage2: 8 | file "../../BIN/SEAC.BAZ" 9 | 10 | 11 | -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE2_EFI.ASM: -------------------------------------------------------------------------------- 1 | format pe64 dll efi 2 | entry main 3 | 4 | section '.text' code executable readable 5 | 6 | include 'uefi.inc' 7 | 8 | main: 9 | ; initialize UEFI library 10 | InitializeLib 11 | jc @f 12 | 13 | ; call uefi function to print to screen 14 | uefi_call_wrapper ConOut, OutputString, ConOut, _hello 15 | 16 | 17 | 18 | mov dword [memmapdescsize], 48 19 | uefi_call_wrapper BootServices, GetMemoryMap, memmapsize, memmapbuff, memmapkey, memmapdescsize, memmapdescver 20 | cmp dword [memmapdescsize], 0 21 | jnz @f 22 | mov dword [memmapdescsize], 48 23 | @@: clc 24 | cmp rax, EFI_SUCCESS 25 | je @f 26 | stc 27 | @@: 28 | 29 | 30 | 31 | 32 | 33 | @@: uefi_call_wrapper ConIn, ReadKeyStroke, ConIn, key 34 | cmp dword [key.scancode], 0 35 | jz @b 36 | 37 | 38 | 39 | 40 | 41 | @@: mov eax, EFI_SUCCESS 42 | retn 43 | ;endless: 44 | ;nop 45 | ;jmp endless 46 | 47 | section '.data' data readable writeable 48 | 49 | _hello du 'appuyez sur une touche pour continuer',13,10,0 50 | 51 | 52 | key: 53 | key.scancode: dw 0 54 | key.unicode: du 0 55 | 56 | MEMMAP_BUFFSIZE equ 512 57 | ;data 58 | memmapsize: dq MEMMAP_BUFFSIZE 59 | memmapkey: dq 0 60 | memmapdescsize: dq 0 61 | memmapdescver: dq 0 62 | memmapbuff: rb MEMMAP_BUFFSIZE 63 | 64 | section '.reloc' fixups data discardable 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE2_IMB.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/ETAGE2_IMB.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE2_MBR.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/ETAGE2_MBR.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE3.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/ETAGE3.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE4.ASM: -------------------------------------------------------------------------------- 1 | etage4: 2 | org 0h 3 | 4 | ;etage 4: fichiers optionnels 5 | 6 | 7 | 8 | 9 | zone1: 10 | dd "DMX?" 11 | dd fin_zone1-zone1 ;taille de la zone mémoire utilisé par le fichier 12 | dd fin_fichier1-fichier1 ;taille réelle du fichier 13 | dd 0 ;réservé 14 | db "cfg.sh" ;nom du fichier 15 | rb 416 - ($ - zone1)mod 416 ;remplissage pour faire une entête de 416 octet 16 | 17 | fichier1: 18 | file "cfg.sh" 19 | fin_fichier1: 20 | 21 | rb 16 - ($ - zone1)mod 16 ;remplissage pour faire que le fichier ai une granularité de 16 octets 22 | 23 | fin_zone1: 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | ;marqueur de fin de l'archive 34 | db "DMF?" 35 | dd 0,0,0 36 | -------------------------------------------------------------------------------- /ASM/NOYAU/ETAGE4b.ASM: -------------------------------------------------------------------------------- 1 | etage4: 2 | org 0h 3 | 4 | ;etage 4: fichiers optionnels 5 | 6 | 7 | 8 | 9 | zone1: 10 | dd "DMX?" 11 | dd fin_zone1-zone1 ;taille de la zone mémoire utilisé par le fichier 12 | dd fin_fichier1-fichier1 ;taille réelle du fichier 13 | dd 0 ;réservé 14 | db "cfg.sh" ;nom du fichier 15 | rb 416 - ($ - zone1)mod 416 ;remplissage pour faire une entête de 416 octet 16 | 17 | fichier1: 18 | db "sup #dd1/SEAC.EFI",10,3 19 | db "cop SEAC.EFI #dd1/SEAC.EFI",10,3 20 | 21 | fin_fichier1: 22 | 23 | rb 16 - ($ - zone1)mod 16 ;remplissage pour faire que le fichier ai une granularité de 16 octets 24 | 25 | fin_zone1: 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | ;marqueur de fin de l'archive 36 | db "DMF?" 37 | dd 0,0,0 38 | -------------------------------------------------------------------------------- /ASM/NOYAU/SF_COM.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/SF_COM.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/SF_DISK.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/SF_DISK.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/SF_FICH.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/SF_FICH.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/SF_GEN.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/SF_GEN.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/SF_MAJV.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/SF_MAJV.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/SF_PORT.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/SF_PORT.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/SF_RM.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/SF_RM.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/SF_TACHE.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/SF_TACHE.ASM -------------------------------------------------------------------------------- /ASM/NOYAU/cfg.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/NOYAU/cfg.sh -------------------------------------------------------------------------------- /ASM/PROG/RTL8139.asm: -------------------------------------------------------------------------------- 1 | rtl8139.asm: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "Pilote pour usage IPv4 d'une carte RTL8139" 5 | scode: 6 | org 0 7 | 8 | 9 | 10 | 11 | include "ip_code.inc" ;include standard pour les pilotes IP pour carte réseau 12 | 13 | 14 | 15 | 16 | ;******************************************************************************************** 17 | init_carte: 18 | pushad 19 | 20 | 21 | ;convertit l'adresse passée en argument en "adresse pci" 22 | cmp byte[arg_0+2],":" 23 | jne erreur_adresse 24 | cmp byte[arg_0+5],"." 25 | jne erreur_adresse 26 | cmp byte[arg_0+7],0 27 | jne erreur_adresse 28 | 29 | mov ebx,80000000h 30 | 31 | mov edx,arg_0 32 | mov eax,101 33 | int 61h 34 | test ecx,0FFFFFF00h 35 | jnz erreur_adresse 36 | shl ecx,16 37 | or ebx,ecx 38 | 39 | mov edx,arg_0+3 40 | mov eax,101 41 | int 61h 42 | test ecx,0FFFFFFE0h 43 | jnz erreur_adresse 44 | shl ecx,11 45 | or ebx,ecx 46 | 47 | mov edx,arg_0+6 48 | mov eax,101 49 | int 61h 50 | test ecx,0FFFFFFF8h 51 | jnz erreur_adresse 52 | shl ecx,8 53 | or ebx,ecx 54 | 55 | mov dx,0CF8h 56 | mov eax,ebx 57 | out dx,eax 58 | mov dx,0CFCh 59 | in eax,dx 60 | 61 | ;verifie que le type est compatible 62 | cmp eax,813910ECh ;carte realtek 8139 63 | je pci_trouv 64 | 65 | ;????????????????????????????il existe apparament des clones; a verifier 66 | 67 | popad 68 | mov eax,1 69 | ret 70 | 71 | 72 | erreur_adresse: 73 | mov edx,msgadresse 74 | call message_console 75 | int 60h 76 | 77 | 78 | pci_trouv: 79 | mov [pci_base],ebx 80 | 81 | ;active controle par e/s 82 | mov dx,0CF8h 83 | mov eax,[pci_base] 84 | add eax,4 85 | out dx,eax 86 | mov dx,0CFCh 87 | mov eax,5 ;command + status register 88 | out dx,eax 89 | 90 | ;enregistre la base des e/s 91 | mov dx,0CF8h 92 | mov eax,[pci_base] 93 | add eax,10h 94 | out dx,eax 95 | mov dx,0CFCh 96 | in eax,dx 97 | and eax,0FFFFFFFEh 98 | mov [es_base],eax 99 | 100 | ;demande un remise a zéro des registre suivant enregistré par eeprom 101 | ;mov dx,[es_base] 102 | ;add dx,50h 103 | ;mov al,040h 104 | ;out dx,al 105 | ;att_fin_raz_eeprom: 106 | ;in al,dx 107 | ;test al,0C0h 108 | ;jnz att_fin_raz_eeprom 109 | 110 | ;lit adresse MAC 111 | mov dx,[es_base] 112 | in eax,dx 113 | mov [adresse_mac],eax 114 | add dx,4 115 | in ax,dx 116 | mov [adresse_mac+4],ax 117 | 118 | ;reserve une zone mémoire physique 119 | mov ecx,12010h 120 | mov al,0 121 | xor ebx,ebx 122 | xor edx,edx 123 | xor esi,esi 124 | xor edi,edi 125 | int 65h 126 | cmp eax,0 127 | je memoire_ok 128 | 129 | int 60h 130 | 131 | memoire_ok: 132 | mov [adresse_physique_zt],edx 133 | mov [adresse_logique_zt],ebx 134 | 135 | ;démarre l'horloge, ce registre est absent de la documentation mais présent dans deux sources trouvé sur internet 136 | mov edx,[es_base] 137 | add edx,05Bh 138 | mov al,"R" ;"H" arrete l'horloge 139 | out dx,al 140 | 141 | ;déverrouille l'accès aux config register 142 | mov dx,[es_base] 143 | add dx,50h 144 | mov al,0C0h 145 | out dx,al 146 | 147 | mov dx,[es_base] 148 | add dx,052h ;config1 149 | mov al,001h ;PMen=1 150 | out dx,al 151 | 152 | mov dx,[es_base] 153 | add dx,05Ah ;config4 154 | mov al,000h 155 | out dx,al 156 | 157 | 158 | ;fait un reset du controlleur 159 | mov dx,[es_base] 160 | add dx,37h 161 | mov al,010h 162 | out dx,al 163 | 164 | att_fin_raz_controleur: 165 | in al,dx 166 | test al,010h 167 | jnz att_fin_raz_controleur 168 | 169 | ;déverrouille l'accès aux config register 170 | mov dx,[es_base] 171 | add dx,50h 172 | mov al,0C0h 173 | out dx,al 174 | 175 | ;active la carte 176 | mov dx,[es_base] 177 | add dx,37h 178 | mov al,00Ch 179 | out dx,al 180 | 181 | ;configure l'adresse de la zt de réception 182 | mov dx,[es_base] 183 | add dx,30h 184 | mov eax,[adresse_physique_zt] 185 | out dx,eax 186 | 187 | ;désactive les interruptions 188 | mov dx,[es_base] 189 | add dx,3Ch 190 | mov ax,0 191 | out dx,ax 192 | 193 | ;configure la reception (RCR) 194 | mov dx,[es_base] 195 | add dx,44h 196 | mov eax,0FF1Fh ;no rx threshold, 64k buffer, unlimited DMA burst, accept all packet 197 | out dx,eax 198 | 199 | 200 | ;configure l'adresse des ZT d'emission 201 | mov dx,[es_base] 202 | mov eax,[adresse_physique_zt] 203 | add dx,20h 204 | add eax,10000h 205 | out dx,eax 206 | add dx,4 207 | add eax,800h 208 | out dx,eax 209 | add dx,4 210 | add eax,800h 211 | out dx,eax 212 | add dx,4 213 | add eax,800h 214 | out dx,eax 215 | 216 | ;configure la transmission (TCR) 217 | mov dx,[es_base] 218 | add dx,40h 219 | mov eax,03000700h ;16 tx retry, Max DMA Burst Size=2k crc=ok IGT=standard 220 | out dx,eax 221 | 222 | 223 | ;verrouille l'accès aux config register 224 | mov dx,[es_base] 225 | add dx,50h 226 | mov al,00h 227 | out dx,al 228 | 229 | 230 | popad 231 | xor eax,eax 232 | ret 233 | 234 | 235 | ;******************************************************************************************************** 236 | rec_trame: 237 | pushad 238 | ;test si des données ont été reçu 239 | mov dx,[es_base] 240 | add dx,37h 241 | in al,dx 242 | test al,1 243 | jnz pas_rec_trame 244 | 245 | ;charge l'en tete de reception de trame 246 | mov dx,[es_base] 247 | add dx,38h 248 | in ax,dx 249 | add ax,10h 250 | mov [pointeur_reception],ax 251 | 252 | 253 | mov ecx,4 254 | xor esi,esi 255 | mov si,ax 256 | push edi 257 | mov edi,flag_rx 258 | mov al,4 259 | mov ebx,[adresse_logique_zt] 260 | int 65h 261 | pop edi 262 | cmp eax,0 263 | jne erreur_rec_trame 264 | 265 | 266 | 267 | 268 | 269 | ;charge la trame 270 | xor ecx,ecx 271 | mov cx,[taille_rx] 272 | xor eax,eax 273 | mov ax,[pointeur_reception] 274 | add eax,ecx 275 | test eax,0FFFF0000h 276 | jnz doublebloc_rec_trame 277 | 278 | 279 | 280 | ;la trame est d'un bloc 281 | xor esi,esi 282 | mov si,[pointeur_reception] 283 | add esi,4 284 | mov al,4 285 | mov ebx,[adresse_logique_zt] 286 | int 65h 287 | cmp eax,0 288 | jne erreur_rec_trame 289 | jmp maj_rec_trame 290 | 291 | 292 | 293 | doublebloc_rec_trame: ;charge la trame en 2x 294 | mov ecx,10000h 295 | xor esi,esi 296 | mov si,[pointeur_reception] 297 | add esi,4 298 | sub ecx,esi 299 | push ecx 300 | mov al,4 301 | mov ebx,[adresse_logique_zt] 302 | int 65h 303 | pop ebx 304 | cmp eax,0 305 | jne erreur_rec_trame 306 | 307 | add edi,ebx ;charge le deuxième bloc 308 | xor ecx,ecx 309 | mov cx,[taille_rx] 310 | 311 | sub ecx,ebx 312 | xor esi,esi 313 | mov al,4 314 | mov ebx,[adresse_logique_zt] 315 | int 65h 316 | cmp eax,0 317 | jne erreur_rec_trame 318 | 319 | maj_rec_trame: ;met a jour l'index de la zt de reception 320 | mov dx,[es_base] 321 | add dx,38h 322 | in ax,dx 323 | add ax,[taille_rx] 324 | add ax,7 325 | and ax,0FFFCh 326 | out dx,ax 327 | 328 | 329 | popad 330 | xor ecx,ecx 331 | xor eax,eax 332 | mov cx,[taille_rx] 333 | ret 334 | 335 | 336 | 337 | pas_rec_trame: 338 | popad 339 | xor ecx,ecx 340 | xor eax,eax 341 | ret 342 | 343 | 344 | erreur_rec_trame: 345 | popad 346 | xor ecx,ecx 347 | mov eax,2 ;cer_lec 348 | ret 349 | 350 | 351 | 352 | 353 | 354 | ;********************************************************************************************** 355 | env_trame: 356 | pushad 357 | mov dx,[es_base] 358 | add dx,3Eh 359 | mov ax,0FFFFh 360 | out dx,ax 361 | 362 | recommence_test_zone_tx: 363 | mov dx,[es_base] 364 | add dx,[base_tx] 365 | add dx,10h 366 | in eax,dx 367 | 368 | test eax,040008000h 369 | jnz zone_tx_ok ;test si tok=1 ou TABT=1 370 | test eax,0x1fff 371 | jz zone_tx_ok ;ou si il n'y as pas de donnée dans la zt 372 | add word[base_tx],4 373 | and word[base_tx],0Fh 374 | jmp recommence_test_zone_tx 375 | 376 | zone_tx_ok: 377 | ;configure la transmission (TCR) 378 | push edx 379 | mov dx,[es_base] 380 | add dx,40h 381 | mov eax,03000700h ;16 tx retry, Max DMA Burst Size=2k crc=ok IGT=standard 382 | out dx,eax 383 | pop edx 384 | 385 | ;configure l'adresse de la ZT d'emission 386 | add dx,10h 387 | xor eax,eax 388 | mov ax,dx 389 | sub ax,20h 390 | sub ax,[es_base] 391 | shl eax,9 ;div par 4 et multiplie par 2048 392 | add eax,[adresse_physique_zt] 393 | add eax,10000h 394 | out dx,eax 395 | sub dx,10h 396 | 397 | xor edi,edi 398 | mov di,dx 399 | sub di,[es_base] 400 | sub di,10h 401 | shl edi,9 ;div par 4 et multiplie par 2048 402 | add edi,10000h 403 | mov al,5 404 | mov ebx,[adresse_logique_zt] 405 | int 65h 406 | cmp eax,0 407 | je data_tx_ok 408 | popad 409 | mov eax,cer_ecr 410 | ret 411 | 412 | 413 | data_tx_ok: 414 | mov eax,ecx 415 | and eax,7FFh 416 | out dx,eax 417 | 418 | add word[base_tx],4 419 | and word[base_tx],0Fh 420 | 421 | popad 422 | xor eax,eax 423 | ret 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | sdata1: 434 | org 0 435 | msgnok: 436 | db "RTL8139: card selected not compatible",13,0 437 | db "RTL8139: carte selectionné non compatible",13,0 438 | msgadresse: 439 | db "RTL8139: error in address format",13,0 440 | db "RTL8139: erreur dans le format de l'adresse",13,0 441 | msgok1: 442 | db "the RTL8139 card with address ",0 443 | db "la carte RTL8139 d'adresse ",0 444 | msgok2: 445 | db " has been initialized",13,0 446 | db " a été initialisé",13,0 447 | 448 | pci_base: 449 | dd 0 450 | es_base: 451 | dd 0 452 | adresse_physique_zt: 453 | dd 0 454 | adresse_logique_zt: 455 | dd 0 456 | base_tx: 457 | dd 0 458 | 459 | flag_rx: 460 | dw 0 461 | taille_rx: 462 | dw 0 463 | pointeur_reception: 464 | dw 0 465 | 466 | 467 | 468 | include "ip_data.inc" ;include standard pour les pilotes IP pour carte réseau 469 | 470 | sdata2: 471 | org 0 472 | sdata3: 473 | org 0 474 | sdata4: 475 | org 0 476 | findata: 477 | -------------------------------------------------------------------------------- /ASM/PROG/ajarch.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/PROG/ajarch.asm -------------------------------------------------------------------------------- /ASM/PROG/cdg.asm: -------------------------------------------------------------------------------- 1 | cdg: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "chien de garde" 5 | scode: 6 | org 0 7 | 8 | ;données du segment CS 9 | 10 | mov ax,sel_dat1 11 | mov ds,ax 12 | mov es,ax 13 | mov fs,ax 14 | mov gs,ax 15 | 16 | mov al,8 17 | mov ecx,zt 18 | add ecx,20000h 19 | mov dx,sel_dat1 20 | int 61h 21 | 22 | 23 | ;enregistre les taches en cours d'execution 24 | mov al,11 25 | mov ah,0 26 | mov edx,tache 27 | mov cl,128 28 | int 61h 29 | 30 | ;signal le démarrage 31 | mov al,6 32 | mov edx,message_on 33 | call ajuste_langue 34 | int 61h 35 | 36 | ;**************************************** 37 | boucle: 38 | 39 | ;attend 30secondes 40 | mov al,1 41 | mov ecx,400*30 42 | int 61h 43 | 44 | 45 | ;lit les taches en cours d'execution 46 | mov al,11 47 | mov ah,0 48 | mov edx,zt 49 | mov cl,128 50 | int 61h 51 | 52 | 53 | ;cherche si il en manque 54 | mov esi,tache 55 | mov edi,zt 56 | @@: 57 | mov ax,[esi] 58 | cmp ax,0 59 | je boucle 60 | cmp ax,[edi] 61 | jne detection 62 | add esi,2 63 | add edi,2 64 | jmp @b 65 | 66 | 67 | 68 | ;************************************ 69 | detection: 70 | 71 | ;signale qu'un défaut as été detecté 72 | mov al,6 73 | mov edx,message_off 74 | call ajuste_langue 75 | int 61h 76 | 77 | ;attend 3 secondes 78 | mov al,1 79 | mov ecx,400*3 80 | int 61h 81 | 82 | 83 | ;récupère le dossier des fichier log 84 | mov al,4 85 | mov ah,0 86 | mov edx,zt 87 | xor ecx,ecx 88 | int 61h 89 | 90 | 91 | ;créer le nom du fichier de log 92 | xor ecx,ecx 93 | mov al,9 94 | int 61h 95 | 96 | xor eax,eax 97 | mov al,bl 98 | push eax 99 | mov al,bh 100 | push eax 101 | mov al,dl 102 | push eax 103 | mov al,dh 104 | push eax 105 | mov ax,cx 106 | push eax 107 | 108 | mov edx,zt 109 | @@: 110 | cmp byte[edx],0 111 | je @f 112 | inc edx 113 | jmp @b 114 | @@: 115 | mov byte[edx],"/" 116 | inc edx 117 | mov al,102 118 | pop ecx 119 | int 61h 120 | 121 | mov edx,zt 122 | @@: 123 | cmp byte[edx],0 124 | je @f 125 | inc edx 126 | jmp @b 127 | @@: 128 | mov byte[edx],"-" 129 | inc edx 130 | mov al,102 131 | pop ecx 132 | int 61h 133 | 134 | mov edx,zt 135 | @@: 136 | cmp byte[edx],0 137 | je @f 138 | inc edx 139 | jmp @b 140 | @@: 141 | mov byte[edx],"-" 142 | inc edx 143 | mov al,102 144 | pop ecx 145 | int 61h 146 | 147 | mov edx,zt 148 | @@: 149 | cmp byte[edx],0 150 | je @f 151 | inc edx 152 | jmp @b 153 | @@: 154 | mov byte[edx],"." 155 | inc edx 156 | mov al,102 157 | pop ecx 158 | int 61h 159 | 160 | mov edx,zt 161 | @@: 162 | cmp byte[edx],0 163 | je @f 164 | inc edx 165 | jmp @b 166 | @@: 167 | mov byte[edx],"h" 168 | inc edx 169 | mov al,102 170 | pop ecx 171 | int 61h 172 | 173 | mov edx,zt 174 | @@: 175 | cmp byte[edx],0 176 | je @f 177 | inc edx 178 | jmp @b 179 | @@: 180 | mov dword[edx],".log" 181 | mov byte[edx+4],0 182 | 183 | 184 | ;creer le fichier 185 | mov al,2 186 | xor ebx,ebx 187 | mov edx,zt 188 | int 64h 189 | cmp eax,0 190 | jne ignore_enregistrement 191 | 192 | 193 | ;lit le journal 194 | mov al,14 195 | mov edx,zt 196 | mov ecx,20000h 197 | int 61h 198 | 199 | 200 | ;et l'enregistre dans le fichier de log 201 | mov esi,zt 202 | mov ecx,zt 203 | @@: 204 | cmp byte[ecx],0 205 | je @f 206 | inc ecx 207 | jmp @b 208 | @@: 209 | sub ecx,esi 210 | mov al,5 211 | xor edx,edx 212 | int 64h 213 | 214 | ignore_enregistrement: 215 | 216 | 217 | ;demande le reboot 218 | xor eax,eax 219 | mov edx,commande 220 | int 61h 221 | 222 | int 60h 223 | 224 | 225 | ;*************************** 226 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 227 | push eax 228 | mov eax,20 229 | int 61h 230 | xor ecx,ecx 231 | cmp eax,"eng " 232 | je @f 233 | inc ecx 234 | cmp eax,"fra " 235 | je @f 236 | xor ecx,ecx 237 | @@: 238 | 239 | boucle_ajuste_langue: 240 | cmp ecx,0 241 | je ok_ajuste_langue 242 | cmp byte[edx],0 243 | jne @f 244 | dec ecx 245 | @@: 246 | inc edx 247 | jmp boucle_ajuste_langue 248 | 249 | ok_ajuste_langue: 250 | pop eax 251 | ret 252 | 253 | 254 | 255 | sdata1: 256 | org 0 257 | 258 | 259 | message_on: 260 | db "CDG: watchdog start",13,0 261 | db "CDG: démarrage du chien de garde",13,0 262 | 263 | message_off: 264 | db "CDG: detection of a failure, restart...",13,0 265 | db "CDG: detection d'une défaillance, redémarrage...",13,0 266 | 267 | 268 | commande: 269 | db "pwr -r",0 270 | 271 | taillejournal: 272 | dd 100000h 273 | 274 | tache: 275 | rb 258 276 | 277 | zt: 278 | 279 | 280 | 281 | 282 | sdata2: 283 | org 0 284 | ;données du segment ES 285 | sdata3: 286 | org 0 287 | ;données du segment FS 288 | sdata4: 289 | org 0 290 | ;données du segment GS 291 | findata: 292 | -------------------------------------------------------------------------------- /ASM/PROG/crypto_code.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/PROG/crypto_code.inc -------------------------------------------------------------------------------- /ASM/PROG/crypto_data.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/PROG/crypto_data.inc -------------------------------------------------------------------------------- /ASM/PROG/curs_crx.inc: -------------------------------------------------------------------------------- 1 | ;curseur souris, bitmap 16*16 en 256 couleur. couleur 0FFh=couleur transparente 2 | ;curseur croix multidirectionelle 3 | 4 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 5 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 6 | db 0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh 7 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 8 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 9 | db 0FFh,0FFh,01Ch,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,01Ch,0FFh,0FFh 10 | db 0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh 11 | db 01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch 12 | db 01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch 13 | db 0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh 14 | db 0FFh,0FFh,01Ch,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,01Ch,0FFh,0FFh 15 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 16 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 17 | db 0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh 18 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 19 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,01Ch,01Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 20 | -------------------------------------------------------------------------------- /ASM/PROG/curs_fgd.inc: -------------------------------------------------------------------------------- 1 | ;curseur souris, bitmap 16*16 en 256 couleur. couleur 0FFh=couleur transparente 2 | ;curseur fleche gauche droite 3 | 4 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 5 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 6 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 7 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 8 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 9 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,0FFh,0FFh 10 | db 0FFh,018h,018h,0FFh,0FFh,0FFh,018h,018h,018h,018h,0FFh,0FFh,0FFh,018h,018h,0FFh 11 | db 018h,018h,018h,018h,018h,018h,018h,0FFh,0FFh,018h,018h,018h,018h,018h,018h,018h 12 | db 018h,018h,018h,018h,018h,018h,018h,0FFh,0FFh,018h,018h,018h,018h,018h,018h,018h 13 | db 0FFh,018h,018h,0FFh,0FFh,0FFh,018h,018h,018h,018h,0FFh,0FFh,0FFh,018h,018h,0FFh 14 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,0FFh,0FFh 15 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 16 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 17 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 18 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 19 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 20 | -------------------------------------------------------------------------------- /ASM/PROG/curs_fhb.inc: -------------------------------------------------------------------------------- 1 | ;curseur souris, bitmap 16*16 en 256 couleur. couleur 0FFh=couleur transparente 2 | ;curseur fleche haut bas 3 | 4 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 5 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 6 | db 0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh 7 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 8 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 9 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 10 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 11 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 12 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 13 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 14 | db 0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh 15 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 16 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 17 | db 0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh 18 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 19 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 20 | -------------------------------------------------------------------------------- /ASM/PROG/curs_txt.inc: -------------------------------------------------------------------------------- 1 | ;curseur souris, bitmap 16*16 en 256 couleur. couleur 0FFh=couleur transparente 2 | ;curseur de selection rexte 3 | 4 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 5 | db 018h,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 6 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 7 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 8 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 9 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 10 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 11 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 12 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 13 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 14 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 15 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 16 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 17 | db 0FFh,0FFh,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 18 | db 018h,018h,018h,018h,018h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 19 | db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh 20 | -------------------------------------------------------------------------------- /ASM/PROG/date.asm: -------------------------------------------------------------------------------- 1 | date.fe: 2 | pile equ 40960 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "Affiche la date et l'heure enregistré dans l'horloge de l'ordinateur" 5 | scode: 6 | org 0 7 | 8 | 9 | 10 | 11 | mov ax,sel_dat1 12 | mov ds,ax 13 | 14 | mov al,9 15 | int 61h ;bl=heure bh=minute si=seconde (en millième) dl=jour dh=mois cx=année 16 | mov [heure],bx 17 | mov [seconde],si 18 | mov [jour],dx 19 | mov [annee],cx 20 | 21 | 22 | mov al,6 23 | mov edx,msg1 24 | call ajuste_langue 25 | int 61h 26 | 27 | 28 | mov eax,20 29 | int 61h 30 | cmp eax,"eng " 31 | je @f 32 | xor ch,ch 33 | mov cl,[jour] 34 | call afnombre 35 | @@: 36 | 37 | mov al,[jour+1] ;n° du mois 38 | 39 | cmp al,01h 40 | jne test1 41 | mov edx,mois1 42 | test1: 43 | cmp al,02h 44 | jne test2 45 | mov edx,mois2 46 | test2: 47 | cmp al,03h 48 | jne test3 49 | mov edx,mois3 50 | test3: 51 | cmp al,04h 52 | jne test4 53 | mov dx,mois4 54 | test4: 55 | cmp al,05h 56 | jne test5 57 | mov edx,mois5 58 | test5: 59 | cmp al,06h 60 | jne test6 61 | mov edx,mois6 62 | test6: 63 | cmp al,07h 64 | jne test7 65 | mov edx,mois7 66 | test7: 67 | cmp al,08h 68 | jne test8 69 | mov edx,mois8 70 | test8: 71 | cmp al,09h 72 | jne test9 73 | mov edx,mois9 74 | test9: 75 | cmp al,0Ah 76 | jne test10 77 | mov edx,mois10 78 | test10: 79 | cmp al,0Bh 80 | jne test11 81 | mov edx,mois11 82 | test11: 83 | cmp al,0Ch 84 | jne test12 85 | mov edx,mois12 86 | test12: 87 | call ajuste_langue 88 | mov al,6 89 | int 61h 90 | 91 | mov eax,20 92 | int 61h 93 | cmp eax,"eng " 94 | jne @f 95 | xor ch,ch 96 | mov cl,[jour] 97 | call afnombre 98 | @@: 99 | 100 | mov edx,msg2 101 | call ajuste_langue 102 | mov al,6 103 | int 61h 104 | 105 | mov cx,[annee] 106 | call afnombre 107 | 108 | 109 | mov edx,msg3 110 | call ajuste_langue 111 | mov al,6 112 | int 61h 113 | 114 | xor ch,ch 115 | mov cl,[heure+1] 116 | mov eax,20 117 | int 61h 118 | cmp eax,"fra " 119 | je @f 120 | cmp ecx,13 121 | jb @f 122 | sub cx,12 123 | mov byte[msg5+1],"p" 124 | @@: 125 | 126 | call afnombre 127 | 128 | mov edx,msg4 129 | call ajuste_langue 130 | mov al,6 131 | int 61h 132 | 133 | xor ch,ch 134 | mov cl,[heure] ;minutes 135 | cmp cl,9 ;s'il y as moins de 10 minutes on rajoute un zéro 136 | ja @f 137 | mov al,6 138 | mov edx,zero 139 | int 61h 140 | @@: 141 | call afnombre 142 | 143 | mov edx,msg5 144 | call ajuste_langue 145 | mov al,6 146 | int 61h 147 | 148 | mov ax,[seconde] 149 | mov cx,1000 150 | xor dx,dx 151 | div cx 152 | mov cx,ax 153 | call afnombre 154 | 155 | mov edx,msg6 156 | call ajuste_langue 157 | mov al,6 158 | int 61h 159 | 160 | int 60h 161 | 162 | 163 | 164 | afnombre: 165 | mov al,102 166 | mov edx,nombre 167 | int 61h 168 | 169 | mov edx,nombre 170 | mov al,6 171 | int 61h 172 | ret 173 | 174 | 175 | ;*************************** 176 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 177 | push eax 178 | mov eax,20 179 | int 61h 180 | xor ecx,ecx 181 | cmp eax,"eng " 182 | je @f 183 | inc ecx 184 | cmp eax,"fra " 185 | je @f 186 | xor ecx,ecx 187 | @@: 188 | 189 | boucle_ajuste_langue: 190 | cmp ecx,0 191 | je ok_ajuste_langue 192 | cmp byte[edx],0 193 | jne @f 194 | dec ecx 195 | @@: 196 | inc edx 197 | jmp boucle_ajuste_langue 198 | 199 | ok_ajuste_langue: 200 | pop eax 201 | ret 202 | 203 | sdata1: 204 | org 0 205 | msg1: 206 | db 19h,"Today is ",0 207 | db 19h,"Nous sommes le ",0 208 | msg2: 209 | db " in the year ",0 210 | db "de l'an ",0 211 | msg3: 212 | db " and it is ",0 213 | db " et il est ",0 214 | msg4: 215 | db ":",0 216 | db "h",0 217 | msg5: 218 | db " a.m. and ",0 219 | db "min",0 220 | msg6: 221 | db " seconds",17h,13,0 222 | db "s",17h,13,0 223 | 224 | nombre: 225 | dd 0,0,0,0,0,0 226 | 227 | zero: 228 | db "0",0 229 | 230 | heure: 231 | dw 0 232 | seconde: 233 | dw 0 234 | annee: 235 | dw 0 236 | jour: 237 | dw 0 238 | 239 | 240 | 241 | mois1: 242 | db "January ",0 243 | db " Janvier ",0 244 | mois2: 245 | db "February ",0 246 | db " Février ",0 247 | mois3: 248 | db "March ",0 249 | db " Mars ",0 250 | mois4: 251 | db "April ",0 252 | db " Avril ",0 253 | mois5: 254 | db "May ",0 255 | db " Mai ",0 256 | mois6: 257 | db "June ",0 258 | db " Juin ",0 259 | mois7: 260 | db "July ",0 261 | db " Juillet ",0 262 | mois8: 263 | db " August ",0 264 | db " Août ",0 265 | mois9: 266 | db "September ",0 267 | db " Septembre ",0 268 | mois10: 269 | db "October ",0 270 | db " Octobre ",0 271 | mois11: 272 | db "November ",0 273 | db " Novembre ",0 274 | mois12: 275 | db "December ",0 276 | db " Décembre ",0 277 | 278 | sdata2: 279 | org 0 280 | sdata3: 281 | org 0 282 | sdata4: 283 | org 0 284 | findata: 285 | -------------------------------------------------------------------------------- /ASM/PROG/fe.inc: -------------------------------------------------------------------------------- 1 | fe.inc:;en-tête prémaché pour compiler un fichier de type FE sous Fasm 2 | org 0 3 | format binary 4 | use32 5 | db "FE " ;signale le type du fichier 6 | db "1" ;version du fichier 7 | dd pile ;taille de la pile 8 | dd scode ;adresse de la zone de code 9 | dd sdata1 ;taille du segment de code 10 | 11 | dd 0 ;réservé pour un usage ultérieur 12 | dd 0 13 | dd 0 14 | dd 0 15 | 16 | dd scode+sdata1 ;adresse des data 1 dans le fichier 17 | dd scode+sdata1+sdata2 ;adresse des data 2 dans le fichier 18 | dd scode+sdata1+sdata2+sdata3 ;adresse des data 3 dans le fichier 19 | dd scode+sdata1+sdata2+sdata3+sdata4 ;adresse des data 4 dans le fichier 20 | 21 | dd sdata2 ;taille du segment de donnée 1 dans le fichier 22 | dd sdata3 ;taille du segment de donnée 2 dans le fichier 23 | dd sdata4 ;taille du segment de donnée 3 dans le fichier 24 | dd findata ;taille du segment de donnée 4 dans le fichier 25 | 26 | dd 0 ;octets supplémentaire début du segment de données 1 27 | dd 0 ;octets supplémentaire début du segment de données 2 28 | dd 0 ;octets supplémentaire début du segment de données 3 29 | dd 0 ;octets supplémentaire début du segment de données 4 30 | 31 | dd 0 ;octets supplémentaire fin du segment de données 1 32 | dd 0 ;octets supplémentaire fin du segment de données 2 33 | dd 0 ;octets supplémentaire fin du segment de données 3 34 | dd 0 ;octets supplémentaire fin du segment de données 4 35 | 36 | ;selecteur de segment de la LDT de la tache 37 | sel_res1 equ 004h ;segment LDT 0 DPL0 38 | sel_codet equ 00Fh ;segment LDT 1 DPL3 39 | sel_res2 equ 014h ;segment LDT 2 DPL0 40 | sel_res3 equ 01Ch ;segment LDT 3 DPL0 41 | 42 | sel_pilet0 equ 024h ;segment LDT 4 DPL0 43 | sel_pilet1 equ 02Dh ;segment LDT 5 DPL1 44 | sel_pilet2 equ 036h ;segment LDT 6 DPL2 45 | sel_pilet3 equ 03Fh ;segment LDT 7 DPL3 46 | 47 | sel_dat1 equ 047h ;segment LDT 8 DPL3 48 | sel_dat2 equ 04Fh ;segment LDT 9 DPL3 49 | sel_dat3 equ 057h ;segment LDT 10 DPL3 50 | sel_dat4 equ 05Fh ;segment LDT 11 DPL3 51 | 52 | sel_res4 equ 064h ;segment LDT 12 DPL0 53 | sel_res5 equ 06Ch ;segment LDT 13 DPL0 54 | sel_res6 equ 074h ;segment LDT 14 DPL0 55 | sel_res7 equ 07Ch ;segment LDT 15 DPL0 56 | 57 | 58 | 59 | ;structure d'un ecran virtuel 60 | at_console equ 00h 61 | ;b0=mote texte actif 62 | ;b1=mode graphique actif 63 | ;b2=souris ative 64 | ;b3=pas de maj ecran obligatoire après appel fonction int 63h 65 | ;b4=demande de mise a jour écran 66 | ;b5=caracteristique ecran réel changé 67 | ;b6=mode fenetre 68 | ;b7=mise a jour de l'ecran en cours 69 | ad_texte equ 04h 70 | to_texte equ 08h 71 | ad_graf equ 0Ch 72 | to_graf equ 10h 73 | ad_curseur equ 14h 74 | to_curseur equ 18h 75 | ad_curseur_texte equ 1Ch ;adresse du caractère sur lequel se trouve le curseur texte 76 | bm_clavier equ 20h 77 | posx_souris equ 30h 78 | posy_souris equ 32h 79 | resx_ecran equ 34h 80 | resy_ecran equ 36h 81 | resx_texte equ 38h 82 | resy_texte equ 3Ah 83 | octet_ligne equ 3Ch 84 | bit_pixel equ 3Eh 85 | octet_pixel equ 3Fh 86 | dmaj_xdeb equ 40h 87 | dmaj_xfin equ 44h 88 | dmaj_ydeb equ 48h 89 | dmaj_yfin equ 4Ch 90 | 91 | ad_res_console equ 100h ;adresse reservé 92 | 93 | 94 | 95 | ;structure d'un objet image 96 | objimage_bpp equ 00h ;0 bit par pixel 97 | objimage_att equ 01h ;1 attribut image 98 | objimage_x equ 02h ;2 largeur image 99 | objimage_y equ 04h ;4 hauteur image 100 | objimage_opl equ 06h ;6 nombre d'octet par ligne 101 | objimage_ctp equ 0Ah ;10 couleur de transparence 102 | objimage_dat equ 0Eh ;14 image 103 | 104 | 105 | 106 | ;********************************************************************************* 107 | ;code d'erreur 108 | cer_parami equ 1 ;parametre incorrecte 109 | cer_lec equ 2 ;erreur de lecture 110 | cer_lecnt equ 3 ;lecteur/disque/fichier non trouvé 111 | cer_sysf equ 4 ;erreur du systême de fichier 112 | cer_ecr equ 5 ;erreur d'écriture 113 | cer_prd equ 6 ;pas de réponse disque 114 | cer_do equ 7 ;disque occupé 115 | cer_fdo equ 8 ;fichier deja ouvert 116 | cer_il equ 9 ;interdiction de lecture 117 | cer_ie equ 10 ;interdicion d'ouverture 118 | cer_pasm equ 11 ;plus assez de mémoire 119 | cer_dov equ 12 ;le fichier ouvert est un dossier 120 | cer_inc equ 13 ;erreur d'origine inconnue (normallement jamais utilisé, sauf erreur) 121 | cer_nci equ 14 ;nombre de couleur non reconnue 122 | cer_eabs equ 15 ;ecran absent 123 | cer_ano equ 16 ;action non autorisé 124 | cer_ztv equ 17 ;zone tampon vide 125 | cer_ztp equ 18 ;zone tampon pleine 126 | cer_crp equ 19 ;controleur ne répond pas 127 | cer_cab equ 20 ;controleur absent 128 | cer_dnv equ 21 ;dossier non vide (dans le cas d'une suppression) 129 | cer_cin equ 22 ;caractère interdit dans le nom de fichier 130 | cer_cfi equ 23 ;création de fichier impossible 131 | cer_nfr equ 24 ;nom de fichier deja uttilisé 132 | cer_prt equ 25 ;pas de réponse 133 | cer_ers equ 26 ;erreur dans la structure 134 | cer_ddi equ 27 ;données disponible 135 | cer_dnd equ 28 ;données non disponible 136 | cer_znd equ 29 ;zone de mémoire indisponible 137 | cer_zhm equ 30 ;zone de mémoire hors mémoire physique 138 | cer_uhci equ 31 ;erreur controleur UHCI 139 | cer_ohci equ 32 ;erreur controleur OHCI 140 | cer_ehci equ 33 ;erreur controleur EHCI 141 | cer_xhci equ 34 ;erreur controleur XHCI 142 | cer_efis equ 35 ;exception du fpu 143 | cer_efia equ 36 ;exception du fpu 144 | cer_efi equ 37 ;exception du fpu 145 | cer_efd equ 38 ;exception du fpu 146 | cer_efz equ 39 ;exception du fpu 147 | cer_efo equ 40 ;exception du fpu 148 | cer_efu equ 41 ;exception du fpu 149 | cer_efp equ 42 ;exception du fpu 150 | cer_ahci equ 43 ;erreur controleur AHCI 151 | -------------------------------------------------------------------------------- /ASM/PROG/hello.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/PROG/hello.asm -------------------------------------------------------------------------------- /ASM/PROG/ip_code.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/PROG/ip_code.inc -------------------------------------------------------------------------------- /ASM/PROG/ip_data.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/PROG/ip_data.inc -------------------------------------------------------------------------------- /ASM/PROG/jn1.asm: -------------------------------------------------------------------------------- 1 | test14: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "Jeu Nul N°1" 5 | scode: 6 | org 0 7 | 8 | ;données du segment CS 9 | mov dx,sel_dat1 10 | mov ds,dx 11 | mov es,dx 12 | 13 | mov dx,sel_dat2 14 | mov ah,10 ;option=mode video + pas de rafraichissement automatique 15 | mov al,0 ;création console 16 | int 63h 17 | cmp eax,0 18 | je @f 19 | 20 | erreur_init: 21 | mov edx,msg_err_init 22 | mov al,6 23 | int 61h 24 | int 60h 25 | 26 | @@: 27 | mov dx,sel_dat2 28 | mov fs,dx 29 | 30 | masse equ 0 31 | posx equ 10 32 | posy equ 20 33 | vitx equ 30 34 | vity equ 40 35 | 36 | fclex 37 | fstcw [tempo] 38 | and word[tempo],0FFC0h ;active toutes les sources des interruptions 39 | fldcw [tempo] 40 | 41 | 42 | 43 | 44 | 45 | finit 46 | 47 | ;initialise valeurs 48 | mov dword[tempo],1200 49 | fild dword[tempo] 50 | fstp qword[terre+masse] 51 | fldz 52 | fst qword[terre+posx] 53 | fst qword[terre+posy] 54 | fst qword[terre+vitx] 55 | fstp qword[terre+vity] 56 | 57 | 58 | 59 | 60 | mov dword[tempo],200 61 | fild dword[tempo] 62 | fstp qword[lune+masse] 63 | 64 | mov dword[tempo],1 65 | fild dword[tempo] 66 | fstp qword[lune+vity] 67 | 68 | mov dword[tempo],250 69 | fild dword[tempo] 70 | fstp qword[lune+posy] 71 | 72 | mov dword[tempo],0 73 | fild dword[tempo] 74 | fstp qword[lune+vitx] 75 | 76 | mov dword[tempo],180 77 | fild dword[tempo] 78 | fstp qword[lune+posx] 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | boucle: 87 | 88 | ;redimensionne l'ecran au besoin 89 | fs 90 | test byte[at_console],20h 91 | jz @f 92 | mov dx,sel_dat2 93 | mov ah,10 ;option=mode video + pas de rafraichissement automatique 94 | mov al,0 ;création console 95 | int 63h 96 | cmp eax,0 97 | jne erreur_init 98 | @@: 99 | 100 | 101 | ;calcul la variation de vitesse 102 | fld qword[terre+posx] 103 | fsub qword[lune+posx] 104 | fld qword[terre+posy] 105 | fsub qword[lune+posy] 106 | fld st0 107 | fmul st0,st1 108 | fld st2 109 | fmul st0,st3 110 | faddp 111 | fld st0 112 | fsqrt ;st0=distance st1=distance au carré st2=y st3=x 113 | fdiv st2,st0 114 | fdiv st3,st0 ;st2=composante x st3=composante y 115 | 116 | 117 | 118 | fld qword[terre+masse] 119 | fdiv st0,st2 120 | 121 | fld st0 122 | fmul st0,st5 123 | fadd qword[lune+vitx] 124 | fstp qword[lune+vitx] 125 | 126 | fld st0 127 | fmul st0,st4 128 | fadd qword[lune+vity] 129 | fstp qword[lune+vity] 130 | 131 | 132 | finit 133 | 134 | 135 | 136 | ;calcul les déplacements 137 | fld qword[terre+posx] 138 | fadd qword[terre+vitx] 139 | fstp qword[terre+posx] 140 | fld qword[terre+posy] 141 | fadd qword[terre+vity] 142 | fstp qword[terre+posy] 143 | fld qword[lune+posx] 144 | fadd qword[lune+vitx] 145 | fstp qword[lune+posx] 146 | fld qword[lune+posy] 147 | fadd qword[lune+vity] 148 | fstp qword[lune+posy] 149 | 150 | 151 | ;*********************applique poussé (éventuellement) 152 | fs 153 | test byte[bm_clavier+9],1 154 | jz pasdepousse 155 | 156 | mov dword[tempo],5000 157 | mov dword[tempo+4],180 158 | fild dword[angle] 159 | fidiv dword[tempo+4] 160 | fldpi 161 | fmulp 162 | 163 | 164 | 165 | fld qword[lune+vity] 166 | fild dword[tempo] 167 | fild dword[pousse] 168 | fld st3 169 | fsin 170 | fmulp 171 | fxch st1 172 | fdivp 173 | faddp 174 | fstp qword[lune+vity] 175 | 176 | fld qword[lune+vitx] 177 | fild dword[tempo] 178 | fild dword[pousse] 179 | fld st3 180 | fcos 181 | fmulp 182 | fxch st1 183 | fdivp 184 | faddp 185 | fstp qword[lune+vitx] 186 | 187 | pasdepousse: 188 | 189 | 190 | fs 191 | test byte[at_console],90h ;si précédentes modif d'ecran n'ont pas été effectué on ne change rien a l'affichage 192 | jnz ignore_affichage 193 | 194 | ;***********************efface l'affichage 195 | mov ebx,0 196 | mov ecx,0 197 | fs 198 | mov esi,[resx_ecran] 199 | fs 200 | mov edi,[resy_ecran] 201 | and esi,0FFFFh 202 | and edi,0FFFFh 203 | mov ah,4 ;4bit par pixel pour la couleur 204 | mov edx,0 ;couleur 205 | mov al,22 ;afficher un carré 206 | int 63h 207 | 208 | ;affiche cadran 209 | mov ebx,50 210 | mov ecx,65 211 | mov al,24 ;afficher un cercle 212 | mov ah,4 ;4bit par pixel pour la couleur 213 | mov edx,07h 214 | mov esi,50 ;rayon 215 | int 63h 216 | mov ebx,50 217 | mov ecx,65 218 | mov al,24 ;afficher un cercle 219 | mov ah,4 ;4bit par pixel pour la couleur 220 | mov edx,00h 221 | mov esi,48 ;rayon 222 | int 63h 223 | 224 | 225 | 226 | 227 | 228 | ;********************affiche orientation vitesse 229 | 230 | 231 | 232 | 233 | ;*********************affiche orientation 234 | mov dword[tempo],45 235 | mov dword[tempo+4],45 236 | mov dword[tempo+8],180 237 | 238 | fild dword[angle] 239 | fidiv dword[tempo+8] 240 | fldpi 241 | fmulp 242 | fld st0 243 | 244 | fcos 245 | fimul dword[tempo] 246 | fistp dword[tempo] 247 | fsin 248 | fimul dword[tempo+4] 249 | fistp dword[tempo+4] 250 | 251 | mov ebx,50 252 | mov ecx,65 253 | mov esi,50 254 | mov edi,65 255 | add esi,[tempo] 256 | add edi,[tempo+4] 257 | mov al,23 ;afficher un segment 258 | mov ah,4 ;4bit par pixel pour la couleur 259 | mov edx,07h 260 | int 63h 261 | 262 | 263 | 264 | ;********************affichage poussé 265 | mov ebx,0 266 | mov ecx,0 267 | mov esi,[pousse] 268 | mov edi,15 269 | mov ah,4 ;4bit par pixel pour la couleur 270 | mov edx,0Fh ;couleur 271 | mov al,22 ;afficher un carré 272 | int 63h 273 | 274 | 275 | 276 | 277 | 278 | 279 | ;****************************affiche trajectoire 280 | mov esi,liste_point 281 | xor ebx,ebx 282 | xor ecx,ecx 283 | mov edx,0FFFFFFh ;couleur 284 | 285 | boucle_traj: 286 | mov bx,[esi] 287 | mov cx,[esi+2] 288 | 289 | push esi 290 | mov al,21 ;afficher un point 291 | mov ah,24 ;4bit par pixel pour la couleur 292 | mov esi,30 ;rayon 293 | int 63h 294 | pop esi 295 | 296 | sub edx,10101h 297 | add esi,4 298 | cmp esi,liste_point+1024 299 | jne boucle_traj 300 | 301 | 302 | 303 | 304 | 305 | ;affiche terre 306 | xor ebx,ebx 307 | xor ecx,ecx 308 | fs 309 | mov bx,[resx_ecran] 310 | fs 311 | mov cx,[resy_ecran] 312 | shr bx,1 313 | shr cx,1 314 | 315 | fld qword[terre+posx] 316 | fistp dword[tempo] 317 | fld qword[terre+posy] 318 | fistp dword[tempo+4] 319 | add ebx,[tempo] 320 | add ecx,[tempo+4] 321 | 322 | mov al,24 ;afficher un disque 323 | mov ah,4 ;4bit par pixel pour la couleur 324 | mov edx,09h ;couleur 325 | mov esi,20 ;rayon 326 | int 63h 327 | 328 | 329 | ;affiche lune 330 | xor ebx,ebx 331 | xor ecx,ecx 332 | fs 333 | mov bx,[resx_ecran] 334 | fs 335 | mov cx,[resy_ecran] 336 | shr bx,1 337 | shr cx,1 338 | 339 | fld qword[lune+posx] 340 | fistp dword[tempo] 341 | fld qword[lune+posy] 342 | fistp dword[tempo+4] 343 | add ebx,[tempo] 344 | add ecx,[tempo+4] 345 | 346 | 347 | mov al,24 ;afficher un disque 348 | mov ah,4 ;4bit par pixel pour la couleur 349 | mov edx,0Ah ;couleur 350 | mov esi,10 ;rayon 351 | int 63h 352 | 353 | mov al,7 ;mise a jour de l'écran 354 | int 63h 355 | ignore_affichage: 356 | 357 | ;met a jour la table des coordonné 358 | xor ebx,ebx 359 | xor ecx,ecx 360 | fs 361 | mov bx,[resx_ecran] 362 | fs 363 | mov cx,[resy_ecran] 364 | shr bx,1 365 | shr cx,1 366 | 367 | fld qword[lune+posx] 368 | fistp dword[tempo] 369 | fld qword[lune+posy] 370 | fistp dword[tempo+4] 371 | add ebx,[tempo] 372 | add ecx,[tempo+4] 373 | 374 | push ebx 375 | push ecx 376 | mov esi,liste_point+1016 377 | mov edi,liste_point+1020 378 | mov ecx,255 379 | std 380 | rep movsd 381 | pop ecx 382 | pop ebx 383 | mov [liste_point],bx 384 | mov [liste_point+2],cx 385 | 386 | 387 | 388 | ;********************************* 389 | attend_touche: 390 | mov al,5 391 | int 63h 392 | 393 | cmp al,82 394 | je aug_pousse 395 | cmp al,84 396 | je dim_pousse 397 | cmp al,83 398 | je aug_angle 399 | cmp al,85 400 | je dim_angle 401 | 402 | cmp al,1 403 | jne boucle 404 | int 60h 405 | 406 | 407 | 408 | aug_angle: 409 | sub dword[angle],5 410 | cmp dword[angle],360 411 | jl boucle 412 | sub dword[angle],360 413 | jmp boucle 414 | 415 | 416 | dim_angle: 417 | add dword[angle],5 418 | cmp dword[angle],0 419 | jae boucle 420 | add dword[angle],360 421 | jmp boucle 422 | 423 | 424 | aug_pousse: 425 | cmp dword[pousse],100 426 | je boucle 427 | inc dword[pousse] 428 | jmp boucle 429 | 430 | 431 | dim_pousse: 432 | cmp dword[pousse],0 433 | je boucle 434 | dec dword[pousse] 435 | jmp boucle 436 | 437 | 438 | 439 | sdata1: 440 | org 0 441 | tempo: 442 | rb 128 443 | 444 | 445 | terre: 446 | rb 128 447 | lune: 448 | rb 128 449 | 450 | liste_point: 451 | rb 1024 452 | 453 | 454 | angle: 455 | dd 90 456 | pousse: 457 | dd 0 458 | 459 | msg_err_init: 460 | db "JN1: impossible de démarrer, vous devez être en mode graphique",13,0 461 | 462 | 463 | sdata2: 464 | org 0 465 | ;données du segment ES 466 | sdata3: 467 | org 0 468 | ;données du segment FS 469 | sdata4: 470 | org 0 471 | ;données du segment GS 472 | findata: -------------------------------------------------------------------------------- /ASM/PROG/lspci.asm: -------------------------------------------------------------------------------- 1 | lc: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "liste les informations de base sur les cartes branché sur les bus pci et agp" 5 | scode: 6 | org 0 7 | mov ax,sel_dat1 8 | mov ds,ax 9 | mov es,ax 10 | 11 | 12 | ;ouvre le fichier de base de donnée des classe 13 | xor eax,eax 14 | mov ebx,1 15 | mov edx,nom_bdd1 16 | int 64h 17 | cmp eax,0 18 | jne @f 19 | mov [handle_bdd1],ebx 20 | 21 | 22 | ;lit taille fichier 23 | mov ebx,[handle_bdd1] 24 | mov edx,taille_bdd1 25 | mov al,6 26 | mov ah,1 ;fichier 27 | int 64h 28 | cmp eax,0 29 | je @f 30 | mov dword[taille_bdd1],0 31 | mov dword[taille_bdd1+4],0 32 | @@: 33 | 34 | 35 | ;ouvre le fichier de base de donnée des noms 36 | xor eax,eax 37 | mov ebx,1 38 | mov edx,nom_bdd2 39 | int 64h 40 | cmp eax,0 41 | jne @f 42 | mov [handle_bdd2],ebx 43 | 44 | 45 | ;lit taille fichier 46 | mov ebx,[handle_bdd2] 47 | mov edx,taille_bdd2 48 | mov al,6 49 | mov ah,1 ;fichier 50 | int 64h 51 | cmp eax,0 52 | je @f 53 | mov dword[taille_bdd2],0 54 | mov dword[taille_bdd2+4],0 55 | @@: 56 | 57 | 58 | 59 | ;agrandit la zone mémoire pour pouvoir contenir les fichiers 60 | mov dx,sel_dat1 61 | mov ecx,[taille_bdd1] 62 | add ecx,bdd1+4 63 | mov [bdd2],ecx ;on en profite pour sauvegarder la position de la bdd des noms 64 | add ecx,[taille_bdd2] 65 | mov al,8 66 | int 61h 67 | 68 | 69 | ;charge fichier de base de donnée des classe 70 | mov ebx,[handle_bdd1] 71 | mov ecx,[taille_bdd1] 72 | mov edx,0 ;offset dans le fichier 73 | mov edi,bdd1 ;offset dans le segment 74 | mov al,4 75 | int 64h 76 | cmp eax,0 77 | je @f 78 | mov dword[taille_bdd1],0 79 | mov dword[taille_bdd1+4],0 80 | @@: 81 | 82 | ;charge fichier de base de donnée des noms 83 | mov ebx,[handle_bdd2] 84 | mov ecx,[taille_bdd2] 85 | mov edx,0 ;offset dans le fichier 86 | mov edi,[bdd2] ;offset dans le segment 87 | mov al,4 88 | int 64h 89 | cmp eax,0 90 | je @f 91 | mov dword[taille_bdd2],0 92 | mov dword[taille_bdd2+4],0 93 | @@: 94 | 95 | 96 | ;remplace tout les marqueurs de fin de ligne par des zéro 97 | mov ebx,bdd1 98 | mov ecx,[taille_bdd1] 99 | add ecx,[taille_bdd2] 100 | cmp ecx,0 101 | je @f 102 | bc_raz: 103 | cmp byte[ebx],10 104 | je ok_raz 105 | cmp byte[ebx],13 106 | jne nok_raz 107 | ok_raz: 108 | mov byte[ebx],0 109 | nok_raz: 110 | inc ebx 111 | dec ecx 112 | jne bc_raz 113 | @@: 114 | 115 | 116 | mov al,6 117 | mov edx,msg1 118 | call ajuste_langue 119 | int 61h 120 | 121 | 122 | mov ebx,80000000h 123 | bouclecmdlc: 124 | mov dx,0CF8h 125 | mov eax,ebx 126 | out dx,eax 127 | mov dx,0CFCh 128 | in eax,dx 129 | cmp ax,0FFFFh 130 | je passecarte 131 | 132 | mov ebp,eax 133 | ;écrit les données de la carte dans la ligne pré formatté 134 | mov ecx,ebx 135 | shr ecx,16 136 | and ecx,0FFh 137 | mov edx,bus 138 | mov al,105 139 | int 61h 140 | mov byte[edx+2]," " 141 | mov ax,[bus] 142 | mov [bus2],ax 143 | 144 | mov ecx,ebx 145 | shr ecx,11 146 | and ecx,01Fh 147 | mov edx,carte 148 | mov al,105 149 | int 61h 150 | mov byte[edx+2]," " 151 | mov ax,[carte] 152 | mov [carte2],ax 153 | 154 | 155 | mov ecx,ebx 156 | shr ecx,8 157 | and ecx,07h 158 | mov edx,fonction 159 | mov al,105 160 | int 61h 161 | mov byte[edx+2]," " 162 | mov eax,[fonction] 163 | mov [fonction2],eax 164 | 165 | mov ecx,ebp 166 | and ecx,0FFFFh 167 | mov edx,vendor 168 | mov al,104 169 | int 61h 170 | mov byte[edx+4]," " 171 | mov eax,[vendor] 172 | mov [vendor2],eax 173 | 174 | mov ecx,ebp 175 | shr ecx,16 176 | and ecx,0FFFFh 177 | mov edx,id 178 | mov al,104 179 | int 61h 180 | mov byte[edx+4]," " 181 | mov eax,[id] 182 | mov [id2],eax 183 | 184 | mov dx,0CF8h 185 | mov eax,ebx 186 | add eax,8 187 | out dx,eax 188 | mov dx,0CFCh 189 | in eax,dx 190 | mov ebp,eax 191 | 192 | mov ecx,ebp 193 | shr ecx,24 194 | and ecx,0FFh 195 | mov edx,classe 196 | mov al,105 197 | int 61h 198 | mov byte[edx+2],"." 199 | mov ax,[classe] 200 | mov [classe2],ax 201 | 202 | mov ecx,ebp 203 | shr ecx,16 204 | and ecx,0FFh 205 | mov edx,sousclasse 206 | mov al,105 207 | int 61h 208 | mov byte[edx+2],"." 209 | mov ax,[sousclasse] 210 | mov [sousclasse2],ax 211 | 212 | mov ecx,ebp 213 | shr ecx,8 214 | and ecx,0FFh 215 | mov edx,progif 216 | mov al,105 217 | int 61h 218 | mov byte[edx+2],13 219 | mov ax,[progif] 220 | mov [progif2],ax 221 | 222 | 223 | 224 | ;affiche la ligne des données 225 | mov eax,6 226 | mov edx,desciption 227 | call ajuste_langue 228 | int 61h 229 | 230 | 231 | 232 | 233 | 234 | 235 | ;************************************************************** 236 | ;affiche la classe si on as accès a la base de donnée 237 | pushad 238 | mov ebx,bdd1 239 | mov ecx,[taille_bdd1] 240 | cmp ecx,0 241 | je passeligne 242 | add ecx,ebx 243 | 244 | 245 | ;recherche la classe 246 | mov eax,20h 247 | shl eax,16 248 | mov ax,[classe] 249 | shl eax,8 250 | mov al,"+" 251 | 252 | boucle_recherche_classe: 253 | cmp [ebx],eax 254 | je affiche_classe 255 | inc ebx 256 | cmp ebx,ecx 257 | je passeligne 258 | jmp boucle_recherche_classe 259 | 260 | 261 | affiche_classe: 262 | push ebx 263 | push ecx 264 | mov edx,DEB 265 | mov eax,6 266 | int 61h 267 | mov edx,ebx 268 | add edx,4 269 | mov eax,6 270 | int 61h 271 | pop ecx 272 | pop ebx 273 | 274 | 275 | ;recherche la sous classe 276 | mov eax,20h 277 | shl eax,16 278 | mov ax,[sousclasse] 279 | shl eax,8 280 | mov al,"." 281 | 282 | boucle_recherche_sousclasse: 283 | cmp [ebx],eax 284 | je affiche_sousclasse 285 | cmp word[ebx],02B00h 286 | je findeligne 287 | inc ebx 288 | cmp ebx,ecx 289 | je findeligne 290 | jmp boucle_recherche_sousclasse 291 | 292 | 293 | affiche_sousclasse: 294 | push ebx 295 | push ecx 296 | mov edx,VIRG 297 | mov eax,6 298 | int 61h 299 | mov edx,ebx 300 | add edx,4 301 | mov eax,6 302 | int 61h 303 | pop ecx 304 | pop ebx 305 | 306 | 307 | ;recherche progif 308 | mov eax,20h 309 | shl eax,16 310 | mov ax,[progif] 311 | shl eax,8 312 | mov al,"-" 313 | 314 | boucle_recherche_progif: 315 | cmp [ebx],eax 316 | je affiche_progif 317 | cmp word[ebx],02E00h 318 | je findeligne 319 | cmp word[ebx],02B00h 320 | je findeligne 321 | inc ebx 322 | cmp ebx,ecx 323 | je findeligne 324 | jmp boucle_recherche_progif 325 | 326 | 327 | affiche_progif: 328 | push ebx 329 | push ecx 330 | mov edx,VIRG 331 | mov eax,6 332 | int 61h 333 | mov edx,ebx 334 | add edx,4 335 | mov eax,6 336 | int 61h 337 | pop ecx 338 | pop ebx 339 | 340 | 341 | findeligne: 342 | mov edx,CRLF 343 | mov eax,6 344 | int 61h 345 | passeligne: 346 | popad 347 | 348 | 349 | 350 | 351 | 352 | 353 | ;************************************************************** 354 | ;affiche le fabriquant/nom si on as accès a la base de donnée 355 | 356 | 357 | 358 | 359 | 360 | 361 | mov edx,desciption 362 | boucle: 363 | cmp byte[edx],0 364 | je fin 365 | 366 | cmp byte[edx],"A" 367 | jb @f 368 | cmp byte[edx],"Z" 369 | ja @f 370 | add byte[edx],20h 371 | @@: 372 | inc edx 373 | jmp boucle 374 | 375 | fin: 376 | 377 | 378 | 379 | 380 | pushad 381 | mov ebx,[bdd2] 382 | mov ecx,[taille_bdd2] 383 | cmp ecx,0 384 | je passeligne2 385 | add ecx,ebx 386 | 387 | 388 | 389 | ;recherche le vendor 390 | mov eax,[vendor] 391 | 392 | boucle_recherche_vendor: 393 | cmp [ebx],eax 394 | je vendor_trouve 395 | @@: 396 | inc ebx 397 | cmp ebx,ecx 398 | je passeligne2 399 | cmp byte[ebx],0 400 | jne @b 401 | inc ebx 402 | jmp boucle_recherche_vendor 403 | 404 | vendor_trouve: 405 | mov edx,DEB 406 | mov eax,6 407 | int 61h 408 | add ebx,6 409 | mov edx,ebx 410 | mov eax,6 411 | int 61h 412 | 413 | 414 | ;recherche le nom 415 | mov eax,[id] 416 | 417 | boucle_recherche_nom: 418 | cmp byte[ebx],9 419 | jne @f 420 | inc ebx 421 | cmp [ebx],eax 422 | je nom_trouve 423 | @@: 424 | inc ebx 425 | cmp ebx,ecx 426 | je findeligne2 427 | cmp byte[ebx],0 428 | jne @b 429 | inc ebx 430 | jmp boucle_recherche_nom 431 | 432 | nom_trouve: 433 | mov edx,VIRG 434 | mov eax,6 435 | int 61h 436 | add ebx,6 437 | mov edx,ebx 438 | mov eax,6 439 | int 61h 440 | 441 | 442 | 443 | findeligne2: 444 | mov edx,CRLF 445 | mov eax,6 446 | int 61h 447 | 448 | passeligne2: 449 | popad 450 | 451 | 452 | 453 | 454 | 455 | passecarte: 456 | test ebx,0700h 457 | jnz @f 458 | 459 | mov eax,ebx 460 | mov dx,0CF8h 461 | add eax,0Ch 462 | out dx,eax 463 | mov dx,0CFCh 464 | in eax,dx 465 | test eax,00800000h 466 | jz simplefonction 467 | 468 | @@: 469 | add ebx,100h ;on passe a la fonction suivante 470 | test ebx,7F000000h 471 | jz bouclecmdlc 472 | int 60h 473 | 474 | simplefonction: 475 | add ebx,800h ;on passe au device suivant 476 | test ebx,7F000000h 477 | jz bouclecmdlc 478 | int 60h 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | ;*************************** 488 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 489 | push eax 490 | mov eax,20 491 | int 61h 492 | xor ecx,ecx 493 | cmp eax,"eng " 494 | je @f 495 | inc ecx 496 | cmp eax,"fra " 497 | je @f 498 | xor ecx,ecx 499 | @@: 500 | 501 | boucle_ajuste_langue: 502 | cmp ecx,0 503 | je ok_ajuste_langue 504 | cmp byte[edx],0 505 | jne @f 506 | dec ecx 507 | @@: 508 | inc edx 509 | jmp boucle_ajuste_langue 510 | 511 | ok_ajuste_langue: 512 | pop eax 513 | ret 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | sdata1: 523 | org 0 524 | 525 | 526 | msg1: 527 | db 13,"list of detected PCI and AGP devices:",13,0 528 | db 13,"liste des périphériques PCI et AGP détecté:",13,0 529 | 530 | desciption: 531 | db "Bus:" 532 | bus2: 533 | dw 0 534 | db " Card:" 535 | carte2: 536 | dw 0 537 | db " Function:" 538 | fonction2: 539 | dw 0 540 | db " Vendor:" 541 | vendor2: 542 | dd 0 543 | db " ID:" 544 | id2: 545 | dd 0 546 | db " Classe:" 547 | classe2: 548 | dw 0 549 | db "." 550 | sousclasse2: 551 | dw 0 552 | db "." 553 | progif2: 554 | dw 0 555 | db 13,0 556 | 557 | db "Bus:" 558 | bus: 559 | dw 0 560 | db " Carte:" 561 | carte: 562 | dw 0 563 | db " Fonction:" 564 | fonction: 565 | dw 0 566 | db " Vendor:" 567 | vendor: 568 | dd 0 569 | db " ID:" 570 | id: 571 | dd 0 572 | db " Classe:" 573 | classe: 574 | dw 0 575 | db "." 576 | sousclasse: 577 | dw 0 578 | db "." 579 | progif: 580 | dw 0 581 | db 13,0 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | DEB: 590 | db 18h,0 591 | VIRG: 592 | db ",",0 593 | CRLF: 594 | db 17h,13,0 595 | 596 | 597 | 598 | 599 | nom_bdd1: 600 | db "LSPCI.CFG",0 601 | handle_bdd1: 602 | dd 0 603 | taille_bdd1: 604 | dd 0,0 605 | 606 | 607 | nom_bdd2: 608 | db "pci.ids",0 ;téléchargé depuis https://pci-ids.ucw.cz/v2.2/pci.ids 609 | handle_bdd2: 610 | dd 0 611 | taille_bdd2: 612 | dd 0,0 613 | 614 | bdd2: 615 | dd 0 616 | 617 | bdd1: 618 | 619 | 620 | 621 | sdata2: 622 | org 0 623 | sdata3: 624 | org 0 625 | sdata4: 626 | org 0 627 | findata: 628 | -------------------------------------------------------------------------------- /ASM/PROG/nlg_se.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/ASM/PROG/nlg_se.inc -------------------------------------------------------------------------------- /ASM/PROG/palette.asm: -------------------------------------------------------------------------------- 1 | palette: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "affichage palette 256 couleurs" 5 | scode: 6 | org 0 7 | 8 | ;données du segment CS 9 | mov ax,sel_dat1 10 | mov ds,ax 11 | mov es,ax 12 | mov fs,ax 13 | 14 | redim_ecran: 15 | mov al,0 16 | mov ah,6 ;option=mode video + souris 17 | mov dx,sel_dat2 18 | int 63h 19 | cmp eax,0 20 | je @f 21 | mov al,6 22 | mov edx,msg 23 | int 61h 24 | int 60h 25 | @@: 26 | mov ax,sel_dat2 27 | mov fs,ax 28 | xor ecx,ecx 29 | fs 30 | mov cx,[resy_ecran] 31 | shr ecx,4 32 | mov [carre],ecx 33 | 34 | 35 | mov ebx,0 36 | mov ecx,0 37 | mov esi,[carre] 38 | mov edi,[carre] 39 | xor edx,edx 40 | 41 | boucle: 42 | 43 | mov al,22 44 | mov ah,8 45 | int 63h 46 | add ebx,[carre] 47 | add esi,[carre] 48 | inc edx 49 | cmp edx,256 50 | je touche 51 | test edx,0Fh 52 | jnz boucle 53 | mov ebx,0 54 | add ecx,[carre] 55 | mov esi,[carre] 56 | add edi,[carre] 57 | jmp boucle 58 | 59 | touche: 60 | fs 61 | test byte[at_console],20h 62 | jnz redim_ecran 63 | fs 64 | test byte[at_console],90h 65 | jz @f 66 | int 62h 67 | jmp touche 68 | @@: 69 | 70 | 71 | 72 | mov ebp,[carre] 73 | shl ebp,4 74 | 75 | mov ebx,ebp 76 | mov ecx,0 77 | inc ebx 78 | mov esi,40 79 | mov edi,16 80 | add esi,ebp 81 | xor edx,edx 82 | mov al,22 83 | mov ah,8 84 | int 63h 85 | 86 | fs 87 | cmp [posx_souris],bp 88 | jae @f 89 | fs 90 | cmp [posy_souris],bp 91 | jae @f 92 | 93 | xor eax,eax 94 | xor edx,edx 95 | mov ecx,[carre] 96 | fs 97 | mov ax,[posx_souris] 98 | div ecx 99 | push eax 100 | xor eax,eax 101 | xor edx,edx 102 | fs 103 | mov ax,[posy_souris] 104 | div ecx 105 | shl eax,4 106 | pop ecx 107 | add ecx,eax 108 | 109 | mov al,102 110 | mov edx,texte 111 | int 61h 112 | 113 | mov al,25 114 | mov ah,15 115 | mov ebx,ebp 116 | mov ecx,0 117 | inc ebx 118 | int 63h 119 | 120 | 121 | @@: 122 | mov al,5 123 | int 63h 124 | cmp al,1 125 | jne touche 126 | int 60h 127 | 128 | 129 | ;****************************************************************************************** 130 | sdata1: 131 | org 0 132 | 133 | carre: 134 | dd 32 135 | 136 | texte: 137 | dd 0,0,0,0,0,0,0,0 138 | 139 | msg: 140 | db "uniquement en mode video",13,0 141 | 142 | sdata2: 143 | org 0 144 | ;données du segment ES 145 | sdata3: 146 | org 0 147 | ;données du segment FS 148 | sdata4: 149 | org 0 150 | ;données du segment GS 151 | findata: 152 | -------------------------------------------------------------------------------- /ASM/PROG/pilote.asm: -------------------------------------------------------------------------------- 1 | pilote.fe: 2 | pile equ 40960 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "cherche le bon pilote d'un périphérique" 5 | scode: 6 | org 0 7 | 8 | mov ax,sel_dat1 9 | mov ds,ax 10 | mov es,ax 11 | 12 | ;récupère l'adresse du périphérique 13 | mov al,4 14 | mov ah,1 ;numéros de l'option de commande a lire 15 | mov cl,16 16 | mov edx,adresse 17 | int 61h 18 | 19 | ;récupère le type de périphérique 20 | mov al,4 21 | mov ah,0 ;numéros de l'option de commande a lire 22 | mov cl,8 23 | mov edx,nom_type 24 | int 61h 25 | 26 | 27 | cmp dword[nom_type],"pci" 28 | je type_pci 29 | ;cmp dword[nom_type],"usb" 30 | ;je type_usb 31 | 32 | 33 | mov edx,msg_type 34 | call ajuste_langue 35 | mov al,6 36 | int 61h 37 | int 60h 38 | 39 | type_pci: 40 | mov edx,bdd_pci 41 | ;jmp @f 42 | 43 | ;type_usb: 44 | ;mov edx,bdd_usb 45 | ;jmp @f 46 | 47 | @@: 48 | 49 | 50 | 51 | 52 | 53 | 54 | ;ouvre le fichier de base de donnée des classe 55 | xor eax,eax 56 | mov ebx,1 57 | int 64h 58 | cmp eax,0 59 | jne erreur_bdd 60 | mov [handle_bdd],ebx 61 | 62 | 63 | ;lit taille fichier 64 | mov ebx,[handle_bdd] 65 | mov edx,taille_bdd 66 | mov al,6 67 | mov ah,1 ;fichier 68 | int 64h 69 | cmp eax,0 70 | jne erreur_bdd 71 | 72 | ;agrandit la zone mémoire pour pouvoir contenir les fichiers 73 | mov dx,sel_dat1 74 | mov ecx,[taille_bdd] 75 | add ecx,bdd+1 76 | mov al,8 77 | int 61h 78 | cmp eax,0 79 | jne erreur_bdd 80 | 81 | 82 | ;charge fichier de base de donnée des classe 83 | mov ebx,[handle_bdd] 84 | mov ecx,[taille_bdd] 85 | mov edx,0 ;offset dans le fichier 86 | mov edi,bdd ;offset dans le segment 87 | mov al,4 88 | int 64h 89 | cmp eax,0 90 | jne erreur_bdd 91 | 92 | 93 | ;transforme les caractère de fin de ligne 94 | mov edi,bdd 95 | mov esi,bdd 96 | add edi,[taille_bdd] 97 | boucle_prep: 98 | cmp byte[esi],20h 99 | jae @f 100 | mov byte[esi],0 101 | @@: 102 | inc esi 103 | cmp esi,edi 104 | jne boucle_prep 105 | 106 | 107 | 108 | 109 | cmp dword[nom_type],"pci" 110 | je rech_pci_simple 111 | ;cmp dword[nom_type],"usb" 112 | ;je rech_usb_simple 113 | int 60h 114 | 115 | 116 | 117 | 118 | ;rech_usb_simple: 119 | ;????????????? 120 | ;int 60h 121 | 122 | 123 | rech_pci_simple: 124 | cmp byte[adresse],0 125 | je rech_pci_multiple 126 | cmp byte[adresse],"-" 127 | je rech_pci_multiple 128 | 129 | 130 | cmp byte[adresse+2],":" 131 | jne erreur_add 132 | cmp byte[adresse+5],"." 133 | jne erreur_add 134 | 135 | 136 | 137 | 138 | mov ebx,80000000h 139 | 140 | mov edx,adresse 141 | mov eax,101 142 | int 61h 143 | shl ecx,16 144 | or ebx,ecx 145 | 146 | mov edx,adresse+3 147 | mov eax,101 148 | int 61h 149 | shl ecx,11 150 | or ebx,ecx 151 | 152 | mov edx,adresse+6 153 | mov eax,101 154 | int 61h 155 | shl ecx,8 156 | or ebx,ecx 157 | 158 | 159 | 160 | mov dx,0CF8h 161 | mov eax,ebx 162 | out dx,eax 163 | mov dx,0CFCh 164 | in eax,dx ;MSB(eax)=id LSB(eax)=vendor 165 | call cherche_base 166 | int 60h 167 | 168 | 169 | rech_pci_multiple: 170 | mov byte[silence],1 171 | mov ebx,80000000h 172 | boucle_rech_pci: 173 | mov dx,0CF8h 174 | mov eax,ebx 175 | out dx,eax 176 | mov dx,0CFCh 177 | in eax,dx ;MSB(eax)=id LSB(eax)=vendor 178 | cmp eax,0FFFFFFFFh 179 | je @f 180 | call cherche_base 181 | @@: 182 | 183 | 184 | test ebx,0700h 185 | jnz @f 186 | 187 | mov eax,ebx 188 | mov dx,0CF8h 189 | add eax,0Ch 190 | out dx,eax 191 | mov dx,0CFCh 192 | in eax,dx 193 | test eax,00800000h 194 | jz simplefonction 195 | 196 | @@: 197 | add ebx,100h ;on passe a la fonction suivante 198 | test ebx,7F000000h 199 | jz boucle_rech_pci 200 | int 60h 201 | 202 | 203 | simplefonction: 204 | add ebx,800h ;on passe au device suivant 205 | and ebx,0FFFFF800h 206 | test ebx,7F000000h 207 | jz boucle_rech_pci 208 | int 60h 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | erreur_bdd: 218 | mov edx,msg_bdd 219 | call ajuste_langue 220 | mov al,6 221 | int 61h 222 | int 60h 223 | 224 | 225 | erreur_add: 226 | mov edx,msg_add 227 | call ajuste_langue 228 | mov al,6 229 | int 61h 230 | int 60h 231 | 232 | ;*************************** 233 | cherche_base: 234 | pushad 235 | ;converti les id en chaines 236 | push eax 237 | xor ecx,ecx 238 | mov cx,ax 239 | mov eax,104 240 | mov edx,clef 241 | int 61h 242 | pop ecx 243 | shr ecx,16 244 | mov eax,104 245 | mov edx,clef+5 246 | int 61h 247 | 248 | mov byte[clef+4]," " 249 | mov byte[clef+9],13 250 | mov byte[clef+10],0 251 | 252 | mov edi,bdd 253 | mov esi,bdd 254 | add edi,[taille_bdd] 255 | 256 | boucle_cherche: 257 | mov eax,[clef] 258 | mov edx,[clef+5] 259 | cmp [esi],eax 260 | jne suite_cherche 261 | cmp byte[esi+4]," " 262 | jne suite_cherche 263 | cmp [esi+5],edx 264 | jne suite_cherche 265 | cmp byte[esi+9]," " 266 | jne suite_cherche 267 | 268 | 269 | ;copie le debut de la commande 270 | add esi,10 271 | mov edi,commande 272 | @@: 273 | lodsb 274 | cmp al,0 275 | je @f 276 | stosb 277 | jmp @b 278 | 279 | @@: 280 | ;ajoute l'adresse pci 281 | ;bus 282 | mov ecx,ebx 283 | shr ecx,16 284 | and ecx,0FFh 285 | mov edx,edi 286 | inc edx 287 | mov eax,105 288 | int 61h 289 | 290 | ;carte 291 | mov ecx,ebx 292 | shr ecx,11 293 | and ecx,1Fh 294 | mov edx,edi 295 | add edx,4 296 | mov eax,105 297 | int 61h 298 | 299 | ;fonction 300 | mov ecx,ebx 301 | shr ecx,8 302 | and ecx,0Fh 303 | mov edx,edi 304 | add edx,7 305 | mov eax,105 306 | int 61h 307 | 308 | mov byte[edi]," " 309 | mov byte[edi+3],":" 310 | mov byte[edi+6],"." 311 | mov byte[edi+8],0 312 | 313 | 314 | ;envoie la commande 315 | mov al,0 316 | mov edx,commande 317 | int 61h 318 | 319 | popad 320 | ret 321 | 322 | 323 | 324 | 325 | 326 | suite_cherche: 327 | inc esi 328 | cmp esi,edi 329 | jae nt_cherche 330 | 331 | cmp byte[esi],0 332 | jne suite_cherche 333 | cmp byte[esi+1],0 334 | je suite_cherche 335 | inc esi 336 | cmp esi,edi 337 | jb boucle_cherche 338 | 339 | nt_cherche: 340 | cmp byte[silence],0 341 | jne @f 342 | mov edx,msg_nt 343 | call ajuste_langue 344 | mov al,6 345 | int 61h 346 | @@: 347 | popad 348 | ret 349 | 350 | 351 | 352 | 353 | 354 | ;*************************** 355 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 356 | push eax 357 | mov eax,20 358 | int 61h 359 | xor ecx,ecx 360 | cmp eax,"eng " 361 | je @f 362 | inc ecx 363 | cmp eax,"fra " 364 | je @f 365 | xor ecx,ecx 366 | @@: 367 | 368 | boucle_ajuste_langue: 369 | cmp ecx,0 370 | je ok_ajuste_langue 371 | cmp byte[edx],0 372 | jne @f 373 | dec ecx 374 | @@: 375 | inc edx 376 | jmp boucle_ajuste_langue 377 | 378 | ok_ajuste_langue: 379 | pop eax 380 | ret 381 | 382 | sdata1: 383 | org 0 384 | 385 | 386 | bdd_pci: 387 | db "PILOTEPCI.CFG",0 388 | ;bdd_usb: 389 | ;db "PILOTEUSB.CFG",0 390 | 391 | msg_type: 392 | db "PILOTE: unknown device type",13,0 393 | db "PILOTE: type de périphérique inconnue",13,0 394 | 395 | 396 | msg_bdd: 397 | db "PILOTE: error loading the database",13,0 398 | db "PILOTE: erreur lors du chargement de la base de donnée",13,0 399 | 400 | msg_add: 401 | db "PILOTE: error in address format",13,0 402 | db "PILOTE: erreur dans le format de l'adresse",13,0 403 | 404 | msg_nt: 405 | db "PILOTE: no driver was found for the device",13,0 406 | db "PILOTE: aucuns pilote n'a été trouvé pour le périphérique",13,0 407 | 408 | silence: 409 | db 0 410 | nom_type: 411 | dd 0,0 412 | adresse: 413 | rb 16 414 | 415 | clef: 416 | rb 12 417 | 418 | 419 | handle_bdd: 420 | dd 0 421 | taille_bdd: 422 | dd 0,0 423 | 424 | commande: 425 | rb 256 426 | 427 | bdd: 428 | 429 | 430 | 431 | 432 | sdata2: 433 | org 0 434 | sdata3: 435 | org 0 436 | sdata4: 437 | org 0 438 | findata: 439 | -------------------------------------------------------------------------------- /ASM/PROG/ping.asm: -------------------------------------------------------------------------------- 1 | bidon: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "Ping ICMP" 5 | scode: 6 | org 0 7 | 8 | ;données du segment CS 9 | mov ax,sel_dat1 10 | mov ds,ax 11 | mov es,ax 12 | 13 | 14 | ;génère un numéros de port local pseudo aléatoirement 15 | mov eax,9 16 | int 61h 17 | xor ax,bx 18 | xor ax,cx 19 | xor ax,dx 20 | xor ax,07CB3h 21 | mov [sequence],ax 22 | 23 | 24 | 25 | ;************************************************************** 26 | ;determine l'id du service ethernet 27 | mov byte[zt_recep],0 28 | 29 | mov al,5 30 | mov ah,"c" ;lettre de l'option de commande a lire 31 | mov cl,0 ;0=256 octet max 32 | mov edx,zt_recep 33 | int 61h 34 | xor ebx,ebx 35 | cmp eax,0 36 | jne @f 37 | 38 | mov al,100 39 | mov edx,zt_recep 40 | int 61h 41 | mov ebx,ecx ;ebx=numéros de l'interface 42 | @@: 43 | 44 | mov al,11 45 | mov ah,6 ;code service 46 | mov cl,16 47 | mov edx,zt_recep 48 | int 61h 49 | 50 | shl ebx,1 51 | mov ax,[zt_recep+ebx] 52 | cmp ax,0 53 | je err_param 54 | mov [id_tache],ax 55 | 56 | 57 | 58 | ;************************************************************** 59 | ;determine ip cible 60 | mov byte[zt_recep],0 61 | 62 | mov al,4 63 | mov ah,0 ;numéros de l'option de commande a lire 64 | mov cl,0 ;0=256 octet max 65 | mov edx,zt_recep 66 | int 61h 67 | cmp eax,0 68 | jne err_param 69 | 70 | 71 | mov al,109 72 | mov edx,zt_recep 73 | mov ecx,adresse_cible 74 | int 61h 75 | 76 | cmp dword[adresse_cible],0 77 | je err_param 78 | 79 | 80 | 81 | ;************************************************************** 82 | ;determine nombre de ping 83 | mov byte[zt_recep],0 84 | 85 | mov al,5 86 | mov ah,"t" ;lettre de l'option de commande a lire 87 | mov cl,0 ;0=256 octet max 88 | mov edx,zt_recep 89 | int 61h 90 | cmp eax,0 91 | jne ignore_param2 92 | 93 | 94 | mov al,100 95 | mov edx,zt_recep 96 | int 61h 97 | 98 | cmp ecx,0 99 | je err_param 100 | test ecx,0FFFFFF00h 101 | jnz err_param 102 | 103 | mov [nb_ping],cl 104 | 105 | ignore_param2: 106 | 107 | ;*********************************************************** 108 | ;etablire une connexion 109 | mov al,0 110 | mov bx,[id_tache] 111 | mov ecx,64 112 | mov edx,1 113 | mov esi,2000 114 | mov edi,2000 115 | int 65h 116 | mov [adresse_canal],ebx 117 | 118 | ;configure 69 119 | mov byte[zt_recep],9 120 | 121 | mov al,5 122 | mov ebx,[adresse_canal] 123 | mov ecx,34h 124 | mov esi,zt_recep 125 | mov edi,0 126 | int 65h 127 | cmp eax,0 128 | jne err_cnx 129 | 130 | 131 | ;attend que le programme réponde 132 | mov al,8 133 | mov ebx,[adresse_canal] 134 | mov ecx,200 ;500ms 135 | int 65h 136 | cmp eax,cer_ddi 137 | jne err_cnx 138 | 139 | ;lit la réponse du programme 140 | mov al,4 141 | mov ebx,[adresse_canal] 142 | mov ecx,34h 143 | mov esi,0 144 | mov edi,zt_recep 145 | int 65h 146 | cmp eax,0 147 | jne err_cnx 148 | 149 | cmp byte[zt_recep],89h 150 | jne err_cnx 151 | 152 | 153 | ;signal le début du test 154 | mov al,6 155 | mov edx,msg0a 156 | call ajuste_langue 157 | int 61h 158 | 159 | mov al,112 160 | mov ecx,adresse_cible 161 | mov edx,tempo 162 | int 61h 163 | mov al,6 164 | mov edx,tempo 165 | int 61h 166 | 167 | mov al,6 168 | mov edx,msg0b 169 | int 61h 170 | 171 | 172 | 173 | ;************************************************************** 174 | ;envoie un ping a l'adresse 175 | boucle_principale: 176 | 177 | ;prépare commande 178 | mov word[zt_recep],128 ;ttl 179 | mov eax,[adresse_cible] 180 | mov [zt_recep+2],eax ;adresse ipv4 181 | mov dword[zt_recep+6],0 ;adresse ipv6 182 | mov dword[zt_recep+10],0 183 | mov dword[zt_recep+14],0 184 | mov dword[zt_recep+18],0 185 | mov byte[zt_recep+22],8 ;type 186 | mov byte[zt_recep+23],0 ;code 187 | mov word[zt_recep+24],0 ;cheksum 188 | mov ax,[sequence] 189 | mov word[zt_recep+26],ax ;identifiant 190 | inc ax 191 | mov word[zt_recep+28],ax ;numeros de séquence 192 | mov dword[zt_recep+30],"SALU" ;data bidon (un ptit message a la noix) 193 | mov dword[zt_recep+34],"T DU" 194 | mov dword[zt_recep+38]," SYS" 195 | mov dword[zt_recep+42],"TEME" 196 | mov dword[zt_recep+46]," D'E" 197 | mov dword[zt_recep+50],"XPLO" 198 | mov dword[zt_recep+54],"ITAT" 199 | mov dword[zt_recep+58],"ION " 200 | mov dword[zt_recep+62],"SEaC" 201 | 202 | 203 | ;lit le compteur temp 204 | mov eax,12 205 | int 61h 206 | mov[cptsf],eax 207 | 208 | 209 | ;envoie le message 210 | mov al,7 211 | mov ebx,[adresse_canal] 212 | mov ecx,66 213 | mov esi,zt_recep 214 | int 65h 215 | 216 | 217 | ;attend la réponse 218 | mov ecx,600 219 | continue_attente: 220 | mov al,9 221 | mov ebx,[adresse_canal] 222 | int 65h 223 | cmp eax,cer_ddi 224 | jne erreur_ping 225 | 226 | 227 | ;lit la réponse 228 | mov al,6 229 | mov ebx,[adresse_canal] 230 | mov ecx,512 231 | mov edi,zt_recep 232 | int 65h 233 | 234 | 235 | ;vérifie validité du résultat 236 | mov ecx,600 237 | mov eax,12 238 | int 61h 239 | sub eax,[cptsf] 240 | sub ecx,eax 241 | cmp word[zt_recep+22],0 242 | jne continue_attente 243 | 244 | 245 | ;affiche le résultat 246 | mov al,6 247 | mov edx,msg1a 248 | call ajuste_langue 249 | int 61h 250 | 251 | mov al,112 252 | mov ecx,zt_recep+2 253 | mov edx,tempo 254 | int 61h 255 | mov al,6 256 | mov edx,tempo 257 | int 61h 258 | 259 | mov al,6 260 | mov edx,msg1b 261 | call ajuste_langue 262 | int 61h 263 | 264 | mov eax,12 265 | int 61h 266 | sub eax,[cptsf] 267 | cmp eax,0 268 | je temps_court 269 | 270 | xor edx,edx 271 | mov ecx,25 272 | mul ecx 273 | mov ecx,10 274 | div ecx 275 | 276 | mov ecx,eax 277 | mov al,102 278 | mov edx,tempo 279 | int 61h 280 | mov al,6 281 | mov edx,tempo 282 | int 61h 283 | 284 | mov al,6 285 | mov edx,msg1d 286 | int 61h 287 | 288 | inc byte[ping_ok] 289 | jmp suite_boucle 290 | 291 | 292 | temps_court: 293 | mov al,6 294 | mov edx,msg1c 295 | call ajuste_langue 296 | int 61h 297 | 298 | inc byte[ping_ok] 299 | jmp suite_boucle 300 | 301 | 302 | ;si pas de réponse affiche un message d'erreur 303 | erreur_ping: 304 | mov al,6 305 | mov edx,msg2 306 | call ajuste_langue 307 | int 61h 308 | inc byte[ping_erreur] 309 | 310 | 311 | suite_boucle: 312 | mov al,[nb_ping] 313 | inc byte[ping_effectue] 314 | inc word[sequence] 315 | cmp byte[ping_effectue],al 316 | jne boucle_principale 317 | 318 | 319 | 320 | 321 | ;affiche la synthèse 322 | mov al,6 323 | mov edx,msg3a 324 | call ajuste_langue 325 | int 61h 326 | 327 | mov al,102 328 | xor ecx,ecx 329 | mov cl,[ping_effectue] 330 | mov edx,tempo 331 | int 61h 332 | mov al,6 333 | mov edx,tempo 334 | int 61h 335 | 336 | mov al,6 337 | mov edx,msg3b 338 | call ajuste_langue 339 | int 61h 340 | 341 | mov al,102 342 | xor ecx,ecx 343 | mov cl,[ping_ok] 344 | mov edx,tempo 345 | int 61h 346 | mov al,6 347 | mov edx,tempo 348 | int 61h 349 | 350 | mov al,6 351 | mov edx,msg3c 352 | call ajuste_langue 353 | int 61h 354 | 355 | mov al,102 356 | xor ecx,ecx 357 | mov cl,[ping_erreur] 358 | mov edx,tempo 359 | int 61h 360 | mov al,6 361 | mov edx,tempo 362 | int 61h 363 | 364 | mov al,6 365 | mov edx,msg3d 366 | int 61h 367 | 368 | int 60h 369 | 370 | 371 | ;*************************** 372 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 373 | push eax 374 | mov eax,20 375 | int 61h 376 | xor ecx,ecx 377 | cmp eax,"eng " 378 | je @f 379 | inc ecx 380 | cmp eax,"fra " 381 | je @f 382 | xor ecx,ecx 383 | @@: 384 | 385 | boucle_ajuste_langue: 386 | cmp ecx,0 387 | je ok_ajuste_langue 388 | cmp byte[edx],0 389 | jne @f 390 | dec ecx 391 | @@: 392 | inc edx 393 | jmp boucle_ajuste_langue 394 | 395 | ok_ajuste_langue: 396 | pop eax 397 | ret 398 | 399 | 400 | 401 | 402 | ;************************************************************** 403 | err_param: 404 | mov al,6 405 | mov edx,msg_err1 406 | call ajuste_langue 407 | int 61h 408 | int 60h 409 | 410 | 411 | err_cnx: 412 | mov al,6 413 | mov edx,msg_err2 414 | call ajuste_langue 415 | int 61h 416 | int 60h 417 | 418 | sdata1: 419 | org 0 420 | id_tache: 421 | dw 0 422 | adresse_canal: 423 | dd 0 424 | adresse_cible: 425 | dd 0 426 | nb_ping: 427 | db 4 428 | sequence: 429 | dw 0 430 | cptsf: 431 | dd 0 432 | ping_effectue: 433 | db 0 434 | ping_erreur: 435 | db 0 436 | ping_ok: 437 | db 0 438 | 439 | 440 | msg0a: 441 | db 13,"PING: test connection to ",0 442 | db 13,"PING: test de connexion vers ",0 443 | msg0b: 444 | db 13,0 445 | 446 | msg1a: 447 | db "Response from ",0 448 | db "Réponse de ",0 449 | msg1b: 450 | db " received in ",0 451 | db " reçu en ",0 452 | msg1c: 453 | db "less than 2ms",13,0 454 | db "moins de 2ms",13,0 455 | msg1d: 456 | db "ms",13,0 457 | 458 | 459 | msg2: 460 | db "Response timeout exceeded",13,0 461 | db "Délais d'attente de réponse dépassé",13,0 462 | 463 | 464 | msg3a: 465 | db 13,"PING: connection test result:",13,"Sent: ",0 466 | db 13,"PING: résultat des tests de connexion:",13,"Envoyé: ",0 467 | msg3b: 468 | db " Received: ",0 469 | db " Reçu: ",0 470 | msg3c: 471 | db " Lost: ",0 472 | db " Perdu: ",0 473 | msg3d: 474 | db 13,0 475 | 476 | 477 | 478 | 479 | 480 | msg_err1: 481 | db "PING: command line syntax error. enter ",22h,"man ping",22h," for correct syntax",13,0 482 | db "PING: erreur dans la syntaxe de la ligne de commande. entrez ",22h,"man ping",22h," pour avoir la syntaxe correcte",13,0 483 | 484 | msg_err2: 485 | db "PING: error while communicating with the network interface",13,0 486 | db "PING: erreur lors de la communication avec l'interface réseau",13,0 487 | 488 | tempo: 489 | dd 0,0,0,0,0,0,0,0,0,0,0,0 490 | 491 | zt_recep: 492 | rb 512 493 | 494 | sdata2: 495 | org 0 496 | ;données du segment ES 497 | sdata3: 498 | org 0 499 | ;données du segment FS 500 | sdata4: 501 | org 0 502 | ;données du segment GS 503 | findata: 504 | -------------------------------------------------------------------------------- /ASM/PROG/scanip.asm: -------------------------------------------------------------------------------- 1 | scanip: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "scanner par ping ICMP" 5 | scode: 6 | org 0 7 | 8 | ;données du segment CS 9 | mov ax,sel_dat1 10 | mov ds,ax 11 | mov es,ax 12 | 13 | 14 | ;génère un numéros de port local pseudo aléatoirement 15 | mov eax,9 16 | int 61h 17 | xor ax,bx 18 | xor ax,cx 19 | xor ax,dx 20 | xor ax,07CB3h 21 | mov [sequence],ax 22 | 23 | 24 | 25 | ;************************************************************** 26 | ;determine l'id du service ethernet 27 | mov byte[zt_recep],0 28 | 29 | mov al,5 30 | mov ah,"c" ;numéros de l'option de commande a lire 31 | mov cl,0 ;0=256 octet max 32 | mov edx,zt_recep 33 | int 61h 34 | xor ebx,ebx 35 | cmp eax,0 36 | je @f 37 | 38 | mov al,100 39 | mov edx,zt_recep 40 | int 61h 41 | mov ebx,ecx ;ebx=numéros de l'interface 42 | 43 | @@: 44 | mov al,11 45 | mov ah,6 ;code service 46 | mov cl,16 47 | mov edx,zt_recep 48 | int 61h 49 | 50 | shl ebx,1 51 | mov ax,[zt_recep+ebx] 52 | cmp ax,0 53 | je err_param 54 | mov [id_tache],ax 55 | 56 | 57 | 58 | ;************************************************************** 59 | ;determine ip cible debut 60 | mov byte[zt_recep],0 61 | 62 | mov al,4 63 | mov ah,0 ;numéros de l'option de commande a lire 64 | mov cl,0 ;0=256 octet max 65 | mov edx,zt_recep 66 | int 61h 67 | 68 | cmp byte[zt_recep],0 69 | je err_param 70 | 71 | 72 | mov al,109 73 | mov edx,zt_recep 74 | mov ecx,adresse_cible_debut 75 | int 61h 76 | 77 | cmp dword[adresse_cible_debut],0 78 | je err_param 79 | 80 | 81 | 82 | ;************************************************************** 83 | ;determine ip cible fin 84 | mov byte[zt_recep],0 85 | 86 | mov al,4 87 | mov ah,1 ;numéros de l'option de commande a lire 88 | mov cl,0 ;0=256 octet max 89 | mov edx,zt_recep 90 | int 61h 91 | 92 | cmp byte[zt_recep],0 93 | je err_param 94 | 95 | 96 | mov al,109 97 | mov edx,zt_recep 98 | mov ecx,adresse_cible_fin 99 | int 61h 100 | 101 | cmp dword[adresse_cible_fin],0 102 | je err_param 103 | 104 | 105 | 106 | ;************************************************************** 107 | ;determine nombre de ping 108 | mov byte[zt_recep],0 109 | 110 | mov al,5 111 | mov ah,"t" ;lettre de l'option de commande a lire 112 | mov cl,0 ;0=256 octet max 113 | mov edx,zt_recep 114 | int 61h 115 | cmp eax,0 116 | jne ignore_param2 117 | 118 | mov al,100 119 | mov edx,zt_recep 120 | int 61h 121 | 122 | cmp ecx,0 123 | je err_param 124 | test ecx,0FFFFFF00h 125 | jnz err_param 126 | 127 | mov [nb_ping],cl 128 | 129 | ignore_param2: 130 | 131 | ;*********************************************************** 132 | ;etablire une connexion 133 | mov al,0 134 | mov bx,[id_tache] 135 | mov ecx,64 136 | mov edx,1 137 | mov esi,2000 138 | mov edi,2000 139 | int 65h 140 | mov [adresse_canal],ebx 141 | 142 | ;configure 69 143 | mov byte[zt_recep],9 144 | 145 | mov al,5 146 | mov ebx,[adresse_canal] 147 | mov ecx,34h 148 | mov esi,zt_recep 149 | mov edi,0 150 | int 65h 151 | cmp eax,0 152 | jne err_cnx 153 | 154 | 155 | ;attend que le programme réponde 156 | mov al,8 157 | mov ebx,[adresse_canal] 158 | mov ecx,200 ;500ms 159 | int 65h 160 | cmp eax,cer_ddi 161 | jne err_cnx 162 | 163 | ;lit la réponse du programme 164 | mov al,4 165 | mov ebx,[adresse_canal] 166 | mov ecx,34h 167 | mov esi,0 168 | mov edi,zt_recep 169 | int 65h 170 | cmp eax,0 171 | jne err_cnx 172 | 173 | cmp byte[zt_recep],89h 174 | jne err_cnx 175 | 176 | 177 | ;signal le début du test 178 | mov al,6 179 | mov edx,msg0a 180 | call ajuste_langue 181 | int 61h 182 | 183 | mov al,112 184 | mov ecx,adresse_cible_debut 185 | mov edx,tempo 186 | int 61h 187 | mov al,6 188 | mov edx,tempo 189 | int 61h 190 | 191 | mov al,6 192 | mov edx,msg0b 193 | call ajuste_langue 194 | int 61h 195 | 196 | mov al,112 197 | mov ecx,adresse_cible_fin 198 | mov edx,tempo 199 | int 61h 200 | mov al,6 201 | mov edx,tempo 202 | int 61h 203 | 204 | mov al,6 205 | mov edx,msg0c 206 | int 61h 207 | 208 | 209 | 210 | 211 | mov eax,[adresse_cible_debut] 212 | mov [adresse_actuelle],eax 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | ;************************************************************** 223 | ;envoie un ping a l'adresse 224 | boucle_principale: 225 | 226 | ;prépare commande 227 | mov word[zt_recep],128 ;ttl 228 | mov eax,[adresse_actuelle] 229 | mov [zt_recep+2],eax ;adresse ipv4 230 | mov dword[zt_recep+6],0 ;adresse ipv6 231 | mov dword[zt_recep+10],0 232 | mov dword[zt_recep+14],0 233 | mov dword[zt_recep+18],0 234 | mov byte[zt_recep+22],8 ;type 235 | mov byte[zt_recep+23],0 ;code 236 | mov word[zt_recep+24],0 ;cheksum 237 | mov ax,[sequence] 238 | mov word[zt_recep+26],ax ;identifiant 239 | inc ax 240 | mov word[zt_recep+28],ax ;numeros de séquence 241 | mov dword[zt_recep+30],"SALU" ;data bidon (un ptit message a la noix) 242 | mov dword[zt_recep+34],"T DU" 243 | mov dword[zt_recep+38]," SYS" 244 | mov dword[zt_recep+42],"TEME" 245 | mov dword[zt_recep+46]," D'E" 246 | mov dword[zt_recep+50],"XPLO" 247 | mov dword[zt_recep+54],"ITAT" 248 | mov dword[zt_recep+58],"ION " 249 | mov dword[zt_recep+62],"SEaC" 250 | 251 | ;envoie le message 252 | mov al,7 253 | mov ebx,[adresse_canal] 254 | mov ecx,66 255 | mov esi,zt_recep 256 | int 65h 257 | 258 | 259 | 260 | ;attend la réponse 261 | mov ecx,25 262 | mov al,9 263 | mov ebx,[adresse_canal] 264 | int 65h 265 | cmp eax,cer_ddi 266 | jne suite_boucle 267 | 268 | 269 | ;lit la réponse 270 | mov al,6 271 | mov ebx,[adresse_canal] 272 | mov ecx,512 273 | mov edi,zt_recep 274 | int 65h 275 | 276 | 277 | ;vérifie validité du résultat 278 | cmp word[zt_recep+22],0 279 | jne suite_boucle 280 | 281 | 282 | ;affiche le résultat 283 | mov al,6 284 | mov edx,msg1a 285 | call ajuste_langue 286 | int 61h 287 | 288 | mov al,112 289 | mov ecx,zt_recep+2 290 | mov edx,tempo 291 | int 61h 292 | mov al,6 293 | mov edx,tempo 294 | int 61h 295 | 296 | mov al,6 297 | mov edx,msg1b 298 | int 61h 299 | 300 | 301 | 302 | 303 | 304 | 305 | suite_boucle: 306 | mov al,[nb_ping] 307 | inc byte[ping_effectue] 308 | inc word[sequence] 309 | cmp byte[ping_effectue],al 310 | jne boucle_principale 311 | mov eax,[adresse_actuelle] 312 | cmp eax,[adresse_cible_fin] 313 | je suite_operation 314 | mov eax,[adresse_actuelle] 315 | bswap eax 316 | inc eax 317 | bswap eax 318 | mov [adresse_actuelle],eax 319 | mov byte[ping_effectue],0 320 | jmp boucle_principale 321 | 322 | 323 | suite_operation: 324 | mov eax,12 325 | int 61h 326 | add eax,800 327 | mov [cptsf],eax 328 | 329 | 330 | boucle_secondaire: 331 | 332 | 333 | 334 | ;affiche la synthèse 335 | mov al,6 336 | mov edx,msg2a 337 | call ajuste_langue 338 | int 61h 339 | 340 | int 60h 341 | 342 | ;*************************** 343 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 344 | push eax 345 | mov eax,20 346 | int 61h 347 | xor ecx,ecx 348 | cmp eax,"eng " 349 | je @f 350 | inc ecx 351 | cmp eax,"fra " 352 | je @f 353 | xor ecx,ecx 354 | @@: 355 | 356 | boucle_ajuste_langue: 357 | cmp ecx,0 358 | je ok_ajuste_langue 359 | cmp byte[edx],0 360 | jne @f 361 | dec ecx 362 | @@: 363 | inc edx 364 | jmp boucle_ajuste_langue 365 | 366 | ok_ajuste_langue: 367 | pop eax 368 | ret 369 | 370 | 371 | 372 | ;************************************************************** 373 | err_param: 374 | mov al,6 375 | mov edx,msg_err1 376 | int 61h 377 | int 60h 378 | 379 | 380 | err_cnx: 381 | mov al,6 382 | mov edx,msg_err2 383 | int 61h 384 | int 60h 385 | 386 | sdata1: 387 | org 0 388 | id_tache: 389 | dw 0 390 | adresse_canal: 391 | dd 0 392 | adresse_cible_debut: 393 | dd 0 394 | adresse_cible_fin: 395 | dd 0 396 | adresse_actuelle: 397 | dd 0 398 | 399 | sequence: 400 | dw 0 401 | cptsf: 402 | dd 0 403 | 404 | nb_ping: 405 | db 1 406 | ping_effectue: 407 | db 0 408 | 409 | 410 | msg0a: 411 | db 13,"SCANIP: start scanning address from ",0 412 | db 13,"SCANIP: début du balayage de l'adresse ",0 413 | msg0b: 414 | db " to ",0 415 | db " à l'adresse ",0 416 | msg0c: 417 | db 13,0 418 | 419 | msg1a: 420 | db "Reply from address ",0 421 | db "Réponse de l'adresse ",0 422 | msg1b: 423 | db 13,0 424 | 425 | msg2a: 426 | db "SCANIP: end of scan",13,0 427 | db "SCANIP: fin du balayage",13,0 428 | 429 | 430 | 431 | msg_err1: 432 | db "SCANIP: command line syntax error. enter ",22h,"man scanip",22h," for correct syntax",13,0 433 | db "SCANIP: erreur dans la sytaxe de la ligne de commande. entrez ",22h,"man scanip",22h," pour avoir la sytaxe correcte",13,0 434 | 435 | msg_err2: 436 | db "SCANIP: error while communicating with the network interface",13,0 437 | db "SCANIP: erreur lors de la communication avec l'interface réseau",13,0 438 | 439 | 440 | tempo: 441 | dd 0,0,0,0,0,0,0,0,0,0,0,0 442 | 443 | zt_recep: 444 | rb 512 445 | 446 | sdata2: 447 | org 0 448 | ;données du segment ES 449 | sdata3: 450 | org 0 451 | ;données du segment FS 452 | sdata4: 453 | org 0 454 | ;données du segment GS 455 | findata: 456 | -------------------------------------------------------------------------------- /ASM/PROG/trace.asm: -------------------------------------------------------------------------------- 1 | bidon: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "Trace route ICMP" 5 | scode: 6 | org 0 7 | 8 | ;données du segment CS 9 | mov ax,sel_dat1 10 | mov ds,ax 11 | mov es,ax 12 | 13 | 14 | ;génère un numéros de port local pseudo aléatoirement 15 | mov eax,9 16 | int 61h 17 | xor ax,bx 18 | xor ax,cx 19 | xor ax,dx 20 | xor ax,07CB3h 21 | mov [sequence],ax 22 | 23 | 24 | 25 | ;************************************************************** 26 | ;determine l'id du service ethernet 27 | mov byte[zt_recep],0 28 | 29 | mov al,5 30 | mov ah,"c" ;numéros de l'option de commande a lire 31 | mov cl,0 ;0=256 octet max 32 | mov edx,zt_recep 33 | int 61h 34 | xor ebx,ebx 35 | cmp eax,0 36 | jne @f 37 | 38 | mov al,100 39 | mov edx,zt_recep 40 | int 61h 41 | mov ebx,ecx ;ebx=numéros de l'interface 42 | 43 | @@: 44 | mov al,11 45 | mov ah,6 ;code service 46 | mov cl,16 47 | mov edx,zt_recep 48 | int 61h 49 | 50 | shl ebx,1 51 | mov ax,[zt_recep+ebx] 52 | cmp ax,0 53 | je err_param 54 | mov [id_tache],ax 55 | 56 | 57 | 58 | ;************************************************************** 59 | ;determine ip cible 60 | mov byte[zt_recep],0 61 | 62 | mov al,4 63 | mov ah,0 ;numéros de l'option de commande a lire 64 | mov cl,0 ;0=256 octet max 65 | mov edx,zt_recep 66 | int 61h 67 | 68 | cmp byte[zt_recep],0 69 | je err_param 70 | 71 | 72 | mov al,109 73 | mov edx,zt_recep 74 | mov ecx,adresse_cible 75 | int 61h 76 | 77 | cmp dword[adresse_cible],0 78 | je err_param 79 | 80 | 81 | 82 | ;************************************************************** 83 | ;determine le nombre de sauts maximum 84 | mov byte[zt_recep],0 85 | 86 | mov al,5 87 | mov ah,"s" ;lettre de l'option de commande a lire 88 | mov cl,0 ;0=256 octet max 89 | mov edx,zt_recep 90 | int 61h 91 | cmp eax,0 92 | jne ignore_param2 93 | 94 | 95 | mov al,100 96 | mov edx,zt_recep 97 | int 61h 98 | 99 | cmp ecx,0 100 | je err_param 101 | test ecx,0FFFFFF00h 102 | jnz err_param 103 | 104 | mov [nb_saut],cl 105 | 106 | ignore_param2: 107 | 108 | 109 | 110 | ;************************************************************** 111 | ;determine le nombre d'essaies par étape 112 | mov byte[zt_recep],0 113 | 114 | mov al,5 115 | mov ah,"t" ;lettre de l'option de commande a lire 116 | mov cl,0 ;0=256 octet max 117 | mov edx,zt_recep 118 | int 61h 119 | cmp eax,0 120 | jne ignore_param3 121 | 122 | 123 | mov al,100 124 | mov edx,zt_recep 125 | int 61h 126 | 127 | cmp ecx,0 128 | je err_param 129 | test ecx,0FFFFFF00h 130 | jnz err_param 131 | 132 | mov [nb_essais],cl 133 | mov [ping_erreur],cl 134 | ignore_param3: 135 | 136 | 137 | 138 | ;*********************************************************** 139 | ;etablire une connexion 140 | mov al,0 141 | mov bx,[id_tache] 142 | mov ecx,64 143 | mov edx,1 144 | mov esi,2000 145 | mov edi,2000 146 | int 65h 147 | mov [adresse_canal],ebx 148 | 149 | ;configure 150 | mov byte[zt_recep],9 151 | 152 | mov al,5 153 | mov ebx,[adresse_canal] 154 | mov ecx,34h 155 | mov esi,zt_recep 156 | mov edi,0 157 | int 65h 158 | cmp eax,0 159 | jne err_cnx 160 | 161 | 162 | ;attend que le programme réponde 163 | mov al,8 164 | mov ebx,[adresse_canal] 165 | mov ecx,200 ;500ms 166 | int 65h 167 | cmp eax,cer_ddi 168 | jne err_cnx 169 | 170 | ;lit la réponse du programme 171 | mov al,4 172 | mov ebx,[adresse_canal] 173 | mov ecx,34h 174 | mov esi,0 175 | mov edi,zt_recep 176 | int 65h 177 | cmp eax,0 178 | jne err_cnx 179 | 180 | cmp byte[zt_recep],89h 181 | jne err_cnx 182 | 183 | 184 | ;signal le début du test 185 | mov al,6 186 | mov edx,msg0a 187 | call ajuste_langue 188 | int 61h 189 | 190 | mov al,112 191 | mov ecx,adresse_cible 192 | mov edx,tempo 193 | int 61h 194 | mov al,6 195 | mov edx,tempo 196 | int 61h 197 | 198 | mov al,6 199 | mov edx,msg_crlf 200 | int 61h 201 | 202 | 203 | 204 | ;************************************************************** 205 | ;envoie un ping a l'adresse 206 | boucle_principale: 207 | 208 | ;prépare commande 209 | mov al,[no_saut] 210 | mov [zt_recep],al ;ttl 211 | mov byte[zt_recep+1],0 212 | mov eax,[adresse_cible] 213 | mov [zt_recep+2],eax ;adresse ipv4 214 | mov dword[zt_recep+6],0 ;adresse ipv6 215 | mov dword[zt_recep+10],0 216 | mov dword[zt_recep+14],0 217 | mov dword[zt_recep+18],0 218 | mov byte[zt_recep+22],8 ;type 219 | mov byte[zt_recep+23],0 ;code 220 | mov word[zt_recep+24],0 ;cheksum 221 | mov ax,[sequence] 222 | mov word[zt_recep+26],ax ;identifiant 223 | inc ax 224 | mov word[zt_recep+28],ax ;numeros de séquence 225 | mov dword[zt_recep+30],"SALU" ;data bidon (un ptit message a la noix) 226 | mov dword[zt_recep+34],"T DU" 227 | mov dword[zt_recep+38]," SYS" 228 | mov dword[zt_recep+42],"TEME" 229 | mov dword[zt_recep+46]," D'E" 230 | mov dword[zt_recep+50],"XPLO" 231 | mov dword[zt_recep+54],"ITAT" 232 | mov dword[zt_recep+58],"ION " 233 | mov dword[zt_recep+62],"SEaC" 234 | 235 | 236 | ;lit le compteur temp 237 | mov eax,12 238 | int 61h 239 | mov[cptsf],eax 240 | 241 | 242 | ;envoie le message 243 | mov al,7 244 | mov ebx,[adresse_canal] 245 | mov ecx,66 246 | mov esi,zt_recep 247 | int 65h 248 | 249 | 250 | ;attend la réponse 251 | mov ecx,600 252 | continue_attente: 253 | mov al,9 254 | mov ebx,[adresse_canal] 255 | int 65h 256 | cmp eax,cer_ddi 257 | jne erreur_ping 258 | 259 | 260 | ;lit la réponse 261 | mov al,6 262 | mov ebx,[adresse_canal] 263 | mov ecx,512 264 | mov edi,zt_recep 265 | int 65h 266 | 267 | 268 | ;vérifie validité du résultat 269 | mov ecx,600 270 | mov eax,12 271 | int 61h 272 | sub eax,[cptsf] 273 | sub ecx,eax 274 | cmp word[zt_recep+22],0 ;si c'est une réponse a un echo c'est la fin 275 | je destination_trouve 276 | cmp word[zt_recep+22],11 ;si c'est un timeout c'est pour nous 277 | jne continue_attente 278 | mov eax,[adresse_cible] ;si c'était bien pour la destination c'est ok 279 | cmp [zt_recep+30+16],eax 280 | jne continue_attente 281 | 282 | 283 | ;affiche le résultat 284 | mov al,102 285 | xor ecx,ecx 286 | mov cl,[no_saut] 287 | mov edx,tempo 288 | int 61h 289 | mov al,6 290 | mov edx,tempo 291 | int 61h 292 | 293 | mov al,6 294 | mov edx,msg1a 295 | call ajuste_langue 296 | int 61h 297 | 298 | mov al,112 299 | mov ecx,zt_recep+2 300 | mov edx,tempo 301 | int 61h 302 | mov al,6 303 | mov edx,tempo 304 | int 61h 305 | 306 | mov al,6 307 | mov edx,msg_crlf 308 | int 61h 309 | 310 | 311 | 312 | suite_boucle: 313 | mov al,[nb_essais] 314 | mov [ping_erreur],al 315 | mov al,[nb_saut] 316 | inc al 317 | inc byte[no_saut] 318 | inc word[sequence] 319 | cmp byte[no_saut],al 320 | jne boucle_principale 321 | 322 | 323 | mov al,6 324 | mov edx,msg_fin 325 | call ajuste_langue 326 | int 61h 327 | 328 | int 60h 329 | 330 | ;si pas de réponse affiche un message d'erreur 331 | erreur_ping: 332 | mov al,102 333 | xor ecx,ecx 334 | mov cl,[no_saut] 335 | mov edx,tempo 336 | int 61h 337 | mov al,6 338 | mov edx,tempo 339 | int 61h 340 | 341 | mov al,6 342 | mov edx,msg2 343 | call ajuste_langue 344 | int 61h 345 | dec byte[ping_erreur] 346 | jnz boucle_principale 347 | jmp suite_boucle 348 | 349 | 350 | ;on est arrivé au destinataire final 351 | destination_trouve: 352 | mov al,102 353 | xor ecx,ecx 354 | mov cl,[no_saut] 355 | mov edx,tempo 356 | int 61h 357 | mov al,6 358 | mov edx,tempo 359 | int 61h 360 | 361 | mov al,6 362 | mov edx,msg3a 363 | call ajuste_langue 364 | int 61h 365 | 366 | mov al,112 367 | mov ecx,zt_recep+2 368 | mov edx,tempo 369 | int 61h 370 | mov al,6 371 | mov edx,tempo 372 | int 61h 373 | 374 | mov al,6 375 | mov edx,msg_crlf 376 | int 61h 377 | 378 | int 60h 379 | 380 | 381 | 382 | 383 | ;*************************** 384 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 385 | push eax 386 | mov eax,20 387 | int 61h 388 | xor ecx,ecx 389 | cmp eax,"eng " 390 | je @f 391 | inc ecx 392 | cmp eax,"fra " 393 | je @f 394 | xor ecx,ecx 395 | @@: 396 | 397 | boucle_ajuste_langue: 398 | cmp ecx,0 399 | je ok_ajuste_langue 400 | cmp byte[edx],0 401 | jne @f 402 | dec ecx 403 | @@: 404 | inc edx 405 | jmp boucle_ajuste_langue 406 | 407 | ok_ajuste_langue: 408 | pop eax 409 | ret 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | ;************************************************************** 420 | err_param: 421 | mov al,6 422 | mov edx,msg_err1 423 | call ajuste_langue 424 | int 61h 425 | int 60h 426 | 427 | 428 | err_cnx: 429 | mov al,6 430 | mov edx,msg_err2 431 | call ajuste_langue 432 | int 61h 433 | int 60h 434 | 435 | 436 | 437 | 438 | sdata1: 439 | org 0 440 | id_tache: 441 | dw 0 442 | adresse_canal: 443 | dd 0 444 | adresse_cible: 445 | dd 0 446 | nb_saut: 447 | db 40 448 | nb_essais: 449 | db 4 450 | sequence: 451 | dw 0 452 | cptsf: 453 | dd 0 454 | no_saut: 455 | db 1 456 | ping_erreur: 457 | db 4 458 | 459 | 460 | msg0a: 461 | db 13,"TRACE: test connection path to ",0 462 | db 13,"TRACE: test du chemin de connexion vers ",0 463 | 464 | 465 | msg2: 466 | db " Response timeout exceeded",13,0 467 | db " Délais d'attente de réponse dépassé",13,0 468 | 469 | 470 | 471 | msg1a: 472 | db " intermediate ",0 473 | db " intermédiaire ",0 474 | 475 | 476 | msg3a: 477 | db " receiver! ",0 478 | db " destinataire! ",0 479 | 480 | 481 | msg_crlf: 482 | db 13,0 483 | 484 | 485 | msg_fin: 486 | db "TRACE: the destination could not be reached",13,0 487 | db "TRACE: la destination n'a pas pu être atteinte",13,0 488 | 489 | 490 | msg_err1: 491 | db "TRACE: command line syntax error. enter ",22h,"man trace",22h," for correct syntax",13,0 492 | db "TRACE: erreur dans la sytaxe de la ligne de commande. entrez ",22h,"man trace",22h," pour avoir la syntaxe correcte",13,0 493 | 494 | 495 | msg_err2: 496 | db "TRACE: error while communicating with the network interface",13,0 497 | db "TRACE: erreur lors de la communication avec l'interface réseau",13,0 498 | 499 | 500 | tempo: 501 | dd 0,0,0,0,0,0,0,0,0,0,0,0 502 | 503 | zt_recep: 504 | rb 512 505 | 506 | sdata2: 507 | org 0 508 | ;données du segment ES 509 | sdata3: 510 | org 0 511 | ;données du segment FS 512 | sdata4: 513 | org 0 514 | ;données du segment GS 515 | findata: 516 | -------------------------------------------------------------------------------- /ASM/PROG/utf8.asm: -------------------------------------------------------------------------------- 1 | utf8: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "convertit un code de caractère unicode exprimé en hexadécimal en une suite d'octet pour un codage en UTF8" 5 | scode: 6 | org 0 7 | 8 | ;données du segment CS 9 | 10 | mov ax,sel_dat1 11 | mov ds,ax 12 | mov es,ax 13 | 14 | mov eax,0004h ;charge le premier param 15 | mov edx,chaine 16 | mov cl,200 17 | int 61h 18 | cmp eax,0 19 | jne carac0 20 | 21 | mov edx,chaine 22 | mov eax,101 23 | int 61h 24 | cmp ecx,0 25 | jne okcarac 26 | carac0: 27 | mov ecx,1 28 | okcarac: 29 | mov [carac],ecx 30 | 31 | mov eax,0104h ;charge le deuxième param 32 | mov edx,chaine 33 | mov cl,200 34 | int 61h 35 | cmp eax,0 36 | jne nombre0 37 | 38 | mov edx,chaine 39 | mov eax,101 40 | int 61h 41 | cmp ecx,0 42 | jne oknombre 43 | nombre0: 44 | mov ecx,1 45 | oknombre: 46 | mov [nombre],ecx 47 | 48 | 49 | 50 | boucle: 51 | mov ecx,[carac] 52 | mov al,103 53 | mov edx,chaine 54 | int 61h 55 | bouclehexa: 56 | cmp byte[edx],"0" 57 | jne suitehexa 58 | inc edx 59 | jmp bouclehexa 60 | suitehexa: 61 | mov al,6 62 | int 61h 63 | 64 | mov edx,msgegal 65 | mov al,6 66 | int 61h 67 | 68 | mov ecx,[carac] 69 | mov al,102 70 | mov edx,chaine 71 | int 61h 72 | mov al,6 73 | int 61h 74 | 75 | 76 | mov byte[chaine],"(" 77 | 78 | cmp ecx,80h ;-de 7 bit 79 | jb insert1 80 | cmp ecx,800h ;-de 11 bits 81 | jb insert2 82 | cmp ecx,10000h ;-de 16 bits 83 | jb insert3 84 | cmp ecx,200000h ;-de 21 bits 85 | jb insert4 86 | mov al,6 87 | mov edx,msgerr 88 | call ajuste_langue 89 | int 61h 90 | int 60h 91 | 92 | 93 | 94 | 95 | 96 | ;******************************** 97 | insert1: 98 | and ecx,7Fh 99 | mov [chaine+1],cl 100 | 101 | mov dword[chaine+2],")-> " 102 | 103 | mov edx,chaine+6 104 | mov al,105 105 | int 61h 106 | jmp fin_norm 107 | 108 | 109 | 110 | ;*********************************** 111 | insert2: 112 | mov al,cl 113 | and al,3Fh 114 | or al,80h 115 | mov [chaine+2],al 116 | shr ecx,6 117 | mov al,cl 118 | and al,01Fh 119 | or al,0C0h 120 | mov [chaine+1],al 121 | 122 | mov dword[chaine+3],")-> " 123 | 124 | mov al,105 125 | mov cl,[chaine+1] 126 | mov edx,chaine+7 127 | int 61h 128 | mov byte[chaine+9]," " 129 | mov al,105 130 | mov cl,[chaine+2] 131 | mov edx,chaine+10 132 | int 61h 133 | jmp fin_norm 134 | 135 | 136 | 137 | 138 | 139 | 140 | ;********************************* 141 | insert3: 142 | mov al,cl 143 | and al,3Fh 144 | or al,80h 145 | mov [chaine+3],al 146 | shr ecx,6 147 | mov al,cl 148 | and al,3Fh 149 | or al,80h 150 | mov [chaine+2],al 151 | shr ecx,6 152 | mov al,cl 153 | and al,0Fh 154 | or al,0E0h 155 | mov [chaine+1],al 156 | 157 | mov dword[chaine+4],")-> " 158 | 159 | mov al,105 160 | mov cl,[chaine+1] 161 | mov edx,chaine+8 162 | int 61h 163 | mov byte[chaine+10]," " 164 | mov al,105 165 | mov cl,[chaine+2] 166 | mov edx,chaine+11 167 | int 61h 168 | mov byte[chaine+13]," " 169 | mov al,105 170 | mov cl,[chaine+3] 171 | mov edx,chaine+14 172 | int 61h 173 | 174 | jmp fin_norm 175 | 176 | ;****************************** 177 | insert4: 178 | mov al,cl 179 | and al,3Fh 180 | or al,80h 181 | mov [chaine+4],al 182 | shr ecx,6 183 | mov al,cl 184 | and al,3Fh 185 | or al,80h 186 | mov [chaine+3],al 187 | shr ecx,6 188 | mov al,cl 189 | and al,3Fh 190 | or al,80h 191 | mov [chaine+2],al 192 | shr ecx,6 193 | mov al,cl 194 | and al,07h 195 | or al,0F0h 196 | mov [chaine+1],al 197 | 198 | mov dword[chaine+5],")-> " 199 | 200 | mov al,105 201 | mov cl,[chaine+1] 202 | mov edx,chaine+9 203 | int 61h 204 | mov byte[chaine+11]," " 205 | mov al,105 206 | mov cl,[chaine+2] 207 | mov edx,chaine+12 208 | int 61h 209 | mov byte[chaine+14]," " 210 | mov al,105 211 | mov cl,[chaine+3] 212 | mov edx,chaine+15 213 | int 61h 214 | mov byte[chaine+17]," " 215 | mov al,105 216 | mov cl,[chaine+4] 217 | mov edx,chaine+18 218 | int 61h 219 | 220 | 221 | 222 | 223 | 224 | ;****************************** 225 | fin_norm: 226 | mov al,6 227 | mov edx,chaine 228 | int 61h 229 | 230 | mov al,6 231 | mov edx,msgfin 232 | int 61h 233 | 234 | 235 | inc dword[carac] 236 | dec dword[nombre] 237 | jnz boucle 238 | 239 | int 60h 240 | 241 | 242 | 243 | ;*************************** 244 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 245 | push eax 246 | mov eax,20 247 | int 61h 248 | xor ecx,ecx 249 | cmp eax,"eng " 250 | je @f 251 | inc ecx 252 | cmp eax,"fra " 253 | je @f 254 | xor ecx,ecx 255 | @@: 256 | 257 | boucle_ajuste_langue: 258 | cmp ecx,0 259 | je ok_ajuste_langue 260 | cmp byte[edx],0 261 | jne @f 262 | dec ecx 263 | @@: 264 | inc edx 265 | jmp boucle_ajuste_langue 266 | 267 | ok_ajuste_langue: 268 | pop eax 269 | ret 270 | 271 | 272 | 273 | 274 | sdata1: 275 | org 0 276 | 277 | carac: 278 | dd 0 279 | nombre: 280 | dd 0 281 | msgerr: 282 | db " -> the character code entered exceeds the 21 bits authorized by UNICODE",13,0 283 | db " -> le code de caractère entrée dépasse les 21 bits autorisé par UNICODE",13,0 284 | msgfin: 285 | db 13,0 286 | msgegal: 287 | db "h = ",0 288 | chaine: 289 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 290 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 291 | db 0 292 | sdata2: 293 | org 0 294 | ;données du segment ES 295 | sdata3: 296 | org 0 297 | ;données du segment FS 298 | sdata4: 299 | org 0 300 | ;données du segment GS 301 | findata: 302 | -------------------------------------------------------------------------------- /ASM/PROG/whois.asm: -------------------------------------------------------------------------------- 1 | bidon: 2 | pile equ 4096 ;definition de la taille de la pile 3 | include "fe.inc" 4 | db "Client whois" 5 | scode: 6 | org 0 7 | 8 | 9 | 10 | 11 | 12 | ;données du segment CS 13 | mov ax,sel_dat1 14 | mov ds,ax 15 | mov es,ax 16 | 17 | 18 | ;agrandit la zone mémoire 19 | mov al,8 20 | mov ecx,zt_reponse+40000h 21 | mov dx,sel_dat1 22 | int 61h 23 | 24 | 25 | 26 | ;************************************************************** 27 | ;lit l'adresse de la ressource souhaité 28 | mov byte[zt_nom],0 29 | 30 | mov al,4 31 | mov ah,0 ;numéros de l'option de commande a lire 32 | mov cl,0 ;0=256 octet max 33 | mov edx,zt_nom 34 | int 61h 35 | 36 | cmp byte[zt_nom],0 37 | je aff_err_param 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | ;***************************************************** 48 | ;test si il faut interroger un serveur directement 49 | mov al,5 50 | mov ah,"s" ;numéros de l'option de commande a lire 51 | mov cl,0 ;0=256 52 | mov edx,serveur 53 | int 61h 54 | 55 | 56 | 57 | 58 | ;******************************************************** 59 | ;génère un numéros de port local pseudo aléatoirement 60 | mov eax,9 61 | int 61h 62 | xor ax,bx 63 | xor ax,cx 64 | xor ax,dx 65 | xor ax,05A8Dh 66 | mov [port_local],ax 67 | 68 | 69 | 70 | 71 | ;************************************************************** 72 | ;determine l'id du service ethernet 73 | mov byte[zt_reponse],0 74 | 75 | mov al,5 76 | mov ah,"c" ;numéros de l'option de commande a lire 77 | mov cl,0 ;0=256 octet max 78 | mov edx,zt_reponse 79 | int 61h 80 | xor ebx,ebx 81 | cmp eax,0 82 | jne @f 83 | 84 | mov al,100 85 | mov edx,zt_reponse 86 | int 61h 87 | mov ebx,ecx ;ebx=numéros de l'interface 88 | 89 | @@: 90 | mov al,11 91 | mov ah,6 ;code service 92 | mov cl,16 93 | mov edx,zt_reponse 94 | int 61h 95 | 96 | shl ebx,1 97 | mov ax,[zt_reponse+ebx] 98 | mov [id_tache],ax 99 | 100 | 101 | 102 | ;determine quel serveur doit être consulté 103 | mov edx,serveur 104 | cmp byte[edx],0 105 | jne serveur_ok 106 | mov ebx,zt_nom 107 | 108 | 109 | boucle_recherche_fin_nom: 110 | cmp byte[ebx],"." 111 | jne @f 112 | mov eax,ebx 113 | @@: 114 | inc ebx 115 | cmp byte[ebx],0 116 | jne boucle_recherche_fin_nom 117 | 118 | inc eax 119 | mov edx,serveur_base 120 | 121 | 122 | cmp dword[eax],"io" 123 | je serveurio 124 | cmp dword[eax],"eu" 125 | je serveureu 126 | cmp dword[eax],"uk" 127 | je serveuruk 128 | cmp dword[eax],"de" 129 | je serveurde 130 | cmp dword[eax],"be" 131 | je serveurbe 132 | cmp dword[eax],"fr" 133 | je serveurfr 134 | cmp dword[eax],"com" 135 | je serveurcom 136 | cmp dword[eax],"net" 137 | je serveurnet 138 | cmp dword[eax],"org" 139 | je serveurorg 140 | 141 | cmp byte[eax+4],0 142 | jne serveur_ok 143 | cmp dword[eax],"wiki" 144 | je serveurwiki 145 | jmp serveur_ok 146 | 147 | 148 | serveurwiki: 149 | mov edx,serveur_wiki 150 | jmp serveur_ok 151 | serveurcom: 152 | mov edx,serveur_com 153 | jmp serveur_ok 154 | serveurnet: 155 | mov edx,serveur_net 156 | jmp serveur_ok 157 | serveurfr: 158 | mov edx,serveur_fr 159 | jmp serveur_ok 160 | serveurorg: 161 | mov edx,serveur_org 162 | jmp serveur_ok 163 | serveurio: 164 | mov edx,serveur_io 165 | jmp serveur_ok 166 | serveureu: 167 | mov edx,serveur_eu 168 | jmp serveur_ok 169 | serveuruk: 170 | mov edx,serveur_uk 171 | jmp serveur_ok 172 | serveurde: 173 | mov edx,serveur_de 174 | jmp serveur_ok 175 | serveurbe: 176 | mov edx,serveur_be 177 | ;jmp serveur_ok 178 | 179 | ;récupère l'adresse ip du serveur 180 | serveur_ok: 181 | mov [ad_serveur],edx 182 | mov al,109 183 | mov ecx,ip_serveur 184 | int 61h 185 | cmp eax,0 186 | jne aff_err_com 187 | 188 | 189 | 190 | ;*********************************************************** 191 | ;etablire une connexion 192 | mov al,0 193 | mov bx,[id_tache] 194 | mov ecx,64 195 | mov edx,1 196 | mov esi,2000 197 | mov edi,2000 198 | int 65h 199 | cmp eax,0 200 | jne aff_err_com 201 | 202 | mov [adresse_canal],ebx 203 | 204 | 205 | mov al,5 206 | mov ebx,[adresse_canal] 207 | mov ecx,34h 208 | mov esi,commande_ethernet 209 | mov edi,0 210 | int 65h 211 | cmp eax,0 212 | jne aff_err_com 213 | 214 | 215 | ;attend que le programme réponde 216 | mov al,8 217 | mov ebx,[adresse_canal] 218 | mov ecx,200 ;500ms 219 | int 65h 220 | cmp eax,cer_ddi 221 | jne aff_err_com 222 | 223 | ;lit la réponse du programme 224 | mov al,4 225 | mov ebx,[adresse_canal] 226 | mov ecx,34h 227 | mov esi,0 228 | mov edi,zt_reponse 229 | int 65h 230 | cmp eax,0 231 | jne aff_err_com 232 | 233 | cmp byte[zt_reponse],88h 234 | jne aff_err_com 235 | 236 | 237 | 238 | 239 | ;envoyer la requete 240 | mov esi,zt_nom 241 | mov ecx,zt_nom 242 | @@: 243 | mov al,[ecx] 244 | inc ecx 245 | cmp al,0 246 | jne @b 247 | dec ecx 248 | sub ecx,esi 249 | mov al,7 250 | mov ebx,[adresse_canal] 251 | int 65h 252 | cmp eax,0 253 | jne aff_err_com 254 | 255 | mov esi,CRLF 256 | mov ecx,2 257 | mov al,7 258 | mov ebx,[adresse_canal] 259 | int 65h 260 | cmp eax,0 261 | jne aff_err_com 262 | 263 | 264 | ;informer que l'on as envoyé une demande 265 | mov al,6 266 | mov edx,msg_ok1 267 | call ajuste_langue 268 | int 61h 269 | mov al,6 270 | mov edx,[ad_serveur] 271 | int 61h 272 | mov al,6 273 | mov edx,msg_ok2 274 | call ajuste_langue 275 | int 61h 276 | mov al,6 277 | mov edx,zt_nom 278 | int 61h 279 | mov al,6 280 | mov edx,msg_cr 281 | int 61h 282 | 283 | 284 | 285 | ;lire la réponse 286 | boucle_lecture_reponse: 287 | mov al,6 288 | mov ebx,[adresse_canal] 289 | mov ecx,1024 290 | mov edi,zt_reponse 291 | add edi,[offset_reponse] 292 | int 65h 293 | cmp eax,0 294 | jne fin 295 | cmp ecx,0 296 | je boucle_lecture_reponse 297 | add [offset_reponse],ecx 298 | mov al,6 299 | mov edx,msg_point 300 | int 61h 301 | jmp boucle_lecture_reponse 302 | 303 | 304 | 305 | fin: 306 | mov ecx,[offset_reponse] 307 | mov esi,zt_reponse 308 | mov byte[ecx+zt_reponse],0 309 | 310 | boucle_temp: 311 | cmp word[esi],0D0Ah 312 | jne @f 313 | mov word[esi],0D20h 314 | @@: 315 | cmp word[esi],0A0Dh 316 | jne @f 317 | mov word[esi],0D20h 318 | @@: 319 | cmp byte[esi],0Ah 320 | jne @f 321 | mov byte[esi],0Dh 322 | @@: 323 | inc esi 324 | dec ecx 325 | jne boucle_temp 326 | 327 | mov al,6 328 | mov edx,msg_cr 329 | int 61h 330 | mov al,6 331 | mov edx,zt_reponse 332 | int 61h 333 | 334 | int 60h 335 | 336 | 337 | 338 | 339 | 340 | ;******************************************* 341 | aff_err_param: 342 | mov al,6 343 | mov edx,msg_ok_er1 344 | call ajuste_langue 345 | int 61h 346 | int 60h 347 | 348 | aff_err_com: 349 | mov al,6 350 | mov edx,msg_ok_er2 351 | call ajuste_langue 352 | int 61h 353 | int 60h 354 | 355 | 356 | 357 | ;*************************** 358 | ajuste_langue: ;selectionne le message adapté a la langue employé par le système 359 | push eax 360 | mov eax,20 361 | int 61h 362 | xor ecx,ecx 363 | cmp eax,"eng " 364 | je @f 365 | inc ecx 366 | cmp eax,"fra " 367 | je @f 368 | xor ecx,ecx 369 | @@: 370 | 371 | boucle_ajuste_langue: 372 | cmp ecx,0 373 | je ok_ajuste_langue 374 | cmp byte[edx],0 375 | jne @f 376 | dec ecx 377 | @@: 378 | inc edx 379 | jmp boucle_ajuste_langue 380 | 381 | ok_ajuste_langue: 382 | pop eax 383 | ret 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | sdata1: 399 | org 0 400 | 401 | 402 | 403 | commande_ethernet: 404 | db 8,1 405 | port_local: 406 | dw 0 407 | cmd_max: 408 | dw 0 409 | cmd_fifo: 410 | dw 20000,20000 411 | port_serveur: 412 | dw 43 413 | ip_serveur: 414 | dd 0 415 | cmd_ip6: 416 | 417 | 418 | 419 | 420 | 421 | ad_serveur: 422 | dd 0 423 | id_tache: 424 | dw 0 425 | adresse_canal: 426 | dd 0 427 | offset_reponse: 428 | dd 0 429 | 430 | serveur_base: 431 | db "whois.iana.org",0 432 | serveur_com: 433 | serveur_net: 434 | db "whois.verisign-grs.com",0 435 | serveur_fr: 436 | db "whois.nic.fr",0 437 | serveur_org: 438 | db "whois.publicinterestregistry.org",0 439 | serveur_wiki: 440 | db "whois.nic.wiki",0 441 | serveur_io: 442 | db "whois.nic.io",0 443 | serveur_eu: 444 | db "whois.eu",0 445 | serveur_uk: 446 | db "whois.nic.uk",0 447 | serveur_de: 448 | db "whois.denic.de",0 449 | serveur_be: 450 | db "whois.dns.be",0 451 | 452 | 453 | 454 | CRLF: 455 | db 13,10 456 | 457 | 458 | msg_ok_er1: 459 | db "WHOIS: missing parameter",13,0 460 | db "WHOIS: parametre manquant",13,0 461 | msg_ok_er2: 462 | 463 | db "WHOIS: Unable to connect to server",13,0 464 | db "WHOIS: impossible de se connecter au serveur",13,0 465 | msg_ok1: 466 | db "WHOIS: querying server ",0 467 | db "WHOIS: interrogation du serveur ",0 468 | msg_ok2: 469 | 470 | db " for the domain ",0 471 | db " pour le domaine ",0 472 | 473 | msg_point: 474 | db ".",0 475 | msg_cr: 476 | db 13,0 477 | 478 | zt_nom: 479 | rb 256 480 | serveur: 481 | rb 256 482 | zt_reponse: 483 | 484 | 485 | 486 | sdata2: 487 | org 0 488 | ;données du segment ES 489 | sdata3: 490 | org 0 491 | ;données du segment FS 492 | sdata4: 493 | org 0 494 | ;données du segment GS 495 | findata: 496 | -------------------------------------------------------------------------------- /BIN/0u0.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/0u0.def -------------------------------------------------------------------------------- /BIN/1u0.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/1u0.def -------------------------------------------------------------------------------- /BIN/25u0.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/25u0.def -------------------------------------------------------------------------------- /BIN/3C90X.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/3C90X.FE -------------------------------------------------------------------------------- /BIN/AJARCH.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/AJARCH.FE -------------------------------------------------------------------------------- /BIN/AUTOCOMP.CFG: -------------------------------------------------------------------------------- 1 | cd|af|lt|lm|ld|lv|ex|nd|ls|rm|cp|mv|def|ren|sup|cop|mtt|fds|dir|efj|modv|stop|vmem|echo|3c90x|ajarch|calc|cdns|cftp|chttp|circ|CTFTP|date|dcp|edg|edh|edt|expl|fasm|i8254x|ics|ipconfig|lspci|lsusb|man|partd|pilote|ping|rtl8139|scanip|sdhcp|sdns|shttp|snif|stftp|stlnt|term|trace|utf8|voir|whois -------------------------------------------------------------------------------- /BIN/BIOS.MBR: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/BIOS.MBR -------------------------------------------------------------------------------- /BIN/CALC.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/CALC.FE -------------------------------------------------------------------------------- /BIN/CDNS.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/CDNS.FE -------------------------------------------------------------------------------- /BIN/CFG.ZIP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/CFG.ZIP -------------------------------------------------------------------------------- /BIN/CFTP.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/CFTP.FE -------------------------------------------------------------------------------- /BIN/CHTTP.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/CHTTP.FE -------------------------------------------------------------------------------- /BIN/CIRC.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/CIRC.FE -------------------------------------------------------------------------------- /BIN/CTFTP.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/CTFTP.FE -------------------------------------------------------------------------------- /BIN/DATE.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/DATE.FE -------------------------------------------------------------------------------- /BIN/DCP.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/DCP.FE -------------------------------------------------------------------------------- /BIN/EDG.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/EDG.FE -------------------------------------------------------------------------------- /BIN/EDH.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/EDH.FE -------------------------------------------------------------------------------- /BIN/EDT.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/EDT.FE -------------------------------------------------------------------------------- /BIN/ETAGE24.ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/ETAGE24.ASM -------------------------------------------------------------------------------- /BIN/ETAGE3.BIN: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/ETAGE3.BIN -------------------------------------------------------------------------------- /BIN/ETAGE4.BIN: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/ETAGE4.BIN -------------------------------------------------------------------------------- /BIN/EXPL.CFG: -------------------------------------------------------------------------------- 1 | * 2 | Supprimer| sup "$" -q 3 | Renommer| ren "$" -q 4 | couper|#X 5 | copier|#C 6 | coller|#V 7 | selectionner tout|#A 8 | ? 9 | Editer en tant que fichier texte| edt "$" 10 | Editer en tant que fichier hexadécimal| edh "$" 11 | # 12 | ouvrir|#O 13 | ouvrir dans un nouvel onglet|#N 14 | ouvrir dans une nouvelle fenetre| expl "$" 15 | TXT 16 | CFG 17 | CPC 18 | BAT 19 | INI 20 | C 21 | CPP 22 | Editer| edt "$" 23 | PNG 24 | Ouvrir| voir "$" 25 | FE 26 | Executer| & 27 | Manuel| man & 28 | ASM 29 | S 30 | INC 31 | Editer| edt "$" 32 | Compiler en executable| fasm "$" "&.FE" 33 | Compiler en binaire| fasm "$" "&.BIN" 34 | SH 35 | Executer| ex "$" 36 | Editer| edt "$" 37 | DEF 38 | Installer| def $ 39 | Editer la police| edg "$" 40 | ZIP 41 | decompresser| dcp "$" 42 | decompresser et écraser les fichier déjà existant| dcp "$" -e -------------------------------------------------------------------------------- /BIN/EXPL.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/EXPL.FE -------------------------------------------------------------------------------- /BIN/F00u0.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/F00u0.def -------------------------------------------------------------------------------- /BIN/FASM.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/FASM.FE -------------------------------------------------------------------------------- /BIN/FFu0.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/FFu0.def -------------------------------------------------------------------------------- /BIN/I8254X.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/I8254X.FE -------------------------------------------------------------------------------- /BIN/ICS.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/ICS.FE -------------------------------------------------------------------------------- /BIN/IPCONFIG.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/IPCONFIG.FE -------------------------------------------------------------------------------- /BIN/JN1.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/JN1.FE -------------------------------------------------------------------------------- /BIN/LC.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/LC.FE -------------------------------------------------------------------------------- /BIN/LSPCI.CFG: -------------------------------------------------------------------------------- 1 | +00 Unclassified 2 | .00 Non-VGA-Compatible devices 3 | .01 VGA-Compatible Device 4 | +01 Mass Storage Controller 5 | .00 SCSI Bus 6 | .01 IDE 7 | -00 ISA Compatibility mode-only controller 8 | -05 PCI native mode-only controller 9 | -0A ISA Compatibility mode controller, supports both channels switched to PCI native mode 10 | -0F PCI native mode controller, supports both channels switched to ISA compatibility mode 11 | -80 ISA Compatibility mode-only controller, supports bus mastering 12 | -85 PCI native mode-only controller, supports bus mastering 13 | -8A ISA Compatibility mode controller, supports both channels switched to PCI native mode, supports bus mastering 14 | -8F PCI native mode controller, supports both channels switched to ISA compatibility mode, supports bus mastering 15 | .02 Floppy Disk 16 | .03 IPI Bus 17 | .04 RAID 18 | .05 ATA 19 | -20 Single DMA 20 | -30 Chained DMA 21 | .06 Serial ATA 22 | -00 Vendor Specific Interface 23 | -01 AHCI 1.0 24 | -02 Serial Storage Bus 25 | .07 Serial Attached SCSI 26 | -00 SAS 27 | -01 Serial Storage Bus 28 | .08 Non-Volatile Memory Controller 29 | -01 NVMHCI 30 | -02 NVM Express 31 | .80 Other 32 | +02 Network Controller 33 | .00 Ethernet 34 | .01 Token Ring 35 | .02 FDDI 36 | .03 ATM 37 | .04 ISDNr 38 | .05 WorldFip 39 | .06 PICMG 2.14 Multi Computing 40 | .07 Infiniband 41 | .08 Fabric 42 | .80 Other 43 | +03 Display Controller 44 | .00 VGA Compatible 45 | -00 VGA 46 | -01 8514-Compatible 47 | .01 XGA 48 | .02 3D(Not VGA-Compatible) 49 | .80 Other 50 | +04 Multimedia Controller 51 | .00 Video 52 | .01 Audior 53 | .02 Computer Telephony Device 54 | .03 Audio Device 55 | .80 Other 56 | +05 Memory Controller 57 | .00 RAM 58 | .01 Flash 59 | .80 Other 60 | +06 Bridge Device 61 | .00 Host Bridge 62 | .01 ISA Bridge 63 | .02 EISA Bridge 64 | .03 MCA Bridge 65 | .04 PCI-to-PCI Bridge 66 | -00 Normal Decode 67 | -01 Subtractive Decode 68 | .05 PCMCIA Bridge 69 | .06 NuBus Bridge 70 | .07 CardBus Bridge 71 | .08 RACEway Bridge 72 | -00 Transparent Mode 73 | -01 Endpoint Mode 74 | .09 PCI-to-PCI Bridge 75 | -40 Semi-Transparent, Primary bus towards host CPU 76 | -80 Semi-Transparent, Secondary bus towards host CPU 77 | -0A InfiniBand-to-PCI Host Bridge 78 | -80 Other 79 | +07 Simple Communication Controller 80 | .00 Serial 81 | -00 8250-Compatible (Generic XT) 82 | -01 16450-Compatible 83 | -02 16550-Compatible 84 | -03 16650-Compatible 85 | -04 16750-Compatible 86 | -05 16850-Compatible 87 | -06 16950-Compatible 88 | .01 Parallel 89 | -00 Standard Port 90 | -01 Bi-Directional Port 91 | -02 ECP 1.X Compliant Port 92 | -03 IEEE 1284 Controller 93 | -FE IEEE 1284 Target Device 94 | .02 Multiport Serial 95 | .03 Modem 96 | -00 Generic 97 | -01 Hayes 16450-Compatible Interface 98 | -02 Hayes 16550-Compatible Interface 99 | -03 Hayes 16650-Compatible Interface 100 | -04 Hayes 16750-Compatible Interface 101 | .04 IEEE 488.1/2 (GPIB) Controller 102 | .05 Smart Card 103 | .80 Other 104 | +08 Base System Peripheral 105 | .00 PIC 106 | -00 Generic 8259-Compatible 107 | -01 ISA-Compatible 108 | -02 EISA-Compatible 109 | -10 I/O APIC Interrupt Controller 110 | -20 I/O(x) APIC Interrupt Controller 111 | .01 DMA Controller 112 | -00 Generic 8237-Compatible 113 | -01 ISA-Compatible 114 | -02 EISA-Compatible 115 | .02 Timer 116 | -00 Generic 8254-Compatible 117 | -01 ISA-Compatible 118 | -02 EISA-Compatible 119 | -03 HPET 120 | .03 RTC Controller 121 | -00 Generic RTC 122 | -01 ISA-Compatible 123 | .04 PCI Hot-Plug Controller 124 | .05 SD Host controller 125 | .06 IOMMU 126 | .80 Other 127 | +09 Input Device Controller 128 | .00 Keyboard 129 | .01 Digitizer Pen 130 | .02 Mouse 131 | .03 Scanner 132 | .04 Gameport 133 | -00 Generic 134 | -10 Extended 135 | .80 Other 136 | +0A Docking Station 137 | .00 Generic 138 | .80 Other 139 | +0B Processor 140 | .00 386 141 | .01 486 142 | .02 Pentium 143 | .03 Pentium Pro 144 | .10 Alpha 145 | .20 PowerPC 146 | .30 MIPS 147 | .40 Co-Processor 148 | .80 Other 149 | +0C Serial Bus Controller 150 | .00 FireWire (IEEE 1394) 151 | -00 Generic 152 | -10 OHCI 153 | .01 ACCESS Bus 154 | .02 SSA 155 | .03 USB 156 | -00 UHCI 157 | -10 OHCI 158 | -20 EHCI (USB2) 159 | -30 XHCI (USB3) 160 | -80 Unspecified 161 | -FE USB Device (Not a host controller) 162 | .04 Fibre Channel 163 | .05 SMBus 164 | .06 InfiniBand 165 | .07 IPMI Interface 166 | -00 SMIC 167 | -01 Keyboard Controller Style 168 | -02 Block Transfer 169 | .08 SERCOS Interface (IEC 61491) 170 | .09 CANbus 171 | .80 Other 172 | +0D Wireless Controller 173 | .00 iRDA Compatible 174 | .01 Consumer IR 175 | .10 RF 176 | .11 Bluetooth 177 | .12 Broadband 178 | .20 Ethernet(802.1a) 179 | .21 Ethernet(802.1b) 180 | .80 Other 181 | +0E Intelligent Controller 182 | .00 I20 183 | +0F Satellite Communication Controller 184 | .01 TV 185 | .02 Audio 186 | .03 Voice 187 | .04 Data 188 | +10 Encryption Controller 189 | .00 Network and Computing Encrpytion/Decryption 190 | .10 Entertainment Encryption/Decryption 191 | .80 Other Encryption/Decryption 192 | +11 Signal Processing Controller 193 | .00 DPIO Modules 194 | .01 Performance Counters 195 | .10 Communication Synchronizer 196 | .20 Signal Processing Management 197 | .80 Other 198 | +12 Processing Accelerator 199 | +13 Non-Essential Instrumentation 200 | +40 Co-Processor 201 | +FF Unassigned Class (Vendor specific) 202 | -------------------------------------------------------------------------------- /BIN/LSPCI.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/LSPCI.FE -------------------------------------------------------------------------------- /BIN/LSUSB.CFG: -------------------------------------------------------------------------------- 1 | +00 (Defined at Interface level) 2 | +01 Audio 3 | .01 Control Device 4 | .02 Streaming 5 | .03 MIDI Streaming 6 | +02 Communications 7 | .01 Direct Line 8 | .02 Abstract (modem) 9 | -00 None 10 | -01 AT-commands (v.25ter) 11 | -02 AT-commands (PCCA101) 12 | -03 AT-commands (PCCA101 + wakeup) 13 | -04 AT-commands (GSM) 14 | -05 AT-commands (3G) 15 | -06 AT-commands (CDMA) 16 | -fe Defined by command set descriptor 17 | -ff Vendor Specific (MSFT RNDIS?) 18 | .03 Telephone 19 | .04 Multi-Channel 20 | .05 CAPI Control 21 | .06 Ethernet Networking 22 | .07 ATM Networking 23 | .08 Wireless Handset Control 24 | .09 Device Management 25 | .0a Mobile Direct Line 26 | .0b OBEX 27 | .0c Ethernet Emulation 28 | -07 Ethernet Emulation (EEM) 29 | +03 Human Interface Device 30 | .00 No Subclass 31 | -00 None 32 | -01 Keyboard 33 | -02 Mouse 34 | .01 Boot Interface Subclass 35 | -00 None 36 | -01 Keyboard 37 | -02 Mouse 38 | +05 Physical Interface Device 39 | +06 Imaging 40 | .01 Still Image Capture 41 | -01 Picture Transfer Protocol (PIMA 15470) 42 | +07 Printer 43 | .01 Printer 44 | -00 Reserved/Undefined 45 | -01 Unidirectional 46 | -02 Bidirectional 47 | -03 IEEE 1284.4 compatible bidirectional 48 | -ff Vendor Specific 49 | +08 Mass Storage 50 | .01 RBC (typically Flash) 51 | -00 Control/Bulk/Interrupt 52 | -01 Control/Bulk 53 | -50 Bulk-Only 54 | .02 SFF-8020i, MMC-2 (ATAPI) 55 | .03 QIC-157 56 | .04 Floppy (UFI) 57 | -00 Control/Bulk/Interrupt 58 | -01 Control/Bulk 59 | -50 Bulk-Only 60 | .05 SFF-8070i 61 | .06 SCSI 62 | -00 Control/Bulk/Interrupt 63 | -01 Control/Bulk 64 | -50 Bulk-Only 65 | +09 Hub 66 | .00 Unused 67 | -00 Full speed (or root) hub 68 | -01 Single TT 69 | -02 TT per port 70 | +0a CDC Data 71 | .00 Unused 72 | -30 I.430 ISDN BRI 73 | -31 HDLC 74 | -32 Transparent 75 | -50 Q.921M 76 | -51 Q.921 77 | -52 Q.921TM 78 | -90 V.42bis 79 | -91 Q.932 EuroISDN 80 | -92 V.120 V.24 rate ISDN 81 | -93 CAPI 2.0 82 | -fd Host Based Driver 83 | -fe CDC PUF 84 | -ff Vendor specific 85 | +0b Chip/SmartCard 86 | +0d Content Security 87 | +0e Video 88 | .00 Undefined 89 | .01 Video Control 90 | .02 Video Streaming 91 | .03 Video Interface Collection 92 | +58 Xbox 93 | .42 Controller 94 | +dc Diagnostic 95 | .01 Reprogrammable Diagnostics 96 | -01 USB2 Compliance 97 | +e0 Wireless 98 | .01 Radio Frequency 99 | -01 Bluetooth 100 | -02 Ultra WideBand Radio Control 101 | -03 RNDIS 102 | .02 Wireless USB Wire Adapter 103 | -01 Host Wire Adapter Control/Data Streaming 104 | -02 Device Wire Adapter Control/Data Streaming 105 | -03 Device Wire Adapter Isochronous Streaming 106 | +ef Miscellaneous Device 107 | .01 ? 108 | -01 Microsoft ActiveSync 109 | -02 Palm Sync 110 | .02 ? 111 | -01 Interface Association 112 | -02 Wire Adapter Multifunction Peripheral 113 | .03 ? 114 | -01 Cable Based Association 115 | .05 USB3 Vision 116 | +fe Application Specific Interface 117 | .01 Device Firmware Update 118 | .02 IRDA Bridge 119 | .03 Test and Measurement 120 | -01 TMC 121 | -02 USB488 122 | +ff Vendor Specific Class -------------------------------------------------------------------------------- /BIN/LSUSB.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/LSUSB.FE -------------------------------------------------------------------------------- /BIN/MAN.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/MAN.FE -------------------------------------------------------------------------------- /BIN/MAN.ZIP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/MAN.ZIP -------------------------------------------------------------------------------- /BIN/MBR_BIOS.MBR: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/MBR_BIOS.MBR -------------------------------------------------------------------------------- /BIN/PARTD.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/PARTD.FE -------------------------------------------------------------------------------- /BIN/PILOTE.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/PILOTE.FE -------------------------------------------------------------------------------- /BIN/PILOTEPCI.CFG: -------------------------------------------------------------------------------- 1 | base de données pour le démarrage de périphérique pci 2 | vendor id,device id,commande du pilote a executer avec l'adresse du périphérique a ajouter 3 | 10B7 9000 3C90X 4 | 10B7 9001 3C90X 5 | 10B7 9004 3C90X 6 | 10B7 9005 3C90X 7 | 10B7 9006 3C90X 8 | 10B7 900A 3C90X 9 | 10B7 9050 3C90X 10 | 10B7 9051 3C90X 11 | 10B7 9054 3C90X 12 | 10B7 9055 3C90X 13 | 10B7 9056 3C90X 14 | 10B7 9058 3C90X 15 | 10B7 905A 3C90X 16 | 10B7 9200 3C90X 17 | 10B7 9805 3C90X 18 | 10EC 8139 RTL8139 19 | 8086 1019 I8254X 20 | 8086 1004 I8254X 21 | 8086 100E I8254X 22 | 8086 100F I8254X 23 | 8086 1010 I8254X 24 | 8086 1011 I8254X 25 | 8086 1012 I8254X 26 | 8086 1013 I8254X 27 | 8086 1015 I8254X 28 | 8086 1016 I8254X 29 | 8086 1017 I8254X 30 | 8086 1018 I8254X 31 | 8086 101A I8254X 32 | 8086 101D I8254X 33 | 8086 1026 I8254X 34 | 8086 1027 I8254X 35 | 8086 1028 I8254X 36 | 8086 1076 I8254X 37 | 8086 1077 I8254X 38 | 8086 1078 I8254X 39 | 8086 1079 I8254X 40 | 8086 107A I8254X 41 | 8086 107B I8254X 42 | 8086 1107 I8254X 43 | 8086 1112 I8254X 44 | -------------------------------------------------------------------------------- /BIN/PING.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/PING.FE -------------------------------------------------------------------------------- /BIN/RELAIS.MBR: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/RELAIS.MBR -------------------------------------------------------------------------------- /BIN/RTL8139.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/RTL8139.FE -------------------------------------------------------------------------------- /BIN/SCANIP.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SCANIP.FE -------------------------------------------------------------------------------- /BIN/SDHCP.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SDHCP.FE -------------------------------------------------------------------------------- /BIN/SDNS.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SDNS.FE -------------------------------------------------------------------------------- /BIN/SEAC.BAZ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SEAC.BAZ -------------------------------------------------------------------------------- /BIN/SEAC.IMB: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SEAC.IMB -------------------------------------------------------------------------------- /BIN/SEAC.IMG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SEAC.IMG -------------------------------------------------------------------------------- /BIN/SEAC.ISO: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SEAC.ISO -------------------------------------------------------------------------------- /BIN/SEAC.PXE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SEAC.PXE -------------------------------------------------------------------------------- /BIN/SHTTP.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SHTTP.FE -------------------------------------------------------------------------------- /BIN/SNIF.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/SNIF.FE -------------------------------------------------------------------------------- /BIN/STFTP.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/STFTP.FE -------------------------------------------------------------------------------- /BIN/STLNT.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/STLNT.FE -------------------------------------------------------------------------------- /BIN/TERM.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/TERM.FE -------------------------------------------------------------------------------- /BIN/TRACA.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/TRACA.FE -------------------------------------------------------------------------------- /BIN/TRACE.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/TRACE.FE -------------------------------------------------------------------------------- /BIN/USBCLASS.TXT: -------------------------------------------------------------------------------- 1 | +00 (Defined at Interface level) 2 | +01 Audio 3 | .01 Control Device 4 | .02 Streaming 5 | .03 MIDI Streaming 6 | +02 Communications 7 | .01 Direct Line 8 | .02 Abstract (modem) 9 | -00 None 10 | -01 AT-commands (v.25ter) 11 | -02 AT-commands (PCCA101) 12 | -03 AT-commands (PCCA101 + wakeup) 13 | -04 AT-commands (GSM) 14 | -05 AT-commands (3G) 15 | -06 AT-commands (CDMA) 16 | -fe Defined by command set descriptor 17 | -ff Vendor Specific (MSFT RNDIS?) 18 | .03 Telephone 19 | .04 Multi-Channel 20 | .05 CAPI Control 21 | .06 Ethernet Networking 22 | .07 ATM Networking 23 | .08 Wireless Handset Control 24 | .09 Device Management 25 | .0a Mobile Direct Line 26 | .0b OBEX 27 | .0c Ethernet Emulation 28 | -07 Ethernet Emulation (EEM) 29 | +03 Human Interface Device 30 | .00 No Subclass 31 | -00 None 32 | -01 Keyboard 33 | -02 Mouse 34 | .01 Boot Interface Subclass 35 | -00 None 36 | -01 Keyboard 37 | -02 Mouse 38 | +05 Physical Interface Device 39 | +06 Imaging 40 | .01 Still Image Capture 41 | -01 Picture Transfer Protocol (PIMA 15470) 42 | +07 Printer 43 | .01 Printer 44 | -00 Reserved/Undefined 45 | -01 Unidirectional 46 | -02 Bidirectional 47 | -03 IEEE 1284.4 compatible bidirectional 48 | -ff Vendor Specific 49 | +08 Mass Storage 50 | .01 RBC (typically Flash) 51 | -00 Control/Bulk/Interrupt 52 | -01 Control/Bulk 53 | -50 Bulk-Only 54 | .02 SFF-8020i, MMC-2 (ATAPI) 55 | .03 QIC-157 56 | .04 Floppy (UFI) 57 | -00 Control/Bulk/Interrupt 58 | -01 Control/Bulk 59 | -50 Bulk-Only 60 | .05 SFF-8070i 61 | .06 SCSI 62 | -00 Control/Bulk/Interrupt 63 | -01 Control/Bulk 64 | -50 Bulk-Only 65 | +09 Hub 66 | .00 Unused 67 | -00 Full speed (or root) hub 68 | -01 Single TT 69 | -02 TT per port 70 | +0a CDC Data 71 | .00 Unused 72 | -30 I.430 ISDN BRI 73 | -31 HDLC 74 | -32 Transparent 75 | -50 Q.921M 76 | -51 Q.921 77 | -52 Q.921TM 78 | -90 V.42bis 79 | -91 Q.932 EuroISDN 80 | -92 V.120 V.24 rate ISDN 81 | -93 CAPI 2.0 82 | -fd Host Based Driver 83 | -fe CDC PUF 84 | -ff Vendor specific 85 | +0b Chip/SmartCard 86 | +0d Content Security 87 | +0e Video 88 | .00 Undefined 89 | .01 Video Control 90 | .02 Video Streaming 91 | .03 Video Interface Collection 92 | +58 Xbox 93 | .42 Controller 94 | +dc Diagnostic 95 | .01 Reprogrammable Diagnostics 96 | -01 USB2 Compliance 97 | +e0 Wireless 98 | .01 Radio Frequency 99 | -01 Bluetooth 100 | -02 Ultra WideBand Radio Control 101 | -03 RNDIS 102 | .02 Wireless USB Wire Adapter 103 | -01 Host Wire Adapter Control/Data Streaming 104 | -02 Device Wire Adapter Control/Data Streaming 105 | -03 Device Wire Adapter Isochronous Streaming 106 | +ef Miscellaneous Device 107 | .01 ? 108 | -01 Microsoft ActiveSync 109 | -02 Palm Sync 110 | .02 ? 111 | -01 Interface Association 112 | -02 Wire Adapter Multifunction Peripheral 113 | .03 ? 114 | -01 Cable Based Association 115 | .05 USB3 Vision 116 | +fe Application Specific Interface 117 | .01 Device Firmware Update 118 | .02 IRDA Bridge 119 | .03 Test and Measurement 120 | -01 TMC 121 | -02 USB488 122 | +ff Vendor Specific Class -------------------------------------------------------------------------------- /BIN/UTF8.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/UTF8.FE -------------------------------------------------------------------------------- /BIN/VETHER.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/VETHER.FE -------------------------------------------------------------------------------- /BIN/VOIR.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/VOIR.FE -------------------------------------------------------------------------------- /BIN/WHOIS.FE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/WHOIS.FE -------------------------------------------------------------------------------- /BIN/be-azs.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/be-azs.def -------------------------------------------------------------------------------- /BIN/bepo.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/bepo.def -------------------------------------------------------------------------------- /BIN/bug1.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/bug1.def -------------------------------------------------------------------------------- /BIN/cfg.sh: -------------------------------------------------------------------------------- 1 | af 2 | af version équipé uniquement des application de dévellopement 3 | af essayez "fasm hello.asm HI.FE" 4 | -------------------------------------------------------------------------------- /BIN/colemak.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/colemak.def -------------------------------------------------------------------------------- /BIN/dvorak.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/dvorak.def -------------------------------------------------------------------------------- /BIN/en-qwi.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/en-qwi.def -------------------------------------------------------------------------------- /BIN/en-txt.def: -------------------------------------------------------------------------------- 1 | DEFLQ eng €‚ƒSEAC V0.22 May 2024 development version „…†‡Systeme d'Exploitation Aproximativement Complet unknown command: directory not found: Error while executing the command " Task not found: Unable to go further up the file tree unrecognized file format Video mode not supported Locked video mode change Divide ErrorDebug ExceptionNonmaskable external interruptBreakpointOverflowBOUND Range ExceededInvalid Opcode (Undefined Opcode)No Math CoprocessorDouble faultCoProcessor Segment OverrunInvalid TSSSegment Not PresentStack faultGeneral protection faultPage FaultException # 15x87 FPU Floating-Point ErrorAlignment CheckMachine CheckSIMD Floating-Point ExceptionVirtualization Exceptionexception # 21exception # 22exception # 23exception # 24exception # 25exception # 26exception # 27exception # 28exception # 29exception # 30exception # 31 Process # caused the exception: after step the main task had to be restarted the faulty task had to be stopped impossible to reserve memorydetection of an error in memory, erasure of corrupted memory List of disks: #dm Ram Disk Liste des partitions et disques amovibles detecté: Unknown partition type( damaged partition of partition type FAT12 of partition type FAT16 of partition type FAT32 of partition type exFAT of partition type Ext2 of partition type Ext3 of partition type TOD of partition type NTFS of partition type SFS of #di Floppy Drive List of files in the folder: List of Tasks running: memory organization: free memory: memory used by system: memory used by task: memory used by communication between tasks: total memory: bytes List of video modes supported: text bits banked memory bits linear memory file has been loaded for the language definition file has been loaded for the keyboard definition file has been loaded for the graphic character definition forced stop of task modification of the execution time of the task the system folder has been defined has been copied to has been removed file has been renamed to the error during HID device initialization USB device "" has been connected to address error when connecting a new USB device during phase disconnection of USB deviceerror while opening input fileerror while opening output fileerror while opening input foldererror while opening output foldererror while creating input fileerror while creating output fileerror while creating input foldererror while creating output foldererror while reading from input fileerror while reading from output fileerror while reading from input foldererror while reading from output foldererror while writing to input fileerror while writing to output fileerror while writing to input foldererror while writing to output folderexecution sans problemeparameter error read error drive / disk / file not found file system error writing error no disk response disk busy file already open forbidden reading forbidden opening not enougth memory the open file is a folder error of unknown origin unrecognized number of colors screen missing unauthorized action empty buffer zone full buffer zone controller does not respond controller absent cannot delete folder because it is not empty forbidden character in file name file creation not possible file name already used no answer structure error data available data not available memory area unavailable memory area outside physical memory UHCI controller error OHCI controller error EHCI controller error XHCI controller error Stack overflow or underflow Invalid arithmetic operation Invalid operation Denormalized operand Divide-by-zero Numeric overflow Numeric underflow Inexact result (precision) -------------------------------------------------------------------------------- /BIN/fond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/fond.png -------------------------------------------------------------------------------- /BIN/fr-aza.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/fr-aza.def -------------------------------------------------------------------------------- /BIN/fr-txt.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/fr-txt.def -------------------------------------------------------------------------------- /BIN/icones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/icones.png -------------------------------------------------------------------------------- /BIN/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/BIN/logo.png -------------------------------------------------------------------------------- /C/FICHIER.c: -------------------------------------------------------------------------------- 1 | //créer un fichier avec le nom en argument 2 | //puis écrit un ptit truc dedans 3 | 4 | #include "includes/base_seac.h" 5 | 6 | 7 | char nom_fichier[256]; 8 | 9 | int main(void){ 10 | arg_num(0,nom_fichier); 11 | int numero = create_file(nom_fichier); 12 | write_file(numero,0,25,"ecriture dans fichier ok!"); 13 | printJ("ecriture dans fichier ok!"); 14 | } 15 | -------------------------------------------------------------------------------- /C/HELLO.c: -------------------------------------------------------------------------------- 1 | //exemple d'ecriture dans le journal avec en plus un petit peu de couleur 2 | 3 | #include "base_seac.h" 4 | 5 | char temporaire[2]; 6 | 7 | int main(void){ 8 | printJ("Hello, World!\r"); 9 | 10 | for (char i = 0x10;i < 0x20;i++){ 11 | temporaire[0]=i; 12 | printJ(temporaire); 13 | printJ("pouic!\r"); 14 | } 15 | temporaire[0]=0x17; 16 | printJ(temporaire); 17 | } 18 | -------------------------------------------------------------------------------- /C/TEMPO.c: -------------------------------------------------------------------------------- 1 | //exemple d'utilisation de la fonction de temporisation 2 | 3 | #include "includes/base_seac.h" 4 | 5 | int main(void){ 6 | printJ("attend 1 seconde\r"); 7 | delay(1000); 8 | printJ("attend 10 seconde\r"); 9 | delay(10000); 10 | printJ("finis!\r"); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /C/co.sh: -------------------------------------------------------------------------------- 1 | #efface le dernier fichier 2 | rm $1.FE 3 | 4 | # option de GCC utillisé ici 5 | #-std=gnu90 //norme du language (au choix) 6 | #-march=i386 //famille du processeur cible 7 | #-m32 //processeur en 32bits (indispensable) 8 | #-nostdlib //pas besoin de stdlib (indispensable) 9 | #-e _start //spécfie le point d'entrée (indispensable) 10 | #-o $1.FE //nom du fichier de sortie(doit être en majuscule avec l'extension FE) 11 | #-s //enlève les table de symbole et de relocation (gagne de l'espace) 12 | #-fno-asynchronous-unwind-tables //enlève (gagne de l'espace) 13 | #-Wl //option du linkage séparé par des virgules 14 | #-c //pas de linkage (inutilisé ici) 15 | 16 | # option de LD utillisé ici 17 | #--nmagic //désactive l'alignement par page (gagne de l'espace) 18 | #--strip-all //ne met pas les infos pour le débuggeure (gagne de l'espace) 19 | #--script=seac.ld //script de linkage a employer (indispensable) 20 | 21 | 22 | #compilation et linkage 23 | gcc -std=gnu90 -m32 -march=i386 -nostdlib -e _start -fno-asynchronous-unwind-tables -s -o $1.FE -Wl,--nmagic,--strip-all,--script=includes/seac.ld $1.C includes/base_seac.s 24 | 25 | #affiche des infos sur le fichier compilé 26 | #readelf -S -l $1.FE 27 | 28 | #envoyer le résultat de la compilation a un pc qui a démarré SEAC 29 | #tftp -4 192.168.1.200 -m binary -c put $1.FE 30 | 31 | -------------------------------------------------------------------------------- /C/includes/base_seac.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/C/includes/base_seac.h -------------------------------------------------------------------------------- /C/includes/base_seac.s: -------------------------------------------------------------------------------- 1 | .intel_syntax noprefix 2 | 3 | 4 | .section .data 5 | 6 | 7 | .section .text 8 | 9 | 10 | .global _start 11 | 12 | _start: 13 | call main 14 | int 0x60 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /C/includes/seac.ld: -------------------------------------------------------------------------------- 1 | OUTPUT_FORMAT(elf32-i386) 2 | SECTIONS 3 | { 4 | . = 0x0; 5 | .text : ALIGN(16) 6 | { 7 | *(.text); 8 | } 9 | 10 | .data : 11 | 12 | { 13 | *(.data); 14 | *(.rodata); 15 | *(.bss); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /C/includes/seac_com.h: -------------------------------------------------------------------------------- 1 | //**************************************************************** 2 | //constantes 3 | 4 | 5 | 6 | 7 | //**************************************************************** 8 | //fonctions 9 | 10 | //ouvre un canal 11 | unsigned long open_canal(unsigned char port,unsigned long taille){ 12 | unsigned long erreur = 0; 13 | asm volatile("mov $0x09, %%al\n" 14 | "int $0x66\n" 15 | : "=eax"(erreur) 16 | : "ah"(port),"ecx"(taille) 17 | : ); 18 | return erreur; 19 | } 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /C/includes/seac_fich.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/C/includes/seac_fich.h -------------------------------------------------------------------------------- /C/includes/seac_gen.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/C/includes/seac_gen.h -------------------------------------------------------------------------------- /C/includes/seac_port.h: -------------------------------------------------------------------------------- 1 | //**************************************************************** 2 | //constantes 3 | 4 | 5 | 6 | 7 | //**************************************************************** 8 | //fonctions port 9 | 10 | //envoi un octet sur le port 11 | unsigned long send1_port(unsigned char port,unsigned char data){ 12 | unsigned long erreur = 0; 13 | asm volatile("mov $0x00, %%al\n" 14 | "int $0x66\n" 15 | : "=eax"(erreur) 16 | : "ah"(port),"cl"(data) 17 | : ); 18 | return erreur; 19 | } 20 | 21 | 22 | unsigned long sendM_port(unsigned char port,unsigned char *data,unsigned long count){ 23 | unsigned long erreur = 0; 24 | asm volatile("mov $0x01, %%al\n" 25 | "int $0x66\n" 26 | : "=eax"(erreur) 27 | : "ah"(port),"eS"(data),"ecx"(count) 28 | : ); 29 | return erreur; 30 | } 31 | 32 | unsigned long recv1_port(unsigned char port,unsigned char *data){ 33 | unsigned long erreur = 0; 34 | asm volatile("mov $0x02, %%al\n" 35 | "int $0x66\n" 36 | "mov %%cl,(%0)\n" 37 | : "=eax"(erreur) 38 | : "ah"(port),"r"(data) 39 | : ); 40 | return erreur; 41 | } 42 | 43 | 44 | unsigned long recvM_port(unsigned char port,char *data,unsigned long count){ 45 | unsigned long erreur = 0; 46 | asm volatile("mov $0x03, %%al\n" 47 | "int $0x66\n" 48 | : "=eax"(erreur) 49 | : "ah"(port),"eD"(data),"ecx"(count) 50 | : ); 51 | return erreur; 52 | } 53 | 54 | unsigned long recvC_port(unsigned char port,unsigned long *control){ 55 | unsigned long erreur = 0; 56 | asm volatile("mov $0x04, %%al\n" 57 | "int $0x66\n" 58 | "mov %%ecx,(%0)\n" 59 | : "=eax"(erreur) 60 | : "ah"(port),"r"(control) 61 | : ); 62 | return erreur; 63 | } 64 | 65 | unsigned long sendC_port(unsigned char port,unsigned long control){ 66 | long erreur = 0; 67 | asm volatile("mov $0x05, %%al\n" 68 | "int $0x66\n" 69 | : "=eax"(erreur) 70 | : "ah"(port),"ecx"(control) 71 | : ); 72 | return erreur; 73 | } 74 | 75 | 76 | unsigned long conf_port(unsigned char port,char attributs,unsigned long vitesse){ 77 | unsigned long erreur = 0; 78 | asm volatile("mov $0x06, %%al\n" 79 | "int $0x66\n" 80 | : "=eax"(erreur) 81 | : "ah"(port),"dl"(attributs),"ecx"(vitesse) 82 | : ); 83 | return erreur; 84 | } 85 | 86 | 87 | unsigned long res_port(unsigned char port){ 88 | unsigned long erreur = 0; 89 | asm volatile("mov $0x07, %%al\n" 90 | "int $0x66\n" 91 | : "=eax"(erreur) 92 | : "ah"(port) 93 | : ); 94 | return erreur; 95 | } 96 | 97 | 98 | unsigned long lib_port(unsigned char port){ 99 | unsigned long erreur = 0; 100 | asm volatile("mov $0x08, %%al\n" 101 | "int $0x66\n" 102 | : "=eax"(erreur) 103 | : "ah"(port) 104 | : ); 105 | return erreur; 106 | } 107 | 108 | unsigned long ztr_port(unsigned char port,unsigned long taille){ 109 | unsigned long erreur = 0; 110 | asm volatile("mov $0x09, %%al\n" 111 | "int $0x66\n" 112 | : "=eax"(erreur) 113 | : "ah"(port),"ecx"(taille) 114 | : ); 115 | return erreur; 116 | } 117 | 118 | 119 | 120 | 121 | 122 | 123 | -------------------------------------------------------------------------------- /C/includes/seac_sec.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/C/includes/seac_sec.h -------------------------------------------------------------------------------- /C/includes/seac_vid.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/C/includes/seac_vid.h -------------------------------------------------------------------------------- /IMGWIKI/clavier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/IMGWIKI/clavier.png -------------------------------------------------------------------------------- /IMGWIKI/exemple1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/IMGWIKI/exemple1.png -------------------------------------------------------------------------------- /IMGWIKI/rcrl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/IMGWIKI/rcrl.png -------------------------------------------------------------------------------- /IMGWIKI/rorl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/IMGWIKI/rorl.png -------------------------------------------------------------------------------- /IMGWIKI/sar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/IMGWIKI/sar.png -------------------------------------------------------------------------------- /IMGWIKI/shal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/IMGWIKI/shal.png -------------------------------------------------------------------------------- /IMGWIKI/shr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/IMGWIKI/shr.png -------------------------------------------------------------------------------- /IMGWIKI/tecop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/IMGWIKI/tecop.png -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | @bash compilation.sh 3 | 4 | maj: ids fasm 5 | 6 | ids: 7 | curl -k -o BIN/pci.ids "https://pci-ids.ucw.cz/v2.2/pci.ids" 8 | curl -o BIN/usb.ids "http://www.linux-usb.org/usb.ids" 9 | 10 | fasm: 11 | curl -k -o fasm.tgz "https://flatassembler.net/fasm-1.73.32.tgz" 12 | tar -xf fasm.tgz 13 | rm -rf fasm.tgz 14 | chmod 777 ./fasm/fasm 15 | -sudo cp ./fasm/fasm /bin 16 | rm -rf fasm 17 | clean: 18 | rm -rf BIN/*.FE 19 | rm -rf BIN/*.MBR 20 | rm -rf BIN/*.BIN 21 | rm -rf BIN/SEAC.* 22 | 23 | -------------------------------------------------------------------------------- /OUTILS/ajarch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/OUTILS/ajarch -------------------------------------------------------------------------------- /OUTILS/ajarch.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/OUTILS/ajarch.exe -------------------------------------------------------------------------------- /OUTILS/ajarchl.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ;compiler avec la commande "fasm ajarch.asm ajarch.elf" 3 | 4 | 5 | 6 | 7 | 8 | format ELF executable 3 ;executable i386 pour linux 9 | entry _start 10 | 11 | 12 | segment readable executable 13 | 14 | _start: 15 | 16 | mov cl,0 17 | mov edx,nom_fichier 18 | call lire_arg 19 | 20 | 21 | mov cl,1 22 | mov edx,nom_archive 23 | call lire_arg 24 | 25 | ;mov edx,nom_fichier 26 | ;call affmsg 27 | 28 | 29 | ;mov edx,nom_archive 30 | ;call affmsg 31 | 32 | 33 | mov edx,nom_archive ;ouvre l'archive 34 | call ouvre_fichier 35 | cmp eax,0 36 | jne erreur_ouverture_archive 37 | mov [handle_archive],ebx 38 | call taillef 39 | sub ecx,16 40 | mov [taille_archive],ecx 41 | 42 | 43 | mov ebx,[handle_archive] ;lit les 16 derniers octets pour verifier que c'est bien un descripteur final 44 | mov ecx,16 45 | mov edx,[taille_archive] 46 | mov edi,zt_transfert 47 | call lit_fichier 48 | jc erreur_format_archive 49 | mov eax,[zt_transfert] 50 | cmp word[zt_transfert],"DM" 51 | jne erreur_format_archive 52 | cmp byte[zt_transfert+2],"F" 53 | jne erreur_format_archive 54 | 55 | 56 | mov edx,nom_fichier ;ouvre le fichier 57 | call ouvre_fichier 58 | cmp eax,0 59 | jne erreur_ouverture_fichier 60 | mov [handle_fichier],ebx 61 | call taillef 62 | mov [taille_fichier],ecx 63 | add ecx,1AFh 64 | and ecx,0FFFFFFF0h 65 | mov [taille_zone],ecx 66 | 67 | ;retire le nom du dossier du nom du fichier 68 | mov edx,nom_fichier 69 | mov esi,nom_fichier 70 | 71 | boucle_retiredossier: 72 | cmp byte[edx],0 73 | je fin_retiredossier 74 | cmp byte[edx],"/" 75 | jne @f 76 | mov esi,edx 77 | @@: 78 | cmp byte[edx],"\" 79 | jne @f 80 | mov esi,edx 81 | @@: 82 | inc edx 83 | jmp boucle_retiredossier 84 | 85 | fin_retiredossier: 86 | cmp esi,nom_fichier 87 | je @f 88 | inc esi 89 | mov edi,nom_fichier 90 | mov ecx,nom_fichier+400 91 | sub ecx,esi 92 | cld 93 | rep movsb 94 | @@: 95 | 96 | 97 | 98 | mov ebx,[handle_archive] ;ecrit le descripteur du fichier a ajouter 99 | mov ecx,416 100 | mov edx,[taille_archive] 101 | mov esi,descripteur_fichier 102 | call ecr_fichier 103 | jc erreur_ecriture_archive 104 | add dword[taille_archive],416 105 | 106 | 107 | cmp dword[taille_fichier],512 108 | jbe petit_fichier 109 | 110 | ;************************************************************* 111 | boucle_principale: 112 | mov ebx,[handle_fichier] 113 | mov ecx,512 114 | mov edx,[donnee_transf] 115 | mov edi,zt_transfert 116 | call lit_fichier 117 | jc erreur_lecture_fichier 118 | add dword[donnee_transf],512 119 | 120 | mov ebx,[handle_archive] 121 | mov ecx,512 122 | mov edx,[taille_archive] 123 | mov esi,zt_transfert 124 | call ecr_fichier 125 | jc erreur_ecriture_archive 126 | add dword[taille_archive],512 127 | 128 | mov eax,[donnee_transf] 129 | add eax, 512 130 | cmp eax,[taille_fichier] 131 | jb boucle_principale 132 | 133 | 134 | petit_fichier: 135 | mov ecx,[taille_fichier] 136 | sub ecx,[donnee_transf] 137 | mov ebx,[handle_fichier] 138 | mov edx,[donnee_transf] 139 | mov edi,zt_transfert 140 | call lit_fichier 141 | jc erreur_lecture_fichier 142 | 143 | mov ecx,[taille_fichier] 144 | sub ecx,[donnee_transf] 145 | mov ebx,[handle_archive] 146 | mov edx,[taille_archive] 147 | mov esi,zt_transfert 148 | call ecr_fichier 149 | jc erreur_ecriture_archive 150 | 151 | mov ecx,[taille_fichier] 152 | sub ecx,[donnee_transf] 153 | add [taille_archive],ecx 154 | 155 | mov esi,[taille_fichier] 156 | and esi,0Fh 157 | cmp esi,0 158 | jne ok_descripteur 159 | mov esi,10h 160 | ok_descripteur: 161 | mov ecx,32 162 | sub ecx,esi 163 | add esi,descripteur_final 164 | 165 | mov ebx,[handle_archive] ;ecrit le nouveau descripteur final 166 | mov edx,[taille_archive] 167 | call ecr_fichier 168 | jnc fin 169 | 170 | erreur_ecriture_archive: 171 | call coderr 172 | mov edx,msg_erreur_ecriture_archive 173 | call affmsg 174 | jmp fin 175 | 176 | coderr: 177 | mov ecx,eax 178 | mov esi,chaine_temporaire 179 | call conv_nombre 180 | mov edx,chaine_temporaire 181 | call affmsg 182 | ret 183 | 184 | 185 | 186 | erreur_ouverture_archive: 187 | call coderr 188 | mov edx,msg_erreur_ouverture_archive 189 | call affmsg 190 | jmp fin 191 | 192 | erreur_format_archive: 193 | call coderr 194 | mov edx,msg_erreur_format_archive 195 | call affmsg 196 | jmp fin 197 | 198 | erreur_ouverture_fichier: 199 | call coderr 200 | mov edx,msg_erreur_ouverture_fichier 201 | call affmsg 202 | jmp fin 203 | 204 | erreur_lecture_fichier: 205 | call coderr 206 | mov edx,msg_erreur_lecture_fichier 207 | call affmsg 208 | 209 | fin: 210 | mov ebx,[handle_fichier] 211 | call ferme_fichier 212 | 213 | mov ebx,[handle_archive] 214 | call ferme_fichier 215 | 216 | include "nlg_linux.inc" 217 | 218 | 219 | msg_erreur_ecriture_archive: 220 | db "erreur lors de l'ecriture de l'archive",13,10,0 221 | 222 | msg_erreur_ouverture_archive: 223 | db "impossible d'ouvrir l'archive",13,10,0 224 | 225 | msg_erreur_format_archive: 226 | db "erreur dans le format de l'archive",13,10,0 227 | 228 | msg_erreur_ouverture_fichier: 229 | db "impossible d'ouvrir le fichier",13,10,0 230 | 231 | msg_erreur_lecture_fichier: 232 | db "erreur lors de la lecture du fichier",13,10,0 233 | 234 | donnee_transf: 235 | dd 0 236 | 237 | chaine_temporaire: 238 | dd 0,0,0,0,0,0,0,0,0 239 | 240 | descripteur_final: 241 | dd 0,0,0,0 242 | db "DMF",0 243 | dd 0,0,0 244 | 245 | 246 | 247 | nom_archive: ;400 octets 248 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 249 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 250 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 251 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 252 | 253 | taille_archive: 254 | dd 0 255 | handle_archive: 256 | dd 0 257 | 258 | handle_fichier: 259 | dd 0 260 | 261 | descripteur_fichier: 262 | db "DMX",0 263 | taille_zone: 264 | dd 0 265 | taille_fichier: 266 | dd 0 267 | dd 0 ;bourrage 268 | nom_fichier: ;400 octets 269 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 270 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 271 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 272 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 273 | 274 | 275 | zt_transfert: ;512 octets 276 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;128 277 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;128 278 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;128 279 | dd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;128 280 | 281 | 282 | 283 | 284 | 285 | -------------------------------------------------------------------------------- /OUTILS/ajarchw.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/OUTILS/ajarchw.asm -------------------------------------------------------------------------------- /OUTILS/bootnet.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/OUTILS/bootnet.asm -------------------------------------------------------------------------------- /OUTILS/bootnet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/OUTILS/bootnet.exe -------------------------------------------------------------------------------- /OUTILS/nlg_linux.inc: -------------------------------------------------------------------------------- 1 | ;fichier d'include standard pour linux par nlg pour son usage personnel 2 | 3 | ;fin du programme 4 | mov eax,1 5 | xor ebx,ebx 6 | int 80h 7 | 8 | ;*************** 9 | affmsg: ;edx=chaine ascciz a afficher 10 | pushad 11 | mov ecx,edx 12 | mov esi,edx 13 | 14 | pastrouvezero: 15 | lodsb 16 | or al,al 17 | jnz pastrouvezero 18 | 19 | mov edx,esi 20 | sub edx,ecx 21 | mov eax,4 ;ecrire 22 | mov ebx,1 ;dans console 23 | int 80h 24 | popad 25 | ret 26 | 27 | 28 | pushdeci: 29 | push eax 30 | push ecx 31 | push edx 32 | mov dl,"$" 33 | push dx 34 | mov ecx,10 35 | 36 | bpd32: 37 | xor edx,edx 38 | div ecx 39 | add dl,48 40 | push dx 41 | cmp eax,0 42 | jne bpd32 43 | 44 | extract: 45 | pop ax 46 | cmp al,"$" 47 | je finpushdeci 48 | mov [esi],al 49 | inc esi 50 | jmp extract 51 | 52 | finpushdeci: 53 | mov word[esi],0020h 54 | pop edx 55 | pop ecx 56 | pop eax 57 | ret 58 | 59 | ;*************** 60 | lire_arg: ;ecrit l'option numéros cl (commence a zéro) de la commande qui a créer la tache dans ds:edx 61 | pushad 62 | call lire_commande 63 | 64 | mov ah,cl 65 | mov cl,255 66 | mov ebx,commande 67 | boucle_lire_arg_cmd: 68 | cmp byte[ebx],0 69 | jne suite_lire_arg_cmd 70 | cmp byte[ebx+1],0 71 | je suite_lire_arg_cmd 72 | cmp ah,0 73 | je trouve_lire_arg_cmd 74 | dec ah 75 | suite_lire_arg_cmd: 76 | inc ebx 77 | cmp ebx,commande+255 78 | jne boucle_lire_arg_cmd 79 | popad 80 | ret 81 | 82 | trouve_lire_arg_cmd: 83 | inc ebx 84 | mov al,[ebx] 85 | mov [edx],al 86 | inc edx 87 | dec cl 88 | jnz trouve_lire_arg_cmd 89 | 90 | fin_lire_arg_cmd: 91 | popad 92 | ret 93 | 94 | 95 | lire_commande: 96 | pushad 97 | cmp dword[handle_cmd],0 98 | je charge_commande 99 | popad 100 | ret 101 | 102 | charge_commande: 103 | ;récupérer son pid 104 | mov eax,20 105 | int 80h 106 | 107 | ;place le pid dans les chemin de fichier 108 | mov esi,idproc 109 | call pushdeci 110 | mov edi,finadressecommande ;puis place la fin de l'adresse du non de fichier 111 | bcldepfin: 112 | mov al,[edi] 113 | mov [esi],al 114 | inc esi 115 | inc edi 116 | cmp al,0 117 | jne bcldepfin 118 | 119 | ;ouvre son fichier de ligne de commande 120 | mov eax,5 121 | mov ebx,adressecommande 122 | mov ecx,00h ;accès en read only 123 | int 80h 124 | test eax,-1 125 | ;je erreurfich 126 | mov [handle_cmd],eax 127 | 128 | ;lit maximum 256 octet du fichier ligne de commande 129 | mov eax, 3 130 | mov ebx, [handle_cmd] 131 | mov ecx, commande 132 | mov edx, 256 ;taille(maximum) a lire 133 | int 80h 134 | 135 | ;convertit les espaces en caractère nul 136 | ;§§§§§§§§§§§§§§§§§§§§§§ 137 | 138 | popad 139 | ret 140 | 141 | ;*************** 142 | cree_fichier: 143 | ;ds:edx chaine asciiz du nom du fichier 144 | push edx 145 | mov eax,8 146 | mov ebx,edx 147 | mov ecx,01B6h ;accès en read/write 148 | int 80h 149 | pop edx 150 | 151 | 152 | ouvre_fichier: 153 | ;ds:edx chaine asciiz du nom du fichier 154 | ;retour: ebx=numéros du déscripteur de dossier 155 | ;eax erreur 156 | 157 | 158 | mov eax,5 159 | mov ecx,02h ;accès en read/write 160 | mov ebx,edx 161 | mov edx,0 ;? 162 | int 80h 163 | test eax,0FFFF0000h 164 | jnz erreur_ouvre_fichier 165 | mov ebx,eax 166 | xor eax,eax 167 | ret 168 | 169 | erreur_ouvre_fichier: 170 | xor ebx,ebx 171 | mov eax,13 172 | ret 173 | 174 | ;*************** 175 | lit_fichier: 176 | ;ebx=handle 177 | ;edx=adresse dans le fichier 178 | ;ecx=quantité 179 | ;edi=destination 180 | pushad 181 | push ecx 182 | push ebx 183 | 184 | mov eax, 19 185 | mov ecx, edx ;offset dans le fichier 186 | mov edx, 0 ;offset depuis dans le début du fichier 187 | int 80h 188 | 189 | mov eax, 3 190 | pop ebx 191 | mov ecx,edi 192 | pop edx ;taille(maximum) a lire 193 | int 80h 194 | cmp eax,-1 195 | je err_lecr 196 | popad 197 | xor eax,eax 198 | ret 199 | 200 | 201 | ;*************** 202 | ecr_fichier: 203 | ;ebx=handle 204 | ;edx=adresse dans le fichier 205 | ;ecx=quantité 206 | ;esi=source 207 | pushad 208 | push ecx 209 | push ebx 210 | 211 | mov eax, 19 212 | mov ecx,edx ;offset dans le fichier 213 | mov edx, 0 ;offset depuis dans le début du fichier 214 | int 80h 215 | 216 | mov eax,4 217 | pop ebx 218 | mov ecx,esi 219 | pop edx ;taille(maximum) a lire 220 | int 80h 221 | cmp eax,-1 222 | je err_lecr 223 | popad 224 | xor eax,eax 225 | ret 226 | 227 | err_lecr: 228 | popad 229 | mov eax,13 230 | ret 231 | 232 | ;*************** 233 | taillef: 234 | mov eax,19 235 | mov ecx,0 236 | mov edx,2 ;2=depuis la fin 237 | int 80h 238 | mov ecx,eax 239 | ret 240 | 241 | 242 | ;*************** 243 | ferme_fichier: 244 | mov eax,6 245 | int 80h 246 | ret 247 | 248 | ;*************** 249 | conv_nombre: 250 | mov al,"$" 251 | push eax 252 | mov eax,ecx 253 | mov ecx,10 254 | 255 | boucle_conv_nombre1: 256 | xor edx,edx 257 | div ecx 258 | add dl,"0" 259 | push edx 260 | cmp eax,0 261 | jne boucle_conv_nombre1 262 | 263 | boucle_conv_nombre2: 264 | pop eax 265 | cmp al,"$" 266 | je fin_conv_nombre 267 | mov [esi],al 268 | inc esi 269 | jmp boucle_conv_nombre2 270 | 271 | 272 | fin_conv_nombre: 273 | mov byte[esi],0 274 | ret 275 | 276 | 277 | 278 | ;************************************************************************************************ 279 | ;données nécessaire a ces sous fonctions 280 | segment readable writeable 281 | 282 | ;données de fonction de lecture commande 283 | handle_cmd: 284 | dd 0 285 | adressecommande: 286 | db "/proc/" 287 | idproc: 288 | db " " 289 | finadressecommande: 290 | db "/cmdline",0 291 | commande: 292 | times 256 db 0 293 | 294 | 295 | 296 | 297 | -------------------------------------------------------------------------------- /OUTILS/nlg_win.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/OUTILS/nlg_win.inc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SeaC 2 | Systeme d'exploitation (operating system) 3 | 4 | ![](https://raw.githubusercontent.com/N-LG/SEAC/master/IMGWIKI/exemple1.png) 5 | 6 | ### [en]more information in the [wiki](https://github-com.translate.goog/N-LG/SEAC/wiki?_x_tr_sl=fr&_x_tr_tl=en&_x_tr_hl=fr&_x_tr_pto=wapp) automatically translated by Google Translate 7 | channel dedicated to project developments on the discord server of [osdev](https://discord.com/channels/440442961147199490/1091753976443187222) 8 | 9 | ### [fr]voir dans le [wiki](https://github.com/N-LG/SEAC/wiki) pour plus d'info 10 | salon dédié aux evolutions du projet sur le serveur discord de [devse](https://discord.com/channels/746454130448531546/1043677858301759528) 11 | 12 | ## organisation du dépot: 13 | - ***compilation.bat*** scripte batch pour compiler le systeme (windows) 14 | - ***compilation.sh*** scripte batch pour compiler le systeme (Gnu/Linux) 15 | - ***makefile*** options pour make 16 | 17 | - ***/ASM***: contient toutes les sources en assembleur 18 | - ***/BOOT*** bootloader 19 | - ***/NOYAU*** noyau 20 | - ***/DEF*** fichiers de définitions 21 | - ***/PROG*** applications 22 | - 23 | - ***/BIN***: contient tout les binaires précompilé dont Fasm qui n'est pas sur ce dépot 24 | - ****.fe*** fichier executable du systeme 25 | - ****.baz*** code de base du noyau / fichier amorçable réseau 26 | - ****.imb*** fichier multiboot 1 27 | - ****.img*** image de disquette 28 | - ****.mbr*** code pour Master Boot Record 29 | - ****.def*** fichier de définition (clavier, messages, et polices de caractères matriciels) 30 | 31 | - ***/C***: contient toutes les resources pour coder une application en C 32 | 33 | - ***/IMGWIKI***: images pour illustrer cetrains parties du wiki 34 | 35 | - ***/OUTILS***: outils de dévellopement 36 | - ***ajarch*** uttilisé pour créer le noyau (version windows et Gnu/Linux) 37 | - ***bootnet*** permet de booter en PXE (disponible que pour windows hélas) 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /compilation.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/compilation.bat -------------------------------------------------------------------------------- /compilation.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N-LG/SEAC/3a49f6450f2370c47ef50d95a741e191fcccf3ff/compilation.sh --------------------------------------------------------------------------------