Code Memories

Dimanche 29 octobre 2006

Pas si évident que ça de trouver du code Turbo Basic de nos jours...

En fait, je voulais des exemples de gestion des interruptions BIOS pour bricoler un analyseur de D7.

Bon, il y a SIMTELNET dont voici un des mirroirs:

http://www.mirrorservice.org/sites/ftp.simtel.net/pub/simtelnet/msdos/ 

Mais pour du plus brutal, voici les requétes google que j'ai utilisé:

http://www.google.fr/search?hl=fr&q=%22call+interrupt+%26h21%22 
http://www.google.fr/search?hl=fr&q=%22reg+%25ax%22+%22call+interrupt%22 

Elles recherchent donc des chaines typiques de ce langage, ici "CALL INTERRUPT" et gestion des registres.

Le principe de recherches de mots cles/tokens est applicable à d'autres langages.

Je suis méme tombé sur le code source d'un virus en Turbo Basic, la franchement il fallait oser !

Ma seule source d'info est un article de Alain GAYDON sur un protek disk  (1986 ?), qu'hommage lui soit rendu !

On verra ce que donne le codage de cet analyseur, il sera trés pratique pour dumper d'anciennes D7 (éventuellement pourries) pour les utiliser sur un emulos.

Tiens, et hop un écran Locksmith sur Apple, il est pas mal ici, et puis ça motive:

 

LOW TECHNOLOGY, LOW RISK

 

Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Dimanche 12 novembre 2006
Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Lundi 13 novembre 2006

Exemple de programmation du lecteur de disquettes pour commodore 64.

Paru dans la série "l'agent Destructor" de la revue Microdor.

(Utilisation de cbmbasic pour la conversion du source à partir du .prg d'origine.)

10 REM DESTRUCTOR 21

11 REM

12 REM BY OLIVIER PEYOUX

13 REM PUBLISHED IN 1986 IN MICRODOR

14 REM A FRENCH CBM MAGAZINE

15 REM

20 REM CREATE AN ERROR 21 ON A WHOLE

25 REM TRACK !!

30 REM

70 INPUT"ENTER TRACK";T

80 OPEN15,8,15,"U0>M9"

90 INPUT#15,ZZ

100 IF ZZ<>31 THEN PRINT"1541 DRIVE":GOTO 130

110 PRINT"1571 DRIVE IN 1541 MODE"

120 PRINT#15,"U0>M0"

130 FORI=0TO23

140 READD

150 D$=D$+CHR$(D)

160 NEXTI

170 PRINT#15,"M-W"CHR$(0)CHR$(4)CHR$(24)D$

180 PRINT#15,"M-W"CHR$(8)CHR$(0)CHR$(2)CHR$(P)CHR$(0)

190 PRINT#15,"M-W"CHR$(1)CHR$(0)CHR$(1)CHR$(224)

200 Z=Z+1

210 PRINT#15,"M-R"CHR$(1)CHR$(0)

220 GET#15,A$

230 IF A$=""THEN A$=CHR$(0)

240 A=ASC(A$)

250 IF Z=500 GOTO 280

260 IF A>127 THEN 200

270 PRINT"DONE ...":CLOSE15:END

280 PRINT"ERROR !":CLOSE15

290 DATA 32,163,253,169,85,141,1,28,162

300 DATA 255,160,48,32,201,253,32,0,254

310 DATA 169,1,76,105,249,234

Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Lundi 13 novembre 2006

A nouveau du code pour trafiquer les D7 du C64.

Une obscure erreur 22 sur un secteur...

10 REM DESTRUCTOR 22

11 REM

12 REM BY OLIVIER PEYOUX

13 REM PUBLISHED IN 1986 IN MICRODOR

14 REM A FRENCH CBM MAGAZINE

15 REM

20 REM CREATE AN ERROR 22 ON A SECTOR

30 REM

70 INPUT"ENTER TRACK,SECTOR";T,S

90 OPEN15,8,15,"U0>M9"

100 INPUT#15,ZZ

110 IFZZ<>31THENPRINT"1541 DRIVE":GOTO140

120 PRINT"1571 DRIVE IN 1541 MODE"

130 PRINT#15,"U0>M0"

140 PRINT#15,"M-W"CHR$(8)CHR$(0)CHR$(2)CHR$(T)CHR$(S)

150 PRINT#15,"M-W"CHR$(1)CHR$(0)CHR$(1)CHR$(128)

160 PRINT#15,"M-W"CHR$(71)CHR$(0)CHR$(1)CHR$(6)

170 PRINT#15,"M-W"CHR$(8)CHR$(0)CHR$(2)CHR$(T)CHR$(S)

180 PRINT#15,"M-W"CHR$(1)CHR$(0)CHR$(1)CHR$(144)

190 PRINT#15,"M-W"CHR$(71)CHR$(0)CHR$(1)CHR$(7)

200 CLOSE15

 

Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Samedi 18 novembre 2006

Des requétes pour dénicher des sources en Basic sur le Net.

Beaucoup de QBasic.

D'abord, directement les fichiers .bas (souvent orientés bidouille):

quickbasic filetype:bas
inregs outregs filetype:bas
peek poke filetype:bas
ax bx cx filetype:bas
sector (track|cylinder) filetype:bas

Ensuite, des pages ou on cause interruptions et bios:

varptr "def seg"
varptr "def seg" "call interrupt"
"call interrupt" varptr "def seg" ES BX
"call interrupt" varptr "def seg" ES BX &h13
"$INCLUDE: 'qb.bi'" "call interrupt"
"call interrupt" varptr "def seg" sector track
varseg varptr
varseg varptr "call interrupt" disk
varseg varptr turbobasic

Pour finir, des répertoires, comme ceux de mirroirs Ftp:

inurl:"/pub/msdos/" qbasic
"index of" "last modified" qbasic
"index of" "last modified" turbobas

En marge du basic, pour le dessert, recherche de sources ASM 6502:

lda sta jsr cmp bne filetype:asm

Je vois le bien,

Je l'apprécie,

Et pourtant je fais le mal...

 

Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus