Difference between revisions of "BrunWord"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Technical)
 
(19 intermediate revisions by 4 users not shown)
Line 35: Line 35:
  
 
===Technical===
 
===Technical===
 +
'''Eight Bit Status Port'''
 +
 +
The Eight Bit Status Port connects to the printer connector of the CPC.
 +
 +
On the top side, 12 pins are connected. From left to right. These are strobe, D0-D7, acknowledge, busy and paper out, the remaining 5 pins are not connected.
 +
On the underside, 10 pins are all connected together and are "signal ground", 7 pins are not connected.
 +
 +
"no paper" is an active high signal, so it is high or 1 when there is no paper.
 +
"busy" is an active high signal, and will be set for busy, offline or an error.
 +
 +
The software uses databits D1 and D2.
 +
 +
The following code is used:
 +
 +
LD C,&0
 +
RES 2,A
 +
CALL READ_STATUS
 +
SET 2,A
 +
CALL READ_STATUS
 +
CALL READ_STATUS
 +
LD A,C
 +
AND A,&3C
 +
 +
.
 +
.
 +
.
 +
 
 +
READ_STATUS:
 +
LD B,&EF
 +
RES 1,A
 +
OUT (C),A
 +
SET 1,A
 +
OUT (C),A
 +
LD B,&F5
 +
PUSH AF
 +
IN A,(C)
 +
AND A,&40
 +
OR A,C
 +
LD C,A
 +
POP AF
 +
RRC C
 +
RET
 +
 +
 +
3 busy states are recorded.
 +
 +
3 values are checked.
 +
 +
&00 -> on line, has paper
 +
&08 -> on line, no paper
 +
&28 -> off line
 +
 +
other...?
 +
 +
The interface is supported by Brunword Elite and Brunword ROM version.
 +
 +
 
'''MK2'''
 
'''MK2'''
 +
 +
The MK2 module connects to the expansion connector of the CPC.
  
 
ROM version has a size of 256K. It is split into 16K pages. 2 Pages are standard CPC roms, one of which is a "extension rom".
 
ROM version has a size of 256K. It is split into 16K pages. 2 Pages are standard CPC roms, one of which is a "extension rom".
Line 41: Line 100:
 
Part of the Brunword word processor is copied into RAM. This is done by it's "extension rom".
 
Part of the Brunword word processor is copied into RAM. This is done by it's "extension rom".
  
The ROM Select port (&DF00) is decoded and has 2 roles.  
+
The ROM Select port (&DFXX) is decoded and has 2 roles. (It is decoded in the standard way, with bit 13 of the port address must be set to 0).
 +
 
 +
First is to select which ROM page appears in the range &C000-&FFFF of the Z80's address space.
 +
 
 +
The byte sent to this port is decoded as:
 +
 +
x0rrrrrr
 +
 
 +
Bit 6 must be 0.
 +
Bit 7 is ignored.
 +
Bits 5..0 (rrrrrr) define the ROM page to show.
 +
 
 +
Brunword pages 1,2,3 appear in ROM select positions 1,2,3 respectively. No other pages can be shown using this method.
 +
They are repeated every 64 "ROM" slots.
 +
 
 +
The upper ROM enable/disable mechanism works with them, and so does the write through to RAM. They operate just like standard CPC Roms.
 +
 
 +
The second role makes a page visible in the range &4000-&7FFF of the Z80's address space.
 +
 
 +
The following applies:
 +
 
 +
x11bbbepp
 +
 
 +
bbb define the 64K Bank. pp define the 16K page within that bank.
 +
bit 7 is ignored.
 +
Bit 6 and 5 must be 1.
 +
 
 +
Bit 2 is 0 to make the ROM page visible in the range &4000-&7fff.
 +
Bit 2 is 1 to disable the ROM page in the range &4000-&7fff.
 +
 
 +
All pages of the Brunword ROM can be selected this way. The upper ROM enable/disable mechanism doesn't work, it makes no difference to the visibility of the ROM data here. The ROM visibility is only controlled with bit 2 of the data. RAM write through works.
 +
 
 +
The values repeat every 128.
 +
 
 +
The pages can appear in both &c000-&ffff and &4000-&ffff.
 +
 
 +
Examples:
 +
 
 +
Enable page 1 of the Brunword ROM in the range &4000-&7fff.
 +
 
 +
ld bc,&df00+%01100001
 +
out (c),c
 +
 
 +
Disable Brunword ROM in the range &4000-&7fff. (Bits 4,3 and 1,0 are ignored)
 +
 
 +
ld bc,&df00+%01100100
 +
out (c),c
 +
 
 +
Enable page 1 of the Brunword ROM in the range &c000-&ffff;
 +
 
 +
call kl_u_rom_enable
 +
 
 +
ld bc,&df01
 +
out (c),c
  
First is to select which ROM page appears in the range &C000-&FFFF of the Z80's address space. (It seems bit 7,6,5,4 must be 0).
+
Disable Brunword ROM in the range &c000-&ffff:
Bits 3..0 are decoded as the page number. Page 1 and 2 only seem to be visible at this time.
+
  
The second role (when bit 5,4 are used), makes a page visible in the range &4000-&FFFF of the Z80's address space.
+
call kl_u_rom_disable
Bit 5 seems to be rom enable/disable, bit 4 is set for the second role (0 for other), and bits 3..0 are the page number.
+
  
The exact decoding of the ROM select port is unknown.
+
Arnold CPC emulator provides support for BrunWord MK2.
The exact function of all the data bits is not known.
+
  
 
'''MK4'''
 
'''MK4'''
Line 56: Line 165:
 
This version was published in 1995.
 
This version was published in 1995.
  
The ROM has a size of 512KBs, split in 16KBs pages (32). The pages 1, 2 and 3 ($C1, $C2 and $C3 are the page number for the hardware) are standard CPC roms and they can paged in the normal $C000-$FFFF range.  
+
The ROM has a size of 512KBs, split in 16KBs pages (32). The pages 1, 2 and 3 ($C1, $C2 and $C3 are the page number for the hardware) are standard CPC ROMs and they can be paged in at the normal $C000-$FFFF range.  
  
 
The content of these 32 pages are:
 
The content of these 32 pages are:
Line 65: Line 174:
 
* 31 ($FB): Examples.
 
* 31 ($FB): Examples.
  
The ROM includes hardware to decode the ROM Select port ($DF00) and make visible all the 32 pages (included the three previous) in the range $4000-$7FFF, the RAM page under this range is not disable and can be written normally (this was used to dump the pages).
+
The ROM includes hardware to decode the ROM Select port ($DFXX) and make visible all the 32 pages (included the three previous) in the range $4000-$7FFF, the RAM page under this range is not disable and can be written normally (this was used to dump the pages).
  
 
For simplify the page number to send to the ROM Select port, we are going to consider that the pages are grouped in 64 KBs banks (8). With that in mind, the page number to send has the next format:
 
For simplify the page number to send to the ROM Select port, we are going to consider that the pages are grouped in 64 KBs banks (8). With that in mind, the page number to send has the next format:
Line 72: Line 181:
 
The two most weight bits need to be at 1 to make visible the page; with the three bits '''bbb''', we select the 64 KBs bank; the next bit need to be 0; and with the two less weight bits, we select which of the four pages of the bank is going to be visible.
 
The two most weight bits need to be at 1 to make visible the page; with the three bits '''bbb''', we select the 64 KBs bank; the next bit need to be 0; and with the two less weight bits, we select which of the four pages of the bank is going to be visible.
  
In this moment, Brunword can not work in any emulator or rom board, because there is not support to the clever rom paging system used.
+
At this time, Brunword can not be used in any rom board, because there is no support for the clever ROM paging system used. It seems to be a kind of hardware copy protection. MAME is the only CPC emulator that supports the BrunWord Elite MK4 roms.
  
I would like to thank CPCManiaco by buying this fantastic software in 1995 and help me to preserve it in 2012.
+
I (SyX) would like to thank CPCManiaco by buying this fantastic software in 1995 and help me to preserve it in 2012.
  
 
== Manual ==
 
== Manual ==
  
 
* [[Media:BrunWord 6128 Manual.pdf|BrunWord 464/6128 (Brunning Software) Manual]] {{EN}} {{PDF}}
 
* [[Media:BrunWord 6128 Manual.pdf|BrunWord 464/6128 (Brunning Software) Manual]] {{EN}} {{PDF}}
 +
* [[Media:BrunWord ROM (Brunning Software) Manual.pdf|BrunWord ROM (Brunning Software) Manual]] {{EN}} {{PDF}}
 +
* [[Media:BrunWord ROM (Brunning Software) MK4 Supplement.pdf|BrunWord ROM (Brunning Software) MK4 Supplement]] {{EN}} {{PDF}}
  
 
== Downloads ==
 
== Downloads ==
Line 90: Line 201:
  
 
* [http://www.cpc-power.com/index.php?page=detail&num=4516 ''BrunWord'' from CPC-Power]
 
* [http://www.cpc-power.com/index.php?page=detail&num=4516 ''BrunWord'' from CPC-Power]
 +
* [http://www.brunningsoftware.co.uk Brunning Software]
  
 
[[Category:Applications]] [[Category:Manual]]
 
[[Category:Applications]] [[Category:Manual]]

Latest revision as of 14:21, 1 June 2024

BrunWord is a word-processor, spelling checker and Datafile from Brunning Software.

Versions

  • BrunWord 6128 requires 128K RAM (works on CPC 6128, or on CPC 464 with Standard Memory Expansions). Available as Disc-version and ROM-version (MK4 is the last ROM version known, copyright 1995).
  • BrunWord 464 works on any CPC 464, 664, or 6128. According to the manual, this comes on disc, too, ie. not on cassette (?)
  • Newer/older versions - early versions (1985) didn't have the spell check

Covers

Disc

ROM Cartridge and 8bit Status Port

Technical

Eight Bit Status Port

The Eight Bit Status Port connects to the printer connector of the CPC.

On the top side, 12 pins are connected. From left to right. These are strobe, D0-D7, acknowledge, busy and paper out, the remaining 5 pins are not connected. On the underside, 10 pins are all connected together and are "signal ground", 7 pins are not connected.

"no paper" is an active high signal, so it is high or 1 when there is no paper. "busy" is an active high signal, and will be set for busy, offline or an error.

The software uses databits D1 and D2.

The following code is used:

LD C,&0
RES 2,A
CALL READ_STATUS
SET 2,A
CALL READ_STATUS
CALL READ_STATUS
LD A,C
AND A,&3C

.
.
.
 
READ_STATUS:
LD B,&EF
RES 1,A
OUT (C),A
SET 1,A
OUT (C),A
LD B,&F5
PUSH AF
IN A,(C)
AND A,&40
OR A,C
LD C,A
POP AF
RRC C
RET


3 busy states are recorded.

3 values are checked.

&00 -> on line, has paper &08 -> on line, no paper &28 -> off line

other...?

The interface is supported by Brunword Elite and Brunword ROM version.


MK2

The MK2 module connects to the expansion connector of the CPC.

ROM version has a size of 256K. It is split into 16K pages. 2 Pages are standard CPC roms, one of which is a "extension rom".

Part of the Brunword word processor is copied into RAM. This is done by it's "extension rom".

The ROM Select port (&DFXX) is decoded and has 2 roles. (It is decoded in the standard way, with bit 13 of the port address must be set to 0).

First is to select which ROM page appears in the range &C000-&FFFF of the Z80's address space.

The byte sent to this port is decoded as:

x0rrrrrr
Bit 6 must be 0.
Bit 7 is ignored.
Bits 5..0 (rrrrrr) define the ROM page to show. 

Brunword pages 1,2,3 appear in ROM select positions 1,2,3 respectively. No other pages can be shown using this method. They are repeated every 64 "ROM" slots.

The upper ROM enable/disable mechanism works with them, and so does the write through to RAM. They operate just like standard CPC Roms.

The second role makes a page visible in the range &4000-&7FFF of the Z80's address space.

The following applies:

x11bbbepp

bbb define the 64K Bank. pp define the 16K page within that bank. bit 7 is ignored. Bit 6 and 5 must be 1.

Bit 2 is 0 to make the ROM page visible in the range &4000-&7fff. Bit 2 is 1 to disable the ROM page in the range &4000-&7fff.

All pages of the Brunword ROM can be selected this way. The upper ROM enable/disable mechanism doesn't work, it makes no difference to the visibility of the ROM data here. The ROM visibility is only controlled with bit 2 of the data. RAM write through works.

The values repeat every 128.

The pages can appear in both &c000-&ffff and &4000-&ffff.

Examples:

Enable page 1 of the Brunword ROM in the range &4000-&7fff.

ld bc,&df00+%01100001 
out (c),c

Disable Brunword ROM in the range &4000-&7fff. (Bits 4,3 and 1,0 are ignored)

ld bc,&df00+%01100100 
out (c),c

Enable page 1 of the Brunword ROM in the range &c000-&ffff;

call kl_u_rom_enable
ld bc,&df01
out (c),c

Disable Brunword ROM in the range &c000-&ffff:

call kl_u_rom_disable

Arnold CPC emulator provides support for BrunWord MK2.

MK4

This version was published in 1995.

The ROM has a size of 512KBs, split in 16KBs pages (32). The pages 1, 2 and 3 ($C1, $C2 and $C3 are the page number for the hardware) are standard CPC ROMs and they can be paged in at the normal $C000-$FFFF range.

The content of these 32 pages are:

  • 0 ($C0): Tutorial.
  • 1 ($C1), 2 ($C2) and 3 ($C3): Brunword and Info-Script ($C3 includes references of the font and dictionary pages).
  • 4 ($C8), 5 ($C9), 6 ($CA) and 7 ($CB): Dictionary.
  • 8 - 30 ($D0-$D3, $D8-$DB, $E0-$E3, $E8-$EB, $F0-$F3, $F8-$FA): 23 fonts, one for page.
  • 31 ($FB): Examples.

The ROM includes hardware to decode the ROM Select port ($DFXX) and make visible all the 32 pages (included the three previous) in the range $4000-$7FFF, the RAM page under this range is not disable and can be written normally (this was used to dump the pages).

For simplify the page number to send to the ROM Select port, we are going to consider that the pages are grouped in 64 KBs banks (8). With that in mind, the page number to send has the next format: %11bbb0pp

The two most weight bits need to be at 1 to make visible the page; with the three bits bbb, we select the 64 KBs bank; the next bit need to be 0; and with the two less weight bits, we select which of the four pages of the bank is going to be visible.

At this time, Brunword can not be used in any rom board, because there is no support for the clever ROM paging system used. It seems to be a kind of hardware copy protection. MAME is the only CPC emulator that supports the BrunWord Elite MK4 roms.

I (SyX) would like to thank CPCManiaco by buying this fantastic software in 1995 and help me to preserve it in 2012.

Manual

Downloads

Links