Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,16 @@ Commodore 128 80 column screen editor - version 2
Version v20-20240611-1354:
- Bugfix release:
- SOLVED: Saving charactersets crashes the program
- SOLVED: If placing chararcters after prefiled filename extra characters are added.
- SOLVED: If placing characters after prefiled filename extra characters are added.

Version v20-20240421-1404:
- First release of v2 version of VDCSE
- Completely rebuild using the Oscar64 compiler (previously CC65)
- Added support for multiple VDC text screen modes, including 80x50 (ideal for C64 PETSCII art aspect ratio). NB: Needs a C128 with 64KB VDC RAM to have still also room for swap VDC memory.
- Added import and export functions: Import of both raw screen data in PRG files, or BBS Petscii code sequences in SEQ format export to SEQ format. SEQ format can be a.o. used to import from and export to other PETSCII editors like Petmate 9.
- Import functions include a VIC to VDC colour converter. Which is obviously a comprimise as VDC has only one color as alternative for the VIC pairs Orange/Brown (both convert to VDC Dark Yellow) and Light Grey/Medium Grey (both convert to VDC Light Grey), and the other colours have different hues on VDC than on VIC (for example light red from a pink like hue on VIC to red on VDC)
- Import functions include a VIC to VDC colour converter. Which is obviously a compromise as VDC has only one color as alternative for the VIC pairs Orange/Brown (both convert to VDC Dark Yellow) and Light Grey/Medium Grey (both convert to VDC Light Grey), and the other colours have different hues on VDC than on VIC (for example light red from a pink like hue on VIC to red on VDC)
- Import can be done to any given coordinate in the existing project, canvas is automatically enlarged if needed to make it fit.
- VDCSE2PRG program generator now supports all screensizes that fit in memory and supports the different screenmodes. Features scrolling for sizes bigger than the screensize: smooth scrolling on 64 KB VDC RAM equiped machine and per char vertical scroll (no horizontal scroll) with 16 KB VDC. Project files can now be selected using a filebrowser.
- VDCSE2PRG program generator now supports all screensizes that fit in memory and supports the different screenmodes. Features scrolling for sizes bigger than the screensize: smooth scrolling on 64 KB VDC RAM equipped machine and per char vertical scroll (no horizontal scroll) with 16 KB VDC. Project files can now be selected using a filebrowser.
- Many smaller refinements and bugfixes

Version v099-20220324-1527:
Expand All @@ -69,7 +69,7 @@ Version v099-20220324-1527:
- Statusbar shows present mode, co-ordinates, plot screencode (visual and as hexcode), plot color (visual and as number) and shows REV UND BLI ALT if these attributes (reverse, underline, blink and alternate charset) are enabled, shows nothing if disabled. Also hints at F8 for help.
- Added Try mode: pressing T shows the present selected character as plotted without cursor blinking. Pressing space in this mode plots the character for real, any other character cancels and returns without plotting.
- Tweaked pulldown menus so that the cyan also is visible different from yellow on a monochrome monitor. Added a minus to show the actual selection to also be able to distinguish selected option without needing the colors.
- Added cancel option in all load and save dialogues by pressing ESC or STOP on devide ID or filename input
- Added cancel option in all load and save dialogues by pressing ESC or STOP on device ID or filename input
- Small change: title screen shows load progress

Version v090-20220309-1618:
Expand Down Expand Up @@ -202,7 +202,7 @@ Press these keys in main mode for editing:

*Moving cursor*

Press the **cursor keys** to move the cursor around the screen. If the canvas size is bigger than the 80x25 screensize, the sreen will scroll on reaching the edges.
Press the **cursor keys** to move the cursor around the screen. If the canvas size is bigger than the 80x25 screensize, the screen will scroll on reaching the edges.

Pressing **HOME** will return the cursor to the upper left position.

Expand Down Expand Up @@ -262,7 +262,7 @@ From left to right, this status bar shows:
- X,Y: X and Y co-ordinates of the cursor (co-ordinates of the large full screen, and not only the visible screen, if a larger screen than 80 by 25 characters is selected)
- Char: the present selected character to plot, first as actual visual character, then as screencode number in hexadecimal
- Color: the present selected color to plot, first as actual visual color, then as color number
- Atrributes: this shows the enabled attributes, REV for Reverse, UND for Underline, BLI for Blink and ALT for Alternate character set. If the abbreviation is shown, the corresponding attribute is enabled, else disabled.
- Attributes: this shows the enabled attributes, REV for Reverse, UND for Underline, BLI for Blink and ALT for Alternate character set. If the abbreviation is shown, the corresponding attribute is enabled, else disabled.
- Reference that F8 gives you the help screen

The status bar auto hides if the cursor is moved to the lowest visible line on the screen, and pops up again (if enabled in the first place) when the cursor moves up.
Expand Down Expand Up @@ -339,7 +339,7 @@ Similar to clear, but this will fill the canvas with the present selected [scree

![File menu](https://github.com/xahmol/VDCScreenEditor2/blob/main/screenshots/VDCSE2%20File%20menu.png?raw=true)

In general: pressing **ESC** or **STOP** on any devide ID or filename input dialogue cancels the file operation.
In general: pressing **ESC** or **STOP** on any device ID or filename input dialogue cancels the file operation.

*Save screen*

Expand Down Expand Up @@ -433,15 +433,15 @@ Pick Both, Chars or Color for importing resp. both text and attributes from the

Pick Yes or No from the pulldown menu to indicate ifthe colour data in the file to import is coded for VIC colours. If selected yes, the VIC coded colours will be converted to VDC colours.

**NB: The colour conversion is a comprimise** as VDC has only one color as alternative for the VIC pairs Orange/Brown (both convert to VDC Dark Yellow) and Light Grey/Medium Grey (both convert to VDC Light Grey), and the other colours have different hues on VDC than on VIC (for example light red from a pink like hue on VIC to red on VDC)
**NB: The colour conversion is a compromise** as VDC has only one color as alternative for the VIC pairs Orange/Brown (both convert to VDC Dark Yellow) and Light Grey/Medium Grey (both convert to VDC Light Grey), and the other colours have different hues on VDC than on VIC (for example light red from a pink like hue on VIC to red on VDC)

***Uppercase charset?**

In case VIC colour conversion is selected, the dialogue also asks if the imported screen is based on an uppercase or lowercase charset. Select Yes for uppercase, No for lowercase.

***Enter offset char to colour***

Enter the offset in bytes between the text and attribute data in the file to be imported. Note that only files with first text, and then attribute data are suppported.
Enter the offset in bytes between the text and attribute data in the file to be imported. Note that only files with first text, and then attribute data are supported.

Enter 0 if the attribute data is directly after the text data, but enter the offset if there is a gap between the two in the file.

Expand Down Expand Up @@ -611,7 +611,7 @@ Press the **cursor keys** to move the cursor around the grid. You can move over

*Selecting character*

Press **SPACE** or **ENTER** to select the hightlighted characters as new character to plot with. This leaves the palette mode.
Press **SPACE** or **ENTER** to select the highlighted characters as new character to plot with. This leaves the palette mode.

*Storing to a favorite slot*

Expand Down Expand Up @@ -793,12 +793,12 @@ Leave Color write mode by pressing **ESC** or **STOP**. **F8** will show a help
VDCSE2PRG is a separate utility to create an executable program file for the C128 of a VDCSE project. All screenmodes, redefined charsets and all screensizes are supported, only limit is that data for the screen and charsets combined must fit in 31.232 bytes (approx. 30 kilobytes).

The generated executable program supports:
- All screenmodes supoorted by VDCSE2
- All screenmodes supported by VDCSE2
- All screensizes, also smaller or bigger than the screensize of the selected screenmode and redefined charsets, as long as it fits in the designated 30 kilobytes target memory
- If the screen is larger than the screensize of the selected screen mode, automated scrolling is supoorted. Note that smooth scroll in both the vertical as horizontal direction is only supoorted on 64 KB VDC RAM machines, on 16 KB VDC RAM machines only vertical per char scroll is supported.
- If the screen is larger than the screensize of the selected screen mode, automated scrolling is supported. Note that smooth scroll in both the vertical as horizontal direction is only supported on 64 KB VDC RAM machines, on 16 KB VDC RAM machines only vertical per char scroll is supported.
- The generated program will detect VDC RAM size automatically and choose the proper scroll mode if needed (or exit with a message if horizontal scrolling would be needed given the screensize, while only 16 KB VDC RAM is available.)

This is a seperate utility which can not be started from the VDCSE main program but has to be started seperately by loading the VDCSE2PRG file from disk with for example RUN"VDCSE2PRG",U(device number).
This is a separate utility which can not be started from the VDCSE main program but has to be started separately by loading the VDCSE2PRG file from disk with for example RUN"VDCSE2PRG",U(device number).

Running this program first gives a filebrowser to select the VDCSE project file to base the generated program on. The browser filters to show only project files, pick the desired one using the filebrowser interface.

Expand Down Expand Up @@ -913,7 +913,7 @@ Code and resources from others used:

https://github.com/drmortalwombat/oscar64

Many thanks also to https://github.com/drmortalwombat to provide extrordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.
Many thanks also to https://github.com/drmortalwombat to provide extraordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.

- C128 Programmers Reference Guide: For the basic VDC register routines and VDC code inspiration
http://www.zimmers.net/anonftp/pub/cbm/manuals/c128/C128_Programmers_Reference_Guide.pdf
Expand Down
16 changes: 8 additions & 8 deletions include/bank_minimal.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Code and resources from others used:

https://github.com/drmortalwombat/oscar64

Many thanks also to https://github.com/drmortalwombat to provide extrordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.
Many thanks also to https://github.com/drmortalwombat to provide extraordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.

- Screens used in the demo made with my own VDC Screen Editor.

Expand Down Expand Up @@ -93,7 +93,7 @@ char bootdevice;
char getcurrentdevice()
// Return last used device number for IO operations. Default on 8 if still zero.
{
// Feading zeropage address containg current device number ($BA)
// Feading zeropage address containing current device number ($BA)
char curunit = *(char *)0xba;

// Default on 8 if still zero
Expand Down Expand Up @@ -127,7 +127,7 @@ void bnk_init()
// Set 8Kb shared memory size
// So set MMU Ram Configuration Register at:
// - bit 0-1: %01 for 4 KB common RAM
// - bit 2-3: %01 for bootom of RAM bank 0 is common
// - bit 2-3: %01 for bottom of RAM bank 0 is common
// - bit 7: $0 for VIC RAM in bank 0
xmmu.rcr = 0x05;

Expand All @@ -137,12 +137,12 @@ void bnk_init()
}

void bnk_exit()
// Retsore to default situtation for shared memory
// Retsore to default situation for shared memory
{
// Set 8Kb shared memory size
// So set MMU Ram Configuration Register at:
// - bit 0-1: %00 for 1 KB common RAM
// - bit 2-3: %01 for bootom of RAM bank 0 is common
// - bit 2-3: %01 for bottom of RAM bank 0 is common
// - bit 7: $0 for VIC RAM in bank 0
xmmu.rcr = 0x04;
}
Expand Down Expand Up @@ -228,12 +228,12 @@ bool bnk_load(char device, char bank, const char *start, const char *fname)
bool bnk_save(char device, char bank, const char *start, const char *end, const char *fname)
// Save from the specified bank
{
char succes;
char success;
krnio_setbnk(bank, 0);
krnio_setnam(fname);
succes = krnio_save(device, start, end);
success = krnio_save(device, start, end);
krnio_setbnk(0, 0);
return succes;
return success;
}

#pragma code(code)
Expand Down
2 changes: 1 addition & 1 deletion include/bank_minimal.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Code and resources from others used:

https://github.com/drmortalwombat/oscar64

Many thanks also to https://github.com/drmortalwombat to provide extrordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.
Many thanks also to https://github.com/drmortalwombat to provide extraordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.

- Screens used in the demo made with my own VDC Screen Editor.

Expand Down
22 changes: 11 additions & 11 deletions include/banking.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Code and resources from others used:

https://github.com/drmortalwombat/oscar64

Many thanks also to https://github.com/drmortalwombat to provide extrordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.
Many thanks also to https://github.com/drmortalwombat to provide extraordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.

- Screens used in the demo made with my own VDC Screen Editor.

Expand Down Expand Up @@ -107,7 +107,7 @@ struct Directory cwd;
char getcurrentdevice()
// Return last used device number for IO operations. Default on 8 if still zero.
{
// Feading zeropage address containg current device number ($BA)
// Feading zeropage address containing current device number ($BA)
char curunit = *(char *)0xba;

// Default on 8 if still zero
Expand Down Expand Up @@ -141,7 +141,7 @@ void bnk_init()
// Set 8Kb shared memory size
// So set MMU Ram Configuration Register at:
// - bit 0-1: %10 for 8 KB common RAM
// - bit 2-3: %01 for bootom of RAM bank 0 is common
// - bit 2-3: %01 for bottom of RAM bank 0 is common
// - bit 7: $0 for VIC RAM in bank 0
xmmu.rcr = 0x06;

Expand All @@ -151,12 +151,12 @@ void bnk_init()
}

void bnk_exit()
// Retsore to default situtation for shared memory
// Retsore to default situation for shared memory
{
// Set 8Kb shared memory size
// So set MMU Ram Configuration Register at:
// - bit 0-1: %00 for 1 KB common RAM
// - bit 2-3: %01 for bootom of RAM bank 0 is common
// - bit 2-3: %01 for bottom of RAM bank 0 is common
// - bit 7: $0 for VIC RAM in bank 0
xmmu.rcr = 0x04;
}
Expand Down Expand Up @@ -272,7 +272,7 @@ void bnk_cpyfromvdc(char dcr, volatile char *dp, unsigned vdcsrc, unsigned size)

void bnk_redef_charset(unsigned vdcdest, char scr, volatile char *sp, unsigned size)
// Function to copy charset definition from normal memory to VDC
// Input: Source normal memory address and bank config where charset defintion resides,
// Input: Source normal memory address and bank config where charset definition resides,
// Destination address in VDC memory,
// Numbers of characters to redefine.
// Takes charset definition of 8 bytes per character as input.
Expand Down Expand Up @@ -321,7 +321,7 @@ void freeDir()
}

void dir_close(char lfn)
// Closse a directory opened for reading
// Close a directory opened for reading
{
// Reset channels
krnio_clrchn();
Expand Down Expand Up @@ -374,7 +374,7 @@ char dir_open(char lfn, unsigned char device)
}
}

// Return error code or 0 on succcess
// Return error code or 0 on success
return error;
}

Expand Down Expand Up @@ -768,14 +768,14 @@ bool bnk_load(char device, char bank, const char *start, const char *fname)
bool bnk_save(char device, char bank, const char *start, const char *end, const char *fname)
// Save from the specified bank
{
char succes;
char success;
krnio_setbnk(bank, 0);
krnio_setnam(fname);

succes = krnio_save(device, start, end);
success = krnio_save(device, start, end);

krnio_setbnk(0, 0);
return succes;
return success;
}

int bnk_io_read(char fnum, char cr, char * data, int num)
Expand Down
2 changes: 1 addition & 1 deletion include/banking.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Code and resources from others used:

https://github.com/drmortalwombat/oscar64

Many thanks also to https://github.com/drmortalwombat to provide extrordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.
Many thanks also to https://github.com/drmortalwombat to provide extraordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.

- Screens used in the demo made with my own VDC Screen Editor.

Expand Down
2 changes: 1 addition & 1 deletion include/defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#define MACOSTART 0x1300 // Start of machine code area
#define MACOSIZE 0x0800 // Length of machine code area

/* Bank 0 save data adress mapping */
/* Bank 0 save data address mapping */
#define OVERLAYBANK0 0xC000 // Start address overlay storage bank 0

/* Bank 1 memory addresses mapping */
Expand Down
2 changes: 1 addition & 1 deletion include/peekpoke.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Code and resources from others used:

https://github.com/drmortalwombat/oscar64

Many thanks also to https://github.com/drmortalwombat to provide extrordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.
Many thanks also to https://github.com/drmortalwombat to provide extraordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.

- Screens used in the demo made with my own VDC Screen Editor.

Expand Down
8 changes: 4 additions & 4 deletions include/vdc_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Code and resources from others used:

https://github.com/drmortalwombat/oscar64

Many thanks also to https://github.com/drmortalwombat to provide extrordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.
Many thanks also to https://github.com/drmortalwombat to provide extraordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.

- Screens used in the demo made with my own VDC Screen Editor.

Expand Down Expand Up @@ -182,7 +182,7 @@ void vdc_set_multab()
}

char vdc_set_mode(char mode)
// Function to set one of the preset VDC modes. Returns 1=succes, 0=fail.
// Function to set one of the preset VDC modes. Returns 1=success, 0=fail.
{
char index = 0;
unsigned val;
Expand Down Expand Up @@ -391,7 +391,7 @@ void vdc_scroll_copy(unsigned dest, unsigned src, char lines, char length)
}

void vdc_wipe_mem()
// Function to wipe VDC memory to avoid visible screen corruption on VDC mem lauout change
// Function to wipe VDC memory to avoid visible screen corruption on VDC mem layout change
{
unsigned address = 0;

Expand Down Expand Up @@ -496,7 +496,7 @@ void vdc_prints_attr(char x, char y, const char *string, char attr)
unsigned address = vdc_coords(x, y);
char len = strlen(string);

// Check for legth. Return if 0 and use printc in case of only one char
// Check for length. Return if 0 and use printc in case of only one char
if(!len)
{
return;
Expand Down
2 changes: 1 addition & 1 deletion include/vdc_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Code and resources from others used:

https://github.com/drmortalwombat/oscar64

Many thanks also to https://github.com/drmortalwombat to provide extrordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.
Many thanks also to https://github.com/drmortalwombat to provide extraordinary support and tips for making this and adapting Oscar64 to my needs faster than I could ask it.

- Screens used in the demo made with my own VDC Screen Editor.

Expand Down
Loading