Difference between revisions of "BrunWord"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Technical)
(Technical)
 
(8 intermediate revisions by the same user 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 (&DFXX) 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.
 
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:
 
The byte sent to this port is decoded as:
x0rrrrrr
+
 +
x0rrrrrr
  
 
  Bit 6 must be 0.
 
  Bit 6 must be 0.
Line 52: Line 112:
 
  Bits 5..0 (rrrrrr) define the ROM page to show.  
 
  Bits 5..0 (rrrrrr) define the ROM page to show.  
  
Brunword pages appear in ROM select positions 1,2,3 only. They are repeated every 64. No other pages of the Brunword ROM can be selected in this way.
+
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 upper ROM enable/disable mechanism works with them, and so does the write through to RAM. They operate just like standard CPC Roms.
  
Line 58: Line 120:
  
 
The following applies:
 
The following applies:
x11bbb0pp
+
 
 +
x11bbbepp
  
 
bbb define the 64K Bank. pp define the 16K page within that bank.
 
bbb define the 64K Bank. pp define the 16K page within that bank.
 
bit 7 is ignored.
 
bit 7 is ignored.
Bit 6 and 5 must be 1. Bit 2 must be 0.
+
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
  
All pages of the Brunword ROM can be selected this way including 1,2,3. The upper ROM enable/disable mechanism doesn't work, so the ROM data appears in the range &4000-&7fff until another ROM selection is made. I (Arnoldemu) can't yet determine if the RAM write through works either. The page is always visible in the range &4000-&7fff.
+
Disable Brunword ROM in the range &c000-&ffff:
  
The values repeat every 128. If bit 6,5 and 2 are not defined as above then no page is selected, the ROM page is not visible and it works just like normal RAM.
+
call kl_u_rom_disable
  
 
'''MK4'''
 
'''MK4'''
Line 108: Line 199:
  
 
* [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 12:18, 16 December 2012

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

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 emulator or rom board, because there is no support for the clever ROM paging system used. It seems to be a kind of hardware copy protection.

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

Manual

Downloads

Links