G-Explorer 2
#1
Posted 12 February 2003 - 07:41 PM
There's a little demo here: http://leneuronez.free.fr/G-EXII.EXE
Press ENTER to valid the password (not stored, just a test! )
then you can enter some characters... just for test too!
and rom 1.01 users, tell me if you see correctly ALL the grayscales!
PS: do you at least know about new 5 grayscales technic used in G-ex2 ?? you can download many pictures in *.exe format here:
http://kiwicasio.free.fr/kiwi_img.php
#2
Posted 12 February 2003 - 11:06 PM
#3
Posted 12 February 2003 - 11:29 PM
in the images they appear as diagonal lines that seem to mask into eachother to create the illusion of more colours..
i guess this new technique uses interrupts to change the current drawen page(?). the interrupt layout is not the same on ROM1.01, so this is probably causing the "error"
#4
Posted 13 February 2003 - 09:48 AM
The 2 other levels are white and black so It's cool!
BiTWhise: I don't understant exactly what you want to tell me ... sorry, my english is a bit bad ...
#5
Posted 13 February 2003 - 11:09 AM
that is: blank, gray, black..
The normal (hardware) way of acheiving grayscale, is to make the display retrace 3 buffers, rather than 1..
Another way, is to make a timed interrupt change the current displaybuffer, and rotate through a given set of buffers..
This way you can set the number of buffers yourself.
I guess this method is used here, or there are ways that I'm unfamiliar of
#6
Posted 13 February 2003 - 01:14 PM
Are you going to implement a folder system (like in Win4Cas)??
This would be great!
#7
Posted 13 February 2003 - 06:48 PM
please could someone give mr the 1.01 "screen interrupt number", so you will be able to see all the colors !!
huhn_m: Yes, and it will include a real folder system AND a software folder system !
#8
Posted 13 February 2003 - 07:21 PM
This mapping is done by the BIOS on load.. and shold be left to the BIOS
It can however be programmed by the user, but that's basically asking for trouble... you'de have to send "end of interrupt" instruction after any ints and stuff like that.. which, if done wrong, could disable that device (being ignored by the PIC).. so it's best to leave that to the BIOS
Different hardware interrupts poll the PIC at different rates..
You have system timers, real time clocks etc, which poll at a relativelly high rate. And then you have IO devices, like keyboard, that doesn't poll unless told so, ei. if you press a button.
For grayscale, you'd want a TSR that changes the address of the framebuffer at the same rate as the screen refreshes..
To do this, you could hook up to whatever interrupt is triggered by the hardware interrupt that triggers screen refresh. If I'm not mistaken, that would be hardware int 2(?).. (don't confuse this with interrupt 2 on the dos vector table)
To know which software interrupts are triggered by this hardware interrupt, you'd need to read the PIC.
When you know which vector is called, you can hook your TSR to this, and redirect to the original code at the end of your code.
The system should run as normal, and your code should execute at the same speed as the screen refresh
I have no real knowledge of how the hardware ints har mapped to the vector table on the AFX, nor at which speed the poll..
However, I think I've read something about using int 53h (which I think is a common timer int?), which doesn't seem to work on ROM1.01
I guess whoever wrote this grayscale thing, use this int, together with normal grayscale function of the afx (which provides 2 usefull buffers) to generate 4 buffers of grayscale, making for 5 shades (including blank)
If this person (sorry, I haven't done any research to find out who) would make his code public, surely it would be easier for someone else to make it compatible with ROM1.01
I believe there are other ppl out there with much greater knowlegde on this subject than me, and thus can complete the task faster and more easilly.. I on my hand can't find time for that right now..
#9
Posted 14 February 2003 - 12:44 AM
#10
Posted 14 February 2003 - 09:37 AM
I really doubt there's a register to control this, as it would implement changing the hardware and the way it responds to the NMI..
There's probably an internal counter or something on INT 2, to decide wether to return or call the following INTs in the chain, in which case, a TSR patched on to INT 2 should execute at the same speed as the LCD refresh (being the first INT in the chain)..
#11
Posted 15 February 2003 - 11:49 AM
any way, here s the code:
#define ushort unsigned short #include <dos.h> ushort cur_segm=0x1A20; void interrupt int53() { asm{ push ax push dx mov ax,[cur_segm] mov dx,ax and dx,0xF000 shr dx,12 shl ax,4 out 05h,ax mov al,dl out 07h,al cmp word [cur_segm],1A20h jne pass add word [cur_segm],040h jmp end } pass: asm{ sub word [cur_segm],040h } end: asm{ pop dx pop ax int 5 } } void interrupt (*oldint)(void); //Entrer dans le mode 5 couleurs void set_grey() { oldint = _dos_getvect(0x53); _dos_setvect(5,oldint); _dos_setvect(0x53,int53); asm{ mov al,2 //;Vitesse balayage rapide out 4,al mov al,0xDB //; Passage en niveaux de gris lineaire out 2,al mov bp,7 } cont_loop: //Constaste vers le haut asm{ mov ah,22h xor bl,bl int 7Ch dec bp jnz cont_loop } return; } //Quitter le mode 5 couleurs void clr_grey() { asm{ mov bp,7 } cont_loop: //Constaste vers le bas asm{ mov ah,22h mov bl,1 int 7Ch dec bp jnz cont_loop mov al,0xC3 //; Passage mode normal ecran out 2,al mov al,4 //; Vitesse balayage normale out 4,al } // Recharger les interruptions du balayage de l'?cran _dos_setvect(0x53,oldint); //Retour page 0x1a20 asm{ mov ax,0x1a20 mov dx,ax and dx,0xF000 shr dx,12 shl ax,4 out 05h,ax mov al,dl out 07h,al } }
So as you can easily see it, it's the int53 which is redirected to int 5...
If I make a demo but using int2 would bitwhise be ok to betatest it?
#12
Posted 15 February 2003 - 11:57 AM
Int 0x53 is not set up the same way on ROM1.01
I'll be happy to test any Int 2 attempt
#13
Posted 15 February 2003 - 03:18 PM
And unfortunately I know there's not another interrupt on 1.00 running full speed, because the greyscale demo in my ASMTEST2 runs properly on 1.01, but flickers badly on 1.00 (and may not allow exiting due to the way it tries reading the keyboard). It uses the hlt command for timing, so the actual interrupt that fires from the refresh doesn't matter.
#14
Posted 15 February 2003 - 04:13 PM
#15
Posted 16 February 2003 - 09:24 AM
#16
Posted 16 February 2003 - 12:09 PM
#17
Posted 16 February 2003 - 12:55 PM
#18
Posted 16 February 2003 - 02:48 PM
could someone give me some principal interface ideas? I mean the screen after the password security ... what could I show on it ? And if you have some ideas, I could program them AND a 1.01 rom version too!!
#19
Posted 16 February 2003 - 04:08 PM
I think the Idea behind it is quite good. Unfortunately a lot of functions
don't work (yet?).
Look at it!
#20
Posted 17 February 2003 - 03:38 PM
graph os isn't at all the style I want ...
do you know mac os X ? and Kde ?? this is THIS design I like ... and all things are done on paper, I've worked hard today!!
#21
Posted 17 February 2003 - 07:25 PM
#22
Posted 18 February 2003 - 04:16 PM
I'll attack the 1.01 rom ver. on a few minutes!
#23
Posted 20 February 2003 - 06:30 PM
#24
Posted 20 February 2003 - 07:19 PM
#25
Posted 20 February 2003 - 11:49 PM
#26
Posted 21 February 2003 - 02:08 AM
PS: The screenshot looks fantastic, looking forward to the finished product
#27
Posted 22 February 2003 - 06:36 AM
To make my explorer compatible, I'll just have to:
1-program two versions, one using int2, and the other int53
2-or simply just one version which detects the rom version ! But I'll need some help on it! I'll try to search something already done like this !
#28
Posted 22 February 2003 - 07:25 AM
#29
Posted 24 February 2003 - 12:26 AM
I just found a very hold post I've done on the French forum:
You can read very good thing from these addresses to detect the version of ROM:
- 0xC000:0xC
- 0xC000:0xD
- 0xC000:0xF
The value of - 0xC000:0xC is 0x42 for a ROM 1.02, 0x43 for a ROM 1.03 and 0x41 for a ROM 1.01 !!
hope this helps, thank 2072 for the info.
#30
Posted 24 February 2003 - 12:01 PM
http://leneuronez.free.fr/G-EXII.EXE
So rom 1.01 please tell me how many colors you see on the top left/right corner of the screen ... Normally, it should be:
Black
Dark Gray
Medium Gray
Light gray
White
#31
Posted 24 February 2003 - 03:17 PM
-Make Casio Programs launchable (e.g through a menu)
-Send & Receive of Flash Drives (not the Files)
Is that possible ???
Bye huhn
#32
Posted 24 February 2003 - 04:33 PM
The program itself, behaves strangely though..
Pushing any button after the password screen will stall the program, and either blank the screen, fill it, or output som strange characters...
#33
Posted 24 February 2003 - 04:39 PM
Do you call the previous interrupt before or after your routines?
In case there are bugs in your routines, you should call the original one in the beginning of your code sequence rather than after..
#34
Posted 24 February 2003 - 05:44 PM
But the bug you said, at least I think, comes from the key detection, not from the video routines. These ones are o.k. I'll try to fix up all these 'interferences'
#35
Posted 24 February 2003 - 09:53 PM
also, I like huhn's idea for BASIC program manipulation/runing.
#36
Posted 25 February 2003 - 03:11 AM
Would it be possible to make it able to lauch ANY of the modes of the calc, and then maybe exit back into the explorer? Then it might be like a different operating system, but one with an interface like windows. Just a thought.
#37
Posted 25 February 2003 - 09:29 AM
But really strange ... it occurs when I read a value from the ports (0x1E for example to get the time ...)
So now gx2 don't bug anymore, but no longer displays time !! Please help me !!
And about all Ur ideas, I'll try to see that and think about it
thanx for all guys!
#38
Posted 25 February 2003 - 09:51 AM
#39
Posted 25 February 2003 - 10:43 AM
Reading from the port don't crash the calc directly, so your code must be seen in context
#40
Posted 25 February 2003 - 02:01 PM
I didn't mean the Basic Programs. I ment CAS / RUN / MAT ...
like Casto Productions said
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users