Giter Site home page Giter Site logo

mega65-fdisk's Introduction

mega65-fdisk

FDISK+Format Utility for MEGA65 (http://github.com/MEGA65)

Prerequisites

  • need something for pngprepare, -> sudo apt install libpng12-dev
  • the 'cc65' toolchain is required, and by default this is taken care of in the Makefile.
    Alternatively, you can supply your pre-built cc65 binaries (see below at "CI").

Building

  • make will build (including init/update/build of submodule ./cc65)

Continuous Integration (CI)

For CI building, you may not want to build the cc65-submodule, but rather use a locally installed binary instead.

In that case, build with: make USE_LOCAL_CC65=1

mega65-fdisk's People

Contributors

ben-401 avatar frehwagen avatar gardners avatar gurcei avatar ki-bo avatar lydon42 avatar spidamouse avatar zeldin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mega65-fdisk's Issues

Erase Config Block

Currently the config block is not erased when formatting a card with FDISK.

This can lead to unexpected behavior, so we should zero it out (i.e. do the same that boot to onboarding does?)

Explicitly tell which card slot is about to be formatted

Request by eliyo originally in mega65-tools#115:

In the disk formatting tool, after selecting a card slot to format, we are asked to type DELETE EVERYTHING but there is no clear information on screen about which slot will be used. So if we are not sure we typed the right value (0 or 1), we're in doubt. Please add a message explicitly mentioning in which slot the formatting will take place.

FAT file system broken after erasing

The sd card implementation of the core so far had a bug in which the last sector of a multi-sector write was not written. After this was fixed in the core, the fdisk tool stopped working. It always got stuck populating files after erasing. It turns out the erase functions always erases one more sector than specified. This was not discovered so far since the old core implementation had the mentioned bug. Erasing one additional sector destroys important FAT sectors, though, leading to the stuck file population.

FDISK confuses internal and external slot

MEGA FDISK+FORMAT V00.08 confuses internal and external SD card.
An internal card is dectected as external SD 0, an external card is detected as internal SD 1.
I've tested this with only one card inserted at a time.

ASCII font lacks Unicode Latin1 symbols

MEGA65 ASCII keyboard input hardware accelerator now supports a variety of Latin1 code page symbols from Unicode via the ALT key. For example, ALT + [ should yield Ö and ALT + ; should yield ö.

Table of symbols to add from this wikipedia page:

https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)

Symbols 0x80 - 0x9F can be left blank, as they are control code.
Almost all the rest can be typed using the ALT key, however.

The file ascii00-7f.png needs to be made 256x8 pixels tall, and the missing glyphs added. It should then be renamed to ascii00-ff.png, and the build infrastructure updated to reflect it.

Once done, the updated font should then also be copied into the other repositories where it is used, such as mega65-core in the assets directory.

Create a README.txt file along with system files from the core

Is your feature request related to a problem? Please describe.
Users need more opportunities to learn about SD card management. For example:

  1. The purposes of the files installed by the SD card utility
  2. Where to download bundled software (GEOS, etc.) and updates
  3. Why and how to format the card with the MEGA65 SD card utility
  4. How to work around issues with incomplete FAT32 support (fragmentation), using mega65_ftp/etherload
  5. Tips for dealing with spurious files installed by the host OS (especially macOS) or long filenames

Describe the solution you'd like
Create a plaintext document named README.txt containing this information. Embed it in the core as one of the files it populates via the SD card utility. Include it in the bundled SD card image.

Describe alternatives you've considered
Alternatively, the README.txt file could be a short file with a reference to a chapter in the manual, or a mega65.org short URL that redirects to a Filehost or Wiki article. The goal is to present the user with this information at the point it is useful, i.e. when they mount the SD card on their PC. A user will probably follow a link found in this file.

Formatter defaults to internal SD card while an external Micro SD is inserted

The external Micro SD port supposedly takes over from the internal SD port when a Micro SD is inserted. The system will try to boot from the external SD as such.

However, in order to create a compatible structure, one has to use the FDISK formatter utility. Running this utility seems to only consider the internal SD card and as such will overwrite that one instead of the external one that should in fact override the internal one.

Makefile does not 'clean' all build artefacts, using .gitignore

suggest the Makefile:clean actually deletes the build artefacts, because in not doing so it leaves the CWD dirty but dirtiness is hidden due to .gitignore

gerb0002@dell960:~/dev/github/ben-401/mega65-core/mega65-core-dev2-build/src/mega65-fdisk$ make clean
rm -f m65fdisk.prg 
gerb0002@dell960:~/dev/github/ben-401/mega65-core/mega65-core-dev2-build/src/mega65-fdisk$ make
/usr/local/bin/cc65 -t c64 -O -Or -Oi -Os --cpu 65c02 -o fdisk.s fdisk.c
fdisk.c(191): Warning: Parameter `volume_name' is never used
fdisk.c(688): Warning: Converting pointer to integer without a cast
/usr/local/bin/cc65 -t c64 -O -Or -Oi -Os --cpu 65c02 -o fdisk_memory.s fdisk_memory.c
/usr/local/bin/cc65 -t c64 -O -Or -Oi -Os --cpu 65c02 -o fdisk_screen.s fdisk_screen.c
fdisk_screen.c(155): Warning: `c' is defined but never used
/usr/local/bin/cc65 -t c64 -O -Or -Oi -Os --cpu 65c02 -o fdisk_fat32.s fdisk_fat32.c
/usr/local/bin/cc65 -t c64 -O -Or -Oi -Os --cpu 65c02 -o fdisk_hal_mega65.s fdisk_hal_mega65.c
/usr/local/bin/cl65 -t c64 -O -Or -Oi -Os --cpu 65c02  -vm -m m65fdisk.map -o m65fdisk.prg fdisk.s fdisk_memory.s fdisk_screen.s fdisk_fat32.s fdisk_hal_mega65.s charset.s
gerb0002@dell960:~/dev/github/ben-401/mega65-core/mega65-core-dev2-build/src/mega65-fdisk$ make
make: Nothing to be done for 'all'.
gerb0002@dell960:~/dev/github/ben-401/mega65-core/mega65-core-dev2-build/src/mega65-fdisk$ make clean
rm -f m65fdisk.prg 
gerb0002@dell960:~/dev/github/ben-401/mega65-core/mega65-core-dev2-build/src/mega65-fdisk$ make
/usr/local/bin/cl65 -t c64 -O -Or -Oi -Os --cpu 65c02  -vm -m m65fdisk.map -o m65fdisk.prg fdisk.s fdisk_memory.s fdisk_screen.s fdisk_fat32.s fdisk_hal_mega65.s charset.s
gerb0002@dell960:~/dev/github/ben-401/mega65-core/mega65-core-dev2-build/src/mega65-fdisk$ 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.