Comments (6)
I have no devices which support this so it's never been tested.
The warmboot crash sounds suspiciously like it's trying to read the boot files from the wrong track. I bet there are several places which are failing to reselect the appropriate disk before doing an access.
from cpm65.
Yes, this is likely what happens. I had a look at the BDOS code and it seems like it is assumed in entry_RESET that internal_LOGINDRIVE will select drive A: if the A register is 0, but select_active_drive is called without storing the A register to active_drive first.
I will try to store A to active_drive before the call to select_active_drive and see if that fixes the crash.
from cpm65.
It works a lot better now - no more crashes at warmboot and changing drives at least changes the letter in the prompt. It still seems like the CCP always assumes that A: is the default drive though:
- Changing to B: and running DIR still shows the content of A:
- DIR B: works in so far that it shows the contents of B:, but it still prints A: at the beginning of each line regardless of which drive is selected when the command is run.
I have been digging a bit in both the CCP and the BDOS without finding any obvious cause for this, but perhaps the FCB is set up with A as the drive when no drive is specified?
from cpm65.
I looked a bit more now and I think that the current_drive variable in the BDOS is never set to the active drive number, it is just initialized to 0 and then never updated.
This would cause bdos_GETDRIVE to always return 0 which would explain why A is always assumed to be the active drive.
from cpm65.
The fix in the pull request I submitted solves the issue with A always being assumed as the active drive.
It does however introduce a behavior which I am not sure if it is expected or not - if an application accesses the second drive and does not change the active drive back before exiting, CCP will now be on the second drive. Example:
A>dinfo B:
(...output from dinfo...)
B>
I added a small update to the CCP to the pull request to fix this, as I assume it is not the expected behavior.
The issue with only one file being detected on the first access of the second disk is still present. It is not only with DIR, the first access to the second drive after boot always finds only the first file on on the disk.
from cpm65.
Thank you for the investigation! I've commented on the PR.
from cpm65.
Related Issues (20)
- VT52 waiting for valid escape sequence HOT 1
- Reusing a static FCB for several file operations HOT 3
- "REN"-like command for changing user ID HOT 2
- Older Apple ][ support HOT 4
- Arrow-key constants HOT 2
- cpm.h header file needed HOT 2
- munmap_chunk(): invalid pointer HOT 4
- Suggestion: have the CCP zero out the bss for transient commands
- Thoughts on sound, timer, and joystick drivers
- request: o65 6502 binary relocation format
- Cursor behaviour HOT 3
- Writing a new driver in assembly HOT 7
- Dependency on a certain version of llvm-mos HOT 1
- Failing to assemble .COMs on macOS (13.6) HOT 2
- Listing multiple lines in BEdit does not work
- ccp internal "ren" does not work HOT 2
- Build for Apple II 3.5" as well HOT 2
- Saving files with BEDIT on the Atari doesn't work HOT 3
- Updates to lib6502 breaks objdump HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cpm65.