Giter Club home page Giter Club logo

ciderpress2's People

Contributors

fadden avatar markdavidlong avatar polluks avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ciderpress2's Issues

Allow editing of ProDOS DIR aux type

Apparently ProLine used the aux type field on subdirectories to hold extended file permissions.

Right now, ProDOS_FileEntry ignores attempts to update the aux type for directories. I don't remember there being a reason for this other than that it's a bit weird to do it. The CLI app will try to update it, the GUI disables the edit field.

We don't normally display the DIR aux type. The CLI displays the aux type in "wide" catalog listings and in set-attr output, and it's visible in the GUI edit-attributes dialog. I'm not sure we need more than that.

Display PDF in external viewer

When a PDF file is encountered, usually in a ZIP archive that collects a disk image and documentation together, the file viewer currently dumps the raw file as converted text. It should instead offer the conversion option "Host Image", and put a "view with external program" button in the middle of the display tab. When clicked, the default system viewer is launched, with the PDF in a temp file.

The original CiderPress automatically launched an external viewer for GIF/JPEG with no prompting. I don't think automatically launching the viewer is a good idea, because it would be jarring if you were scrolling through things with the prev/next button, but it might make sense to pop it open if the PDF file were double-clicked (i.e. the viewer is opened with a single item selected).

Update: this would also be useful for files on CD-ROM, e.g. the Opus ][ documentation directory. These have HFS file types; on the Opus ][ disc I see:

  • PDF /CARO: PDF files
  • W8BN/MSWD: Word files
  • RTF /MSWD: RTF files; could be displayed directly in the Rich Text control, but probably better to launch a viewer since they might use fancy formatting or be very large

WPF DataGrid performance issue affecting file list

First noted in 3f97bd1 .

Steps to reproduce:

  • Open a large archive, and select full-list display mode. I used "a2gemII.iso", but anything with a couple thousand entries ought to work.
  • Ensure the window is wide enough to show all columns.
  • Using the scroll bar, scroll down about halfway through the archive.
  • Close and reopen the archive.

When the archive is reopened, the program appears to stall, but eventually opens the file. When it does, the file list is positioned at the end of the archive, and the scroll bar is inactive. The debugger memory view shows a constant series of GCs. Clicking on any GUI element clears things up.

The main thread appears to be in a state of constant activity. Pausing the program to look at the stack trace shows it deep in WPF code (dozens of method calls down). The traces are a bit different every time, but often have something to do with dependency object property change events and DataGridRow objects.

The problem doesn't happen if the file list doesn't have a lot of elements in it. A large archive viewed with single-directory mode won't exhibit the problem (unless it has a lot of stuff in one directory). The width of the main window also matters. If the window is narrow enough to cut off part of the rightmost column ("Access"), the problem doesn't happen.

My best guess is that this has something to do with DataGrid virtualization, which is fraught with peril on a good day. Changing fileListDataGrid's VirtualizingStackPanel.VirtualizationMode value from "Recycling" to "Standard" changes the behavior somewhat. When the reproduction steps are followed, the load process will still appear to stall for a few seconds, showing the list scrolled all the way to the end. However, it will recover on its own, and move the file list position to the top. Again, partially obscuring the Access column fixes the issue.

(I tried setting the width of the Access column to "*" as a work-around, but for some reason the column width didn't change.)

The file list contents, which come out of an ObservableCollection in proper WPF fashion, are cleared when the file is closed. I even threw in an UpdateLayout() call to try to get it to return to its base state.

There's a second issue that is probably related to this one. Steps to reproduce:

  • Cause the problem as above. Click on a GUI element to un-freeze.
  • Shrink the right edge of the window so the Access column is partly obscured.
  • Close and reopen the archive.

When scrolling down, the leftmost column (status icon) will sometimes have a gray rectangle on the left side that pushes the line contents to the right. Not just for that column, but for the entire row, so the vertical column markers are out of whack.

image

The extra rect appears and disappears on a given line as the file list is scrolled, again suggesting the involvement of the GUI element recycling system. (Update: issue happens whether or not there is an icon present in the row.)

In any event, I believe this is a problem in WPF rather than the application code, but it may be possible to find a workaround that reduces the impact.

Update: today it isn't stalling, but it is spitting out about 70 of these when the archive is re-opened:

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=HeadersVisibility; DataItem=null; target element is 'DataGridRowHeader' (Name=''); target property is 'Visibility' (type 'Visibility')

Those messages and the extra rect go away if the recycling mode is changed to "standard". Curiously, switching between ProDOS volumes within a2gem.iso doesn't cause the messages to reappear; it's only when the archive is closed and reopened. The GUI elements are hidden, not discarded, when an archive is closed.

Update: none of the problems happen with the "release" build of 0.4.0. Maybe it's a debug-mode-only problem? That would be nice.

Update: it's stalling with the 1.0.0-alpha1 "release" builds (tried win-x86 and win-x64). Maybe I didn't have the window wide enough in the previous round of tests? I'm not seeing the secondary graphical glitches though.

Enhancement Request: Add ability to export CFFA1 disk image in woz monitor loadable format

It would be great if there were a way to export the files in the CFFA1 disk image using the hex input format of the Apple-1's Woz monitor:

http://retro.hansotten.nl/uploads/apple1/ULTIMATE%20APPLE1%20CFFA%203.3.po

It seems that this disk image contains binary images of the programs, with the load address specified by the Auxtyp field in the catalog listing in the case of file types $F1 and BIN:

Type Auxtyp Modified          Length  Storage *Name                             
---- ------ --------------- -------- -------- ----------------------------------
DIR         30-Sep-12 19:48      512      512  ASOFT
BIN  $6000  [No Date]           8037     8704  ASOFT:APPLESOFT
$F8  $0801  [No Date]           7160     7680  ASOFT:LEMO
DIR         30-Sep-12 19:48     2048     2048  BASIC
$F1  $0800  [No Date]           2560     3072  BASIC:ACEYDUCEY
$F1  $0300  [No Date]          16128     7168  BASIC:AMAZING
BIN  $E000  06-Oct-06 15:45     4096     4608  BASIC:BASIC
$F1  $0800  [No Date]           2560     3072  BASIC:BATNUM
$F1  $0800  [No Date]           2560     3072  BASIC:BLACKJACK
$F1  $0300  [No Date]           3840     4608  BASIC:BOWLING
$F1  $0300  [No Date]           3840     4608  BASIC:BUZZWORD
$F1  $02BC  [No Date]          16196    16896  BASIC:CHECKERS
$F1  $0800  [No Date]           2560     3072  BASIC:CHEMIST
$F1  $0300  [No Date]          16128    16896  BASIC:COLUMN
$F1  $0300  [No Date]          16128    16896  BASIC:CONCENTRATION
$F1  $0300  [No Date]           3840     4608  BASIC:CRAPS
$F1  $0300  [No Date]          16128    16896  BASIC:DEAL
$F1  $0300  [No Date]          16128    16896  BASIC:ELIZA
$F1  $0200  [No Date]          32767    33280  BASIC:FACTORIALS
$F1  $0800  [No Date]          10752    11264  BASIC:FOOTBALL
$F1  $0800  [No Date]           2560     2048  BASIC:GETKEY
$F1  $0300  [No Date]           3840     4608  BASIC:GOMOKO
$F1  $0300  [No Date]           3840     4608  BASIC:HAMMURABI
$F1  $0400  [No Date]           7680     8192  BASIC:HANGMAN
$F1  $0800  [No Date]           5464     6144  BASIC:HOROSCOPE.H7000
$F1  $0400  [No Date]           7680     8192  BASIC:HURKLE
$F1  $0800  [No Date]           2560     3072  BASIC:INTEGER.MATH
$F1  $0400  [No Date]           7680     4096  BASIC:LABYRINTH
$F1  $0300  [No Date]           3840     4608  BASIC:LUNARLANDER
$F1  $0800  [No Date]           2560     3072  BASIC:MATCHES
$F1  $0800  [No Date]           2560     2048  BASIC:MATRIX
$F1  $0800  [No Date]           2560     3072  BASIC:NICOMA
$F1  $0800  [No Date]           2560     3072  BASIC:NUMBER
$F1  $0800  [No Date]           2560     3072  BASIC:PRIME.FINDER
$F1  $0300  [No Date]           7936     8704  BASIC:QUEEN
$F1  $0800  [No Date]           2560     3072  BASIC:RESISTOR
$F1  $0800  [No Date]           2560     2048  BASIC:REVERSE
$F1  $0800  [No Date]           2560     2048  BASIC:ROCKPAPERSCIS
$F1  $0300  [No Date]           3840     4608  BASIC:SLOTS
$F1  $0800  [No Date]           2560     3072  BASIC:SQUARES
$F1  $0300  13-Oct-06 13:16     3840     4608  BASIC:STARTREK
$F1  $0300  [No Date]          16128    16896  BASIC:STARTREK2003
$F1  $0800  [No Date]           2560     2560  BASIC:STOPWATCH
$F1  $0300  13-Oct-06 13:16     3840     4608  BASIC:SUDOKU
$F1  $0800  [No Date]           2560     3072  BASIC:TICTACTOE
$F1  $0800  [No Date]           2560     3072  BASIC:WORD
$F1  $0300  [No Date]          16128    16384  BASIC:WORDSEARCH
$F1  $0400  13-Oct-06 13:16     7680     8192  BASIC:WUMPUS
$F1  $0800  [No Date]           4464     4608  BASIC:ZOOP.H6000
DIR         30-Sep-12 19:48     1536     1536  FORTH
TXT  $0000  12-Oct-10 22:14     1024     1536  FORTH:BLOCK0001
TXT  $0000  12-Oct-10 22:14     1024     1536  FORTH:BLOCK0004
TXT  $0000  21-Sep-10 21:13     1024     1536  FORTH:BLOCK0005
TXT  $0000  23-Sep-10 22:45     1024     1536  FORTH:BLOCK000F
TXT  $0000  25-Sep-10 16:19     1024     1536  FORTH:BLOCK0050
TXT  $0000  25-Sep-10 16:19     1024     1536  FORTH:BLOCK0051
TXT  $0000  25-Sep-10 16:19     1024     1536  FORTH:BLOCK0052
TXT  $0000  25-Sep-10 16:19     1024     1536  FORTH:BLOCK0053
TXT  $0000  25-Sep-10 16:19     1024     1536  FORTH:BLOCK0054
TXT  $0000  25-Sep-10 16:19     1024     1536  FORTH:BLOCK0055
TXT  $0000  25-Sep-10 16:19     1024     1536  FORTH:BLOCK0056
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00C8
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00C9
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00CA
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00CB
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00CC
TXT  $0000  12-Oct-10 22:14     1024     1536  FORTH:BLOCK00CD
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00CE
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00CF
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00D0
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00D1
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00D2
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00D3
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00D4
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00D5
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00D6
TXT  $0000  12-Oct-10 22:14     1024     1536  FORTH:BLOCK00D7
TXT  $0000  12-Oct-10 22:14     1024     1536  FORTH:BLOCK00D8
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00D9
TXT  $0000  25-Sep-10 13:56     1024     1536  FORTH:BLOCK00DA
NON  $0000  31-Oct-10 14:39     6148     3072  FORTH:DSSTORE
BIN  $0240  31-Oct-10 14:05     6535     7168  FORTH:F1
TXT  $0000  31-Oct-10 14:04    57461    58368  FORTH:F1.S
TXT  $0000  10-Sep-05 00:19    14435    15360  FORTH:FIGDOC.TXT
TXT  $0000  21-Apr-07 07:46    53170    53760  FORTH:GLOSSARY.TXT
TXT  $0000  12-Sep-10 07:57       59      512  FORTH:NAME
DIR         30-Sep-12 19:48     1024     1024  LANGS
BIN  $7000  [No Date]           4045     4608  LANGS:A1ASM.V1.7000
BIN  $E000  [No Date]           4045     4608  LANGS:A1ASM.V1.E000
BIN  $6000  [No Date]           8037     8704  LANGS:APPLESOFT
BIN  $E000  06-Oct-06 15:45     4096     4608  LANGS:BASIC
BIN  $0800  05-Oct-06 17:08      512      512  LANGS:DISASSEMBLER
BIN  $5800  [No Date]          10190    10752  LANGS:EBASIC110L.5800
BIN  $5800  [No Date]          10190    10752  LANGS:EBASIC110U.5800
BIN  $5000  [No Date]          10411    11264  LANGS:EBASIC222L.7825
BIN  $5000  [No Date]          10411    11264  LANGS:EBASIC222U.7825
BIN  $5000  [No Date]          10706    11264  LANGS:EBASIC222CFFAL
BIN  $5000  [No Date]          10706    11264  LANGS:EBASIC222CFFAU
BIN  $0300  06-Oct-06 16:39     6294     7168  LANGS:FIGFORTH110
BIN  $0280  [No Date]           9772    10240  LANGS:JMON1.0
BIN  $7100  [No Date]           3839     4608  LANGS:KRUSADER1.2
BIN  $7100  [No Date]           3512     4096  LANGS:KRUSADER1.3
BIN  $6000  [No Date]           8162     8704  LANGS:MSBASIC.7D0D
BIN  $0300  [No Date]          14255    14848  LANGS:VOLKSFORTH38
BIN  $02E2  [No Date]           2079     3072  LANGS:SA2K.06B8
BIN  $7600  [No Date]           2489     3072  LANGS:TBASIC10L
BIN  $7600  [No Date]           2489     3072  LANGS:TBASIC10U
BIN  $1000  [No Date]          13449    14336  LANGS:ULTRAFORTH83
BIN  $1000  [No Date]          13472    14336  LANGS:VOLKSFORTH
DIR         30-Sep-12 19:48     1024     1024  MCODE
BIN  $0280  [No Date]          11656    12288  MCODE:ADVENTURE
BIN  $0280  [No Date]           3456     4096  MCODE:APPLE30TH
BIN  $0300  [No Date]            557     1536  MCODE:CELLULAR
BIN  $E000  [No Date]           4021     4608  MCODE:CODEBREAKER.PT1
BIN  $0280  [No Date]           2179     3072  MCODE:CODEBREAKER.PT2
BIN  $0280  [No Date]           6199     7168  MCODE:CODEBREAKER.REP
BIN  $0280  [No Date]             23      512  MCODE:HELLOWORLD
BIN  $0300  13-Oct-06 13:16      431      512  MCODE:HUNDRED.0474
BIN  $2000  06-Oct-06 16:42      440      512  MCODE:LIFE
BIN  $0300  [No Date]           4541     5120  MCODE:LITTLETOWER
BIN  $0300  02-Oct-06 17:07     5817     2560  MCODE:LUNARLANDER
BIN  $0300  06-Oct-06 17:02      177      512  MCODE:MASTERMIND
BIN  $0300  [No Date]           2248     3072  MCODE:MICROCHESS1
BIN  $1000  [No Date]           2304     3072  MCODE:MICROCHESS2
BIN  $0300  [No Date]            500      512  MCODE:NIM.04AF
BIN  $0300  [No Date]            550     1536  MCODE:PASART
BIN  $0280  [No Date]           4794     5632  MCODE:TYPINGTUTOR
BIN  $0280  [No Date]          17072    17920  MCODE:YUM
BIN  $1D00  [No Date]           3636     4608  MCODE:WOZFP.2394
DIR         30-Sep-12 19:48      512      512  UTILS
BIN  $0280  [No Date]            290      512  UTILS:MEMORYTEST
BIN  $07FD  [No Date]           2051     3072  UTILS:MONITOR
BIN  $0300  [No Date]             16      512  UTILS:TEST

Unable to create 3.5" disk images with .img or .dsk file extensions.

As reported here: https://68kmla.org/bb/index.php?threads/have-you-seen-ciderpress-2-mac-and-more-disk-image-can-opener.46146/

CiderPress2's type checking is a bit restrictive when trying to create a new disk image with certain file extensions.

-.DSK: This one seems to make sense as it is indeed ambiguous, but some emulators (software and hardware) use this extension for disk images.

-.IMG: This appears to be a logic error looking at the code. Sector ordering should not be enforced for images that are not 140k 5.25" disk. As before, .IMG is a popular extension with many emulators. If an image is larger then 140k, assume it is sector ordered and don't check for ProDOS vs. DOS 3.3 ordering.

Cannot Open An Image That is "In-Use"

CiderPress 1 allows me to open up a disk image that is in use (for example in AppleWin) in a READ-ONLY mode. CiderPress2 fails to open the image at all with an error that the file is in use.

Images have artifacts in file viewer

When displaying converted images, the file viewer uses a WPF Image control with NearestNeighbor scaling. If the control size is set to the exact size of the image, various artifacts appear. MacPaint images with fine detail look especially bad.

image image

If the size of the output image is increased by one pixel in each dimension, most of the artifacts disappear, though you can now see an extra row and column on some images:

image image

The latter is generally easier on the eyes, so the size change was submitted in 99c2291.

Additional notes:

  • The dimension must be changed for both width and height. Adding 1 to only one dimension doesn't make the problem go away, which is odd since the distortion is primarily in the columns.
  • Adding 0.5 instead of 1 didn't seem to change things.

The distortion only affects the on-screen appearance. Images exported as PNG or copied & pasted to other applications are fine:

image

(Primary test file is a Print Shop clip art file called BARNS, found in test-files.sdk here.)

Attempting to open a .DSK that is read-only results in an error

I'm using: CiderPress II v1.0.0

If I right-click the .DSK and make it read-only then I get this error:

---------------------------
File error
---------------------------
Error: Access to the path 'C:\Users\tomch\Downloads\mb-audit.dsk' is denied.
---------------------------
OK   
---------------------------

Unchecking the read-only file property allows me to open the file.

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.