Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-06-2004, 16:46   #1
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
[Assembly-DOS] Pulire lo schermo e scrivere una frase

Ciao,

Ho un problema con un programma in Assembly-DOS che ho scritto di prova .

In pratica quello che deve fare sto programma cazzutissimo si può riassumere in 3 parti :

1) Pulisce lo schermo completamente

2) Sposta il cursore di scrittura a metà schermo

3) Scrive un altrettanto cazzutissima frase

Il codice sorgente per NASM è qua :

Codice:
; Source Name: PROVA.ASM
; Executable Name: PROVA.COM

[BITS 16]  ; Set 16 bit code generation
[ORG 0100H] ; Set the start of the code at address 0100H [COM FILE]

[SECTION .text]  ; Opening SECTION .text

START:  ; START Label
  call Cleaning
  mov dl, 25 ; Positioning cursor on 39 = X Coordinate
  mov dh, 11 ; Positioning cursor on 11 = Y Coordinate
  call Positioning ; Calling "Positioning" procedure
  mov dx, message ; Loading in DX the address of "message"
  call Write ; Calling the "Write" procedure
  call Closing ; Calling the "Closing" procedure

Write:
  mov ah, 9 ; Loading DOS service code into AH [9 = Print on the screen]
  int 21H ; Software Interrupt [Calling DOS Dispatcher]
  ret ; Returning from Procedure

Cleaning:
  mov cl, 0 ; Upper-left corner X Coordinate
  mov ch, 0 ; Upper-left corner Y Coordinate
  mov dl, 79 ; Bottom-right corner X Coordinate
  mov dh, 24 ; Bottom-right corner Y Coordinate
  mov al, 0 ; Scrolling 0 lines [Clean the screen]
  mov ah, 6 ; Put BIOS call code 6 in AH
  int 10H ; Calling VIDEO BIOS Service
  ret ; Returning from Procedure
Positioning:
  mov ah, 2 ; Loading VIDEO BIOS Service code into AH [2 = Cursor Positioning]
  mov bh, 0 ; Stay in display page 0
  int 10H ; Calling VIDEO BIOS Service
  ret ; Returning from Procedure
Closing:
  mov ax, 04C00H ; Loading DOS Service code in AX Register [04C00 = exit from execution]
  int 21H ; Calling DOS Service
  ret ; Returning from Procedure
[SECTION .data]

message db "Frase sostituita :)" , 13, 10, "$"
Scusate per i commenti in inglese, ma li ho messi in inglese perchè fanno figo

Comunque il problema è questo :

In pratica lo schermo si pulisce dopo aver eseguito la procedura "Cleaning" che pulisce lo schermo usando la chiamata al Video BIOS "6" , lo schermo diventa completamente nero .

Successivamente fa l'azione di spostare il cursore a centro schermo e di scrivere la frase , solo che.... la frase non si vede!!
Lo schermo rimane totalmente nero e non da segni di vita , neanche il prompt del DOS dopo che ha finito di eseguire il programma .

Posso scrivere quello che voglio , ma lo schermo rimane nero (però in sistema è attivo , infatti se ad esempio do il comando "DIR" non si vede nulla a schermo ma l'HD lavora ) e l'unico modo per recuperarlo è usare il comando "CLS" .

Perchè fa sta cosa???

Come faccio a pulire lo schermo senza che me lo blocchi??

Grazie a tutti

Ciao
__________________
GPU Compiler Engineer

Ultima modifica di AnonimoVeneziano : 25-06-2004 alle 16:50.
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 17:13   #2
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Codice:
Cleaning:
  mov cl, 0 ; Upper-left corner X Coordinate
  mov ch, 0 ; Upper-left corner Y Coordinate
  mov dl, 79 ; Bottom-right corner X Coordinate
  mov dh, 24 ; Bottom-right corner Y Coordinate
  mov bh, 7 ; Attribute
  mov al, 0 ; Scrolling 0 lines [Clean the screen]
  mov ah, 6 ; Put BIOS call code 6 in AH
  int 10H ; Calling VIDEO BIOS Service
  ret ; Returning from Procedure
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 17:31   #3
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da mmx[ngg]
Codice:
Cleaning:
  mov cl, 0 ; Upper-left corner X Coordinate
  mov ch, 0 ; Upper-left corner Y Coordinate
  mov dl, 79 ; Bottom-right corner X Coordinate
  mov dh, 24 ; Bottom-right corner Y Coordinate
  mov bh, 7 ; Attribute
  mov al, 0 ; Scrolling 0 lines [Clean the screen]
  mov ah, 6 ; Put BIOS call code 6 in AH
  int 10H ; Calling VIDEO BIOS Service
  ret ; Returning from Procedure

Attribute??

Non l'avevo trovato da nessuna parte , cosa fa?? (Mo provo)

Grazie

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 17:36   #4
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Funziona

Sei un mito , grazie
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 17:39   #5
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Semplicemente imposta il colore del testo e dello sfondo...prima scrivevi nero su nero....ecco xke non vedevi niente.

Se non ricordo male i 4 bits + significativi sono il colore del testo, dal 5° al 7° bit lo sfondo e il bit finale dovrebbe essere il blink...ma non ne sono sicuro xke è una vita ke non vedo + ste cose...al max prova
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 17:53   #6
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
LoL , detto così sembra facile

Sai mica se c'è una tabella con tutti sti attributi? Mi piacerebbe provare a fare lo schermo di un colore diverso

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 19:46   #7
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Allegati
File Type: zip attr.zip (152 Bytes, 5 visite)

Ultima modifica di repne scasb : 03-02-2005 alle 16:57.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 16:24   #8
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
have a look
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 16:26   #9
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da repne scasb
Il seguente codice ASM ti generera' la tabella che cerchi:

Codice:
	View_All_Attribute	proc	near

	mov	ax,3h
	int	10h
	push	0B800h
	pop	es
	mov	di,2C0h
	xor	ax,ax
loop_attribute:
	stosw
	add	ax,101h
	test	al,0Fh	
	jne	loop_attribute
	add	di,80h
	test	al,0F0h
	jne	loop_attribute	
	mov	ah,10h
	int	16h
	mov	ah,4Ch
	int	21h

	View_All_Attribute	endp
Se non dovessi riuscire a compilare il codice ti allego l'eseguibile per visualizzare tale tabella.

Togo , grazie

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 16:27   #10
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da Luc@s
have a look

Grazie anche a te

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 18:30   #11
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
giusto per sapere.........come hai poi risolto?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 19:43   #12
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Ho risolto impostando la serie di attributi giusti per lo schermo ^^

Prima mettevo "00" che era come "Nero su Nero" , adesso metto diversi colori a seconda di quelli che voglio , come indicato anche nella tabella nel link che mi hai postato

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 19:48   #13
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da AnonimoVeneziano
Ho risolto impostando la serie di attributi giusti per lo schermo ^^

Prima mettevo "00" che era come "Nero su Nero" , adesso metto diversi colori a seconda di quelli che voglio , come indicato anche nella tabella nel link che mi hai postato

Ciao
hai evoluto il code?
Ma sul libro che mi hai "passato" c'è sta roba??
E il link che ti ho dato era utile?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 19:59   #14
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Evoluto il code ... diciamo che l'ho modificato , c'è poco da evolvere

Si, sta roba c'è sul libro

Si era utile, grazie

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 20:05   #15
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da AnonimoVeneziano
Evoluto il code ... diciamo che l'ho modificato , c'è poco da evolvere
Ma in teoria un soft non è l'evoluzione di poche istruzioni?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 20:14   #16
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da Luc@s
Ma in teoria un soft non è l'evoluzione di poche istruzioni?

Ehm


Ma quando sono troppo poche.....


Si, comunque l'ho ottimizzato e adesso usa metà delle istruzioni per fare la stessa cosa

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 20:21   #17
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
I want see the program!
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 21:23   #18
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Ce l'ho sul 286 , quando ho tempo lo posto :P

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Sale LAN, la Manovra 2027 introduce una ...
11 prezzi imperdibili in Amazon: non sol...
Giù i prezzi di Xiaomi 17T e Xiao...
Una tassa di 5,5 centesimi su ogni gigab...
Vuoi clonare un videogioco con l'IA? Cla...
Furto da 6,3 miliardi di dollari, Binanc...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v