Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - DrDnar

Pages: 1 [2] 3 4 ... 38
16
General Calculator Help / Re: TI 84 CSE bug
« on: October 28, 2014, 06:49:04 pm »
This is a bit late but. . . .


The USB hardware isn't very well understood. Generally, most 3rd-party software just ignores it. This causes problems if they take over interrupts, because USB can also generate interrupts. When you connect or disconnect the USB cable, an interrupt is generated. If the running software has taken over interrupts, hasn't disabled USB interrupts, and doesn't handle the interrupt, it will freeze because the interrupt keeps firing. Eventually, the stack will overflow and wipe all RAM. Eventually, I hope to have some fairly simple code that can disable and re-enable USB, so assembly programs won't crash.


Also, the TI-8x series originally ran on AAAs, so TI had no reason to include a low-voltage shutdown circuit on the ASIC. The LCD backlight dimmer has one, but it cuts off at a voltage (2.0 V) way lower than the voltage at which the battery has been damaged---and the dimmer is connected DIRECTLY to the battery (it's really easy to see the giant trace on the PCB). So if the calculator crashes with the backlight on, the backlight will remain on until well after the battery can't hold a useful charge anymore (unless there's a hidden circuit elsewhere that forces the control pin on the dimmer low).

17
News / Re: DJ's final community news coverage
« on: October 21, 2014, 05:49:45 pm »
Apparently, Solitaire didn't deserve to be listed :(

18
ASM / Re: 8X+ > questions about archive structure
« on: July 05, 2014, 09:01:42 pm »
The thing is, that will include pages $6A & $6B (described as "certificate list" in the SDK).
Anybody knows what kind of data those pages are supposed to hold ?
Nobody knows. The only thing BrandonW knows about it is that the OS will preserve any data in there when defragmenting apps. Since the OS does it, you should do it too---after all, something like zStart might decide to put something there.

Deleting it probably won't cause any problems, except for things that do weird hacks.

19
ASM / Re: 8X+ > flash writing question
« on: July 05, 2014, 05:14:00 pm »
Is the error handler system-dependant ?
No, I mean, in your flash write routine, when you see an error, double check if the data is in fact different than what was intended to be written, and only report an error if it's different. This will save you from the logic of retaining the status read value in a register.

20
ASM / Re: 8X+ > flash writing question
« on: July 05, 2014, 03:58:10 pm »
Yes, my code will specify if an error occured.
Thx for your time, again =]
In that case, have the error handler check the data to see if it's actually different, which will be slightly faster.

21
ASM / Re: 8X+ > flash writing question
« on: July 05, 2014, 03:11:48 pm »
The thing is, that if the chip happens to switch from "status" to "data" mode right before the second reading, bit 5 of actual data will be tested, potentially leading to an unwanted abort instruction.
Am i right about that potential breach ?
That can happen, and in fact probably happens a lot, but it's not a problem unless your routine also returns an error status. Issuing the reset command in read mode does nothing, so there's no reason to go out of your way to prevent that.

22
Other / Re: Windows Vista Boot Problem
« on: July 04, 2014, 10:29:35 pm »
DrDnar: How would I set it to "active"? Wasn't it already active? And, the BIOS recognizes the HDD fine, but I don't see a setting pertaining in any way to partitions in the BIOS.
The partition table also indicates which partition is to be the boot partition. Try setting the Windows partition as being the boot partition using a partitioning tool.

If you didn't actually reformat the partition or change any data in it, you can also just undelete the partition using a more advanced partitioning tool.

23
Other / Re: Windows Vista Boot Problem
« on: July 04, 2014, 01:46:17 am »
didn't need two partitions in Windows XP or Windows 7.
Windows 7 also likes to be configured that way. It can be configured not to need it.

I would still make sure the Windows partition is set as active and try installing the boot loader there; there's no reason to install it to another partition anymore.

24
Other / Re: Windows Vista Boot Problem
« on: July 04, 2014, 01:18:00 am »
Why bother deleting the partition? If the installer wouldn't let you delete it, it was probably a bad idea to delete it. Windows likes to have two partitions on a disk, an EFI booter and a Windows partition for the rest of the disk. You should have examined the partition before deleting it to make sure there wasn't anything on it. Like a bootloader.

Was the partition with Windows set as the boot partition? The "no bootable devices found" error sounds like an error coming from the BIOS. Try setting the Windows partition as the active (bootable) partition.

In my experience, the Startup Repair wizard doesn't detect BCD configuration issues. You may need to recreate the boot partition, install the bootloader, and rebuild the BCD.

25
ASM / Re: 8X+ > flash writing question
« on: June 30, 2014, 04:15:49 pm »
Writing and erasing flash requires pulsing the flash memory with high voltages. Older flash chips had a 12-20 V pin to supply the high voltage directly, but today's chips instead use a device known as a charge pump to multiply the supply voltage into the correct voltage. Charge pumps work by charging capacitors, so some time is required between when you request a write or erase and when the voltage is available. When you request a write or erase, the chip enters a status mode, in which reads return a status instead of real data, so that you know when the operation has completed.

Each time a flash cell is pulsed with high voltage, it is also damaged a little, causing the flash memory to wear out over time. In heavily used flash chips, multiple pulses may be required for a write or erase to take effect, so the operation may take longer. A write or erase may fail if the flash cell is worn out. In these circumstances, some bits are likely to have the correct value, while others won't. If the batteries are low during a flash operation, charging the charge pump will take longer, and it is possible the voltage will stay depressed for so long that the flash chip gets confused and stops working right. In other words, low batteries may cause the calculator to crash outright.

The datasheet indicates that if there's an error, the chip does not immediately return to read mode. Instead, you have to issue a reset command before it will enter read mode. If you simply do CP (HL) until Z is set, you will hang if there's an error writing.

Checking the sign flag is a possible optimization, with the downside that the code is no longer relocatable.

The BIT 7, A thing and jump instead of RET Z also add a delay between when bit 7 is correct and we start trying to fetch opcodes from flash again; TI and I essentially make an assumption that the flash chip won't return garbage for the other bits for more than a few clock cycles. In reality, the warning calc84 mentioned most likely only applies to CPUs that can fetch one byte per clock cycle, so a read on the very next clock cycle should be correct. The Z80 can't do another read on the very next clock cycle, so RET Z should be fine.

26
ASM / Re: port 1 stuff
« on: May 23, 2014, 01:00:58 pm »
Wow. Your research is making this hardware sound more and more obscure. O.O What the hell TI ?
This behavior is most likely due to capacitance in the keyboard traces. When you select a group for reading, charge almost instantly rushes onto the group traces on the PCB, so you can read instantly. But when you unselect a group, TI makes no effort to discharge the traces. (They're also too cheap to add a 1-cent diode to each key so that we could detect multiple key presses without ghosting.) The pins that control the group traces simply go into a high-impedance state, meaning change can't flow back into them. As a result, electric charge stays on the traces until internal resistance dissipates it. When you read from the keyboard right after disabling a group, the charge that was previously on the keyboard traces is still there, giving you the false signal. The capacitance effect is small and the charge dissipates in just a few microseconds, but the Z80 is running fast enough that we can see those microseconds.

27
ASM / Re: port 1 stuff
« on: May 17, 2014, 04:58:37 pm »
This is your research; you should document it on the Wiki.

28
TI Z80 / Re: zStart - an app that runs on ram clears
« on: May 17, 2014, 04:08:05 pm »
Well, ZStart's extra RAM storage can't be moved to another RAM page as there's only one extra page available on post 2007 84+'s.
Yes, there's only one page, but attempting to select any page between 82 and 87 gives the same one page. So he could just change the number he outputs.

29
ASM / Re: WikiTI
« on: May 11, 2014, 06:52:15 pm »
$FD and $FD = $FD, right ?
Ah, you're right. It should say ~0FDh; that is, it should be ANDing with the complement of FD

30
ASM / Re: WikiTI
« on: May 11, 2014, 06:01:07 pm »
If you request an account, be sure to ping me on IRC, or might not get approved for some time, because I don't check the queue everyday.

About that : http://wikiti.brandonw.net/index.php?title=83Plus:Ports:01
In the example, a "xor" must be used, not an "and".
No, the example is correct. Reset for a bit means that the key is held, the following CALL instruction tests for Z, not NZ. If you use XOR, you have to reverse the test.

Also, a little paragraph about delays between writing & reading could be necessary, don't you think ?
For what we had tested, maximum cycles was 6 in cpu speed 0, and 29 in any other (about a dozen models tested).
The cse has longer delays, but we were only able to test one calc.
The TI-84+CSE uses the same ASIC (which handles the keyboard) as older TI-84+/SEs with 128 K RAM, so anything true of the TI-84+CSE ASIC is true of the older TI-84+/SE ASIC. I wouldn't be surprised if, on average, the delays required are lower on the TA2 ASIC, but you should still have some.

Pages: 1 [2] 3 4 ... 38