Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

The man on tops walks a lonely street; the "chain" of command is often a noose.


devel / comp.os.cpm / Re: PMATE 3.21: Fixes for bugs found while playing with it ...

SubjectAuthor
* PMATE 3.21: Fixes for bugs found while playing with it ...Martin
+* Re: PMATE 3.21: Fixes for bugs found while playing with it ...Tony Nicholson
|+- Re: PMATE 3.21: Fixes for bugs found while playing with it ...Martin
|`- Re: PMATE 3.21: Fixes for bugs found while playing with it ...Martin
`- Re: PMATE 3.21: Fixes for bugs found while playing with it ...Martin

1
PMATE 3.21: Fixes for bugs found while playing with it ...

<sn7bp4$1vc5$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=2910&group=comp.os.cpm#2910

  copy link   Newsgroups: comp.os.cpm
Path: i2pn2.org!rocksolid2!i2pn.org!aioe.org!i257HaKHQACN0Hd/ICQVfw.user.46.165.242.75.POSTED!not-for-mail
From: this.is....@so.its.invalid (Martin)
Newsgroups: comp.os.cpm
Subject: PMATE 3.21: Fixes for bugs found while playing with it ...
Date: Fri, 19 Nov 2021 06:12:37 +0100
Organization: Aioe.org NNTP Server
Message-ID: <sn7bp4$1vc5$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="64901"; posting-host="i257HaKHQACN0Hd/ICQVfw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:20.0) Gecko/20100101 SeaMonkey/2.17.1
X-Notice: Filtered by postfilter v. 0.9.2
 by: Martin - Fri, 19 Nov 2021 05:12 UTC

Hi all!

PMATE *IS* the editor magically touching me :-)

As a student I constantly dreamed of sometimes getting it,
but it never happened, it was out of reach for "hobbyists".

Now, the great effort of PMATE lovers made it possible.
Thanks to all of you!

It took a lot of time to discover enough of its inner workings,
but it was *REALLY* worth it. It's like a "Magic Machine"!

I just let the fixes out for every PMATE lover to know,
without a lot descriptions. Just ask :-)

Have fun!
Martin

; PMATE 3.21
; CONPMATE.COM
< old
---
> new

========

; BUG: If the FD auxin file status is active, XI without
; BUG: filename tries to read from an invalid auxin file

< 0403 32 5c 41 LD (415c),A
---
> 0403 cd ee 51 CALL 51ee

< 51ee 00 00 00 00 00 00 00 00
---
> 51ee 32 5c 41 LD (415c),A ; set FD current input file status unused
> 51f1 97 SUB A
> 51f2 32 4d 41 LD (414d),A ; set FD auxin file inactive
> 51f5 c9 RET

========

; BUG: Command XC performs no I/O FILE CHECK
; BUG: If issued without input-output file, it overwrites
; BUG: page zero through the undefined sector buffer pointer

< 2854 cd 0e 3b CALL 3b0e ; select FD output file into FD current output file
< 2857 cd e3 3e CALL 3ee3 ; flush buffer, close file
< 285a 21 e2 37 LD HL,37e2 ; "DISK FULL"
< 285d da cf 35 JP C,35cf ; error
< 2860 cd 83 1f CALL 1f83 ; reset input-output handling
< 2863 37 SCF
< 2864 c9 RET
---
> 2854 3a 13 39 LD A,(3913) ; input-output file
> 2857 a7 AND A
> 2858 ca 61 28 JP Z,2861 ; no
> 285b cd 0e 3b CALL 3b0e ; select FD output file into FD current output file
> 285e cd e3 3e CALL 3ee3 ; flush buffer, close file
> 2861 c3 07 28 JP 2807
> 2864 00 NOP

========

; BUG: VIDIL is checked instead of VIDDL

< 4af5 67 01
---
> 4af5 70 01

Re: PMATE 3.21: Fixes for bugs found while playing with it ...

<d021a288-c549-4eca-b09a-0a1abfceb974n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=2914&group=comp.os.cpm#2914

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a37:a193:: with SMTP id k141mr31183658qke.88.1637359239140;
Fri, 19 Nov 2021 14:00:39 -0800 (PST)
X-Received: by 2002:a54:4190:: with SMTP id 16mr2866616oiy.139.1637359238851;
Fri, 19 Nov 2021 14:00:38 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Fri, 19 Nov 2021 14:00:38 -0800 (PST)
In-Reply-To: <sn7bp4$1vc5$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2403:5807:8025:0:c537:edad:81a8:660c;
posting-account=5wnjpAoAAABrhNpKTP0a5hOqJUBnLT3d
NNTP-Posting-Host: 2403:5807:8025:0:c537:edad:81a8:660c
References: <sn7bp4$1vc5$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d021a288-c549-4eca-b09a-0a1abfceb974n@googlegroups.com>
Subject: Re: PMATE 3.21: Fixes for bugs found while playing with it ...
From: agn...@gmail.com (Tony Nicholson)
Injection-Date: Fri, 19 Nov 2021 22:00:39 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 21
 by: Tony Nicholson - Fri, 19 Nov 2021 22:00 UTC

On Friday, November 19, 2021 at 4:13:12 PM UTC+11, Martin wrote:
> Hi all!
>
> PMATE *IS* the editor magically touching me :-)
>
> As a student I constantly dreamed of sometimes getting it,
> but it never happened, it was out of reach for "hobbyists".

Thanks for these Martin.

Have you done a disassembly of CONPMATE?

It's one of those things I've been waiting for "a round tuit" to
get started on.

Another bug I've noticed (but done nothing about) is that sometimes
a reverse scroll (Ctrl-U) when the buffer must be read from disk
sometimes corrupts the text with what looks like a repeated copy
of the same sector of data. When this happens I just quit and
restart (and perhaps have to re-apply some edits).

Tony

Re: PMATE 3.21: Fixes for bugs found while playing with it ...

<sn9olf$tq8$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=2915&group=comp.os.cpm#2915

  copy link   Newsgroups: comp.os.cpm
Path: i2pn2.org!i2pn.org!aioe.org!q+nLHSmpsc5iS0pcq9FMpg.user.46.165.242.75.POSTED!not-for-mail
From: this.is....@so.its.invalid (Martin)
Newsgroups: comp.os.cpm
Subject: Re: PMATE 3.21: Fixes for bugs found while playing with it ...
Date: Sat, 20 Nov 2021 04:04:47 +0100
Organization: Aioe.org NNTP Server
Message-ID: <sn9olf$tq8$1@gioia.aioe.org>
References: <sn7bp4$1vc5$1@gioia.aioe.org> <d021a288-c549-4eca-b09a-0a1abfceb974n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="30536"; posting-host="q+nLHSmpsc5iS0pcq9FMpg.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:20.0) Gecko/20100101 SeaMonkey/2.17.1
X-Notice: Filtered by postfilter v. 0.9.2
 by: Martin - Sat, 20 Nov 2021 03:04 UTC

Am 11/19/2021 11:00 PM, Tony Nicholson schrieb:
> On Friday, November 19, 2021 at 4:13:12 PM UTC+11, Martin wrote:
>> Hi all!
>>
>> PMATE *IS* the editor magically touching me :-)
>>
>> As a student I constantly dreamed of sometimes getting it,
>> but it never happened, it was out of reach for "hobbyists".
>
> Thanks for these Martin.
>
> Have you done a disassembly of CONPMATE?
>
> It's one of those things I've been waiting for "a round tuit" to
> get started on.
>
> Another bug I've noticed (but done nothing about) is that sometimes
> a reverse scroll (Ctrl-U) when the buffer must be read from disk
> sometimes corrupts the text with what looks like a repeated copy
> of the same sector of data. When this happens I just quit and
> restart (and perhaps have to re-apply some edits).
>
> Tony
>

Hi Toni!

I would call it a partial disassembly with a lot of annotations.
Clearly not yet in a form suitable for re-assembly.

Whenever I have time, I look over it trying to recognize more
code sequences and match them with the functionality described
in the manuals.

Slowly more of the listing gets annotations, and I are constantly update
them to be refrlect my increasing knowledge.

I often begin by jumping over all occurances of a single memory location
to get an idea of where and how it is used.

This could probably help you a little bit to get into it :-)

The main command processing rotine
Command and Subcommand Tables
Predfined Commands
Instant Commands
I/O Subsystem Variables

; Reset entry point
0b9b 2a f3 01 LD HL,(01f3) ; start of command line
0b9e 23 INC HL
0b9f 22 f5 01 LD (01f5),HL ; end of command line
0ba2 36 00 LD (HL),000
0ba4 3e 0c LD A,00c ; Init Buffer Base Index
0ba6 32 d8 01 LD (01d8),A
0ba9 3a 24 01 LD A,(0124) ; INITMD: COMMAND (0), INS (1), OVR (2)
0bac 32 29 39 LD (3929),A ; Edit Mode

; command prompt
0baf 31 ef 03 LD SP,03ef
0bb2 cd 9f 04 CALL 049f ; (BASE+#1) = (BASE+#2)
0bb5 a4 ; 0221 ; Parenthesis SP
0bb6 a0 ; 021d
0bb7 cd 9f 04 CALL 049f ; (BASE+#1) = (BASE+#2)
0bba aa ; 0227 ; Iteration SP
0bbb a6 ; 0223
0bbc cd 9f 04 CALL 049f ; (BASE+#1) = (BASE+#2)
0bbf b2 ; 022f ; Subroutine SP
0bc0 ae ; 022b
0bc1 cd 9f 04 CALL 049f ; (BASE+#1) = (BASE+#2)
0bc4 ba ; 0237 ; Number SP
0bc5 b6 ; 0233
0bc6 cd 8d 04 CALL 048d ; (BASE+#3) = (BASE+#1) - (BASE+#2)
0bc9 78 ; 01f5 ; end of command line
0bca 76 ; 01f3 ; start of command line
0bcb 8e ; 020b ; Exec Offset

0bcc 97 SUB A
0bcd 32 fe 38 LD (38fe),A ; current mode
0bd0 32 10 39 LD (3910),A ; trace mode
0bd3 cd 9f 04 CALL 049f ; (BASE+#1) = (BASE+#2)
0bd6 3c ; 01b9 ; saved numeric argument
0bd7 3a ; 01b7 ; numeric argument
0bd8 3a 0f 39 LD A,(390f) ; startup macros
0bdb 32 2a 39 LD (392a),A ; wait for keypress
0bde a7 AND A
0bdf ca 06 0c JP Z,0c06 ; no

0be2 97 SUB A ; startup macros done
0be3 32 0f 39 LD (390f),A

0be6 2a 85 01 LD HL,(0185) ; PERMANENT MACROS
0be9 7e LD A,(HL)
0bea 23 INC HL
0beb fe 13 CP 013
0bed ca f3 0b JP Z,0bf3 ; Startup Macro defined
0bf0 21 eb 0c LD HL,0ceb ; Default Startup Macro
0bf3 cd 7e 16 CALL 167e ; Execute Macro

0bf6 2a 85 01 LD HL,(0185) ; PERMANENT MACROS
0bf9 7e LD A,(HL) ; ONLY FIRST ENTRY
0bfa fe 09 CP 009
0bfc c2 03 0c JP NZ,0c03 ; not Initial Macro
0bff 23 INC HL
0c00 cd 7e 16 CALL 167e ; Execute Macro

0c03 cd 1d 4c CALL 4c1d ; video clear screen

0c06 2a 27 01 LD HL,(0127) ; user command table
0c09 cd 7e 16 CALL 167e ; Execute Macro

0c0c cd 7d 4e CALL 4e7d ; show editor status
0c0f 3a 29 39 LD A,(3929) ; Edit Mode
0c12 a7 AND A
0c13 ca 3c 0c JP Z,0c3c ; command mode

0c16 3a 2a 39 LD A,(392a) ; wait for keypress
0c19 a7 AND A
0c1a ca 26 0c JP Z,0c26 ; no
0c1d cd c9 49 CALL 49c9 ; incremental screen update
0c20 cd 56 51 CALL 5156 ; chack console input
0c23 d2 1d 0c JP NC,0c1d ; no key pressed

0c26 3a 29 39 LD A,(3929) ; Edit Mode
0c29 fe 02 CP 002
0c2b 3e 00 LD A,000 ; set command mode
0c2d 32 29 39 LD (3929),A ; Edit Mode
0c30 ca 39 0c JP Z,0c39 ; overtype mode

0c33 cd 5e 31 CALL 315e ; go to insert mode
0c36 c3 3c 0c JP 0c3c

0c39 cd 6e 31 CALL 316e ; go to overtype mode

0c3c 06 02 LD B,002 ; init ESC counter

; command processing
0c3e cd 4d 4f CALL 4f4d ; input
0c41 d2 4a 0c JP NC,0c4a ; no instant command

0c44 cd de 0c CALL 0cde ; handle instant command
0c47 c3 3e 0c JP 0c3e

0c4a 4f LD C,A
0c4b 78 LD A,B
0c4c fe 02 CP 002
0c4e 79 LD A,C
0c4f ca 82 0c JP Z,0c82 ; two ESC seen

0c52 fe 7f CP 07f
0c54 ca aa 0c JP Z,0caa ; DEL
0c57 04 INC B
0c58 fe 1b CP 01b
0c5a ca 5f 0c JP Z,0c5f ; ESC

0c5d 06 00 LD B,000 ; reset ESC count

0c5f cd ae 04 CALL 04ae ; cmpw (BASE+#1),(BASE+#2)
0c62 78 ; 01f5 ; end of command line
0c63 06 ; 0183 ; last text location
0c64 d2 d8 0c JP NC,0cd8 ; (BASE+#1) >= (BASE+#2), error

0c67 cd c9 04 CALL 04c9 ; incw (BASE+#1)
0c6a 78 ; 01f5 ; end of command line
0c6b cd 6f 0b CALL 0b6f ; Increment Exec Offset
0c6e 2a f5 01 LD HL,(01f5) ; end of command line
0c71 16 00 LD D,000
0c73 72 LD (HL),D ; store zero terminator
0c74 2b DEC HL
0c75 77 LD (HL),A ; store command
0c76 cd c2 4e CALL 4ec2 ; update command line
0c79 78 LD A,B
0c7a fe 02 CP 002
0c7c ca f1 0c JP Z,0cf1 ; if second ESC, execute command line
0c7f c3 3e 0c JP 0c3e

0c82 fe 1b CP 01b
0c84 c2 8e 0c JP NZ,0c8e ; not ESC after two ESCs

0c87 97 SUB A
0c88 cd c2 4e CALL 4ec2 ; update command line
0c8b c3 f1 0c JP 0cf1 ; execute command line

0c8e fe 7f CP 07f
0c90 ca aa 0c JP Z,0caa ; DEL

0c93 2a f3 01 LD HL,(01f3) ; start of command line
0c96 23 INC HL
0c97 36 00 LD (HL),000
0c99 22 f5 01 LD (01f5),HL ; end of command line
0c9c 21 01 00 LD HL,0001 ; Init Exec Offset
0c9f 22 0b 02 LD (020b),HL
0ca2 f5 PUSH AF
0ca3 cd b6 4d CALL 4db6 ; command processing
0ca6 f1 POP AF
0ca7 c3 5d 0c JP 0c5d

0caa cd d8 04 CALL 04d8 ; decw (BASE+#1)
0cad 78 ; 01f5 ; end of command line
0cae cd ae 04 CALL 04ae ; cmpw (BASE+#1),(BASE+#2)
0cb1 78 ; 01f5 ; end of command line
0cb2 76 ; 01f3 ; start of command line
0cb3 c2 bf 0c JP NZ,0cbf

0cb6 cd c9 04 CALL 04c9 ; incw (BASE+#1)
0cb9 78 ; 01f5 ; end of command line
0cba 06 00 LD B,000
0cbc c3 3e 0c JP 0c3e

0cbf cd d8 04 CALL 04d8 ; decw (BASE+#1)
0cc2 8e ; 020b ; Exec Offset
0cc3 2a f5 01 LD HL,(01f5) ; end of command line
0cc6 4e LD C,(HL)
0cc7 97 SUB A
0cc8 77 LD (HL),A
0cc9 79 LD A,C
0cca fe 1b CP 01b
0ccc c2 d0 0c JP NZ,0cd0

0ccf 05 DEC B

0cd0 3e 7f LD A,07f
0cd2 cd c2 4e CALL 4ec2 ; update command line
0cd5 c3 3e 0c JP 0c3e

0cd8 21 12 36 LD HL,3612 ; "MEMORY SPACE EXHAUSTED"
0cdb c3 cf 35 JP 35cf ; error

; handle instant command
0cde 21 fc 38 LD HL,38fc
0ce1 70 LD (HL),B
0ce2 cd 9e 30 CALL 309e ; Predefined Commend
0ce5 21 fc 38 LD HL,38fc
0ce8 46 LD B,(HL)
0ce9 c9 RET

0cea 00

; Default Startup Macro
0ceb 58 ; "XF^A:$"
0cec 46
0ced 01
0cee 3a
0cef 1b
0cf0 00

; execute command line
0cf1 97 SUB A
0cf2 32 00 39 LD (3900),A ; clear error flag
0cf5 32 01 39 LD (3901),A ; clear error suppress flag
0cf8 3e ff LD A,0ff ; disable String Argument Count
0cfa 32 d7 01 LD (01d7),A
0cfd 3e 0c LD A,00c ; Init Buffer Base Index
0cff 32 d8 01 LD (01d8),A
0d02 21 01 00 LD HL,0001 ; Init Exec Offset
0d05 22 0b 02 LD (020b),HL
0d08 cd 0e 0d CALL 0d0e
0d0b c3 af 0b JP 0baf ; command prompt

0d0e 97 SUB A
0d0f 32 f8 38 LD (38f8),A ; argument undefined
0d12 32 0d 39 LD (390d),A
0d15 21 00 00 LD HL,0000 ; Init numeric argument
0d18 22 b7 01 LD (01b7),HL

0d1b 21 1d 0e LD HL,0e1d ; Identity
0d1e 22 bd 01 LD (01bd),HL ; last numeric operation

; Command TAB, CR, ESC, '^_', SPACE
0d21 cd 56 51 CALL 5156 ; chack console input
0d24 cd a6 17 CALL 17a6 ; check abort

0d27 3a 10 39 LD A,(3910) ; trace mode
0d2a a7 AND A
0d2b ca 39 0d JP Z,0d39 ; no
0d2e cd 2f 15 CALL 152f ; trace processing
0d31 d6 1b SUB 01b
0d33 c2 39 0d JP NZ,0d39 ; not ESC
0d36 32 10 39 LD (3910),A ; exit trace mode

0d39 cd 68 0b CALL 0b68 ; fetch command byte
0d3c 11 65 0f LD DE,0f65 ; Main Command Table
0d3f cd 43 0d CALL 0d43 ; fetch table entry
0d42 e9 JP (HL)


Click here to read the complete article
Re: PMATE 3.21: Fixes for bugs found while playing with it ...

<snadvk$1a7q$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=2917&group=comp.os.cpm#2917

  copy link   Newsgroups: comp.os.cpm
Path: i2pn2.org!i2pn.org!aioe.org!q+nLHSmpsc5iS0pcq9FMpg.user.46.165.242.75.POSTED!not-for-mail
From: this.is....@so.its.invalid (Martin)
Newsgroups: comp.os.cpm
Subject: Re: PMATE 3.21: Fixes for bugs found while playing with it ...
Date: Sat, 20 Nov 2021 10:08:35 +0100
Organization: Aioe.org NNTP Server
Message-ID: <snadvk$1a7q$1@gioia.aioe.org>
References: <sn7bp4$1vc5$1@gioia.aioe.org> <d021a288-c549-4eca-b09a-0a1abfceb974n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="43258"; posting-host="q+nLHSmpsc5iS0pcq9FMpg.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:20.0) Gecko/20100101 SeaMonkey/2.17.1
X-Notice: Filtered by postfilter v. 0.9.2
 by: Martin - Sat, 20 Nov 2021 09:08 UTC

Am 11/19/2021 11:00 PM, Tony Nicholson schrieb:
> On Friday, November 19, 2021 at 4:13:12 PM UTC+11, Martin wrote:
>> Hi all!
>>
>> PMATE *IS* the editor magically touching me :-)
>>
>> As a student I constantly dreamed of sometimes getting it,
>> but it never happened, it was out of reach for "hobbyists".
>
> Thanks for these Martin.
>
> Have you done a disassembly of CONPMATE?
>
> It's one of those things I've been waiting for "a round tuit" to
> get started on.
>
> Another bug I've noticed (but done nothing about) is that sometimes
> a reverse scroll (Ctrl-U) when the buffer must be read from disk
> sometimes corrupts the text with what looks like a repeated copy
> of the same sector of data. When this happens I just quit and
> restart (and perhaps have to re-apply some edits).
>
> Tony
>

I really would like to find that one!

So, let's beginn with looking into the inner workings.

The instant command "^U" is runs a predfined command,
which one depends on your editor configuration.

The old (135): -@DL
Or this (174): @V=2[@X,-@DL@SQX][-@DL]

Both result in -@DL so the problem inside PMATE will also
be triggered if you just scroll via "^Y" instant command
or the "-L" command.

This is very unlikely, probably is really a screen update
problem, because multi line scrolling forces a full screen
update vs. insert line / delete line in the single line case.

There is the instant command "^F^F" which redraws the
whole screen. Could you try that the next time?

If the screen is redrawn ok, then the problem lies somewhere
in your custom terminal confguration.

Hth Martin

Re: PMATE 3.21: Fixes for bugs found while playing with it ...

<sqcqb7$ddb$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=2982&group=comp.os.cpm#2982

  copy link   Newsgroups: comp.os.cpm
Path: i2pn2.org!i2pn.org!aioe.org!yK7nUsNSoepUkJrzy00ZRw.user.46.165.242.75.POSTED!not-for-mail
From: this.is....@so.its.invalid (Martin)
Newsgroups: comp.os.cpm
Subject: Re: PMATE 3.21: Fixes for bugs found while playing with it ...
Date: Mon, 27 Dec 2021 17:39:14 +0100
Organization: Aioe.org NNTP Server
Message-ID: <sqcqb7$ddb$1@gioia.aioe.org>
References: <sn7bp4$1vc5$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="13739"; posting-host="yK7nUsNSoepUkJrzy00ZRw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:20.0) Gecko/20100101 SeaMonkey/2.17.1
X-Notice: Filtered by postfilter v. 0.9.2
 by: Martin - Mon, 27 Dec 2021 16:39 UTC

Am 11/19/2021 06:12 AM, Martin schrieb:
> Hi all!
>
> PMATE *IS* the editor magically touching me :-)
>
> As a student I constantly dreamed of sometimes getting it,
> but it never happened, it was out of reach for "hobbyists".
>
> Now, the great effort of PMATE lovers made it possible.
> Thanks to all of you!
>
>
> It took a lot of time to discover enough of its inner workings,
> but it was *REALLY* worth it. It's like a "Magic Machine"!
>
> I just let the fixes out for every PMATE lover to know,
> without a lot descriptions. Just ask :-)
>
>

To clean up that quick mess a little bit,
I brought these into a form that is easy to process.

The following ASM source code generates a HEX file
you use to patch the CONPMATE.COM 3.21.

It goes like so...

B>a:asm pmpatch
CP/M ASSEMBLER - VER 2.0
5E0D
000H USE FACTOR
END OF ASSEMBLY

B>a:mload conpm.com=conpmate.com,pmpatch
MLOAD ver. 2.5 Copyright (C) 1983, 1984, 1985
by NightOwl Software, Inc.
Loaded 302 bytes (012EH) to file B0:CONPM.COM
Over a 24576 byte binary file
Start address: 0100H Ending address: 6100H Bias: 0000H
Saved image size: 24576 bytes (6000H, - 192 records)

Every customized "PMATE.COM" you clone using this new
"CONPM.COM" then has all changes readily applied.

After showing the "TERMINAL MENU:" it waits for a keypress.
Pressing 'd' works well with todays "xterms".

Now wait until the screen is cleared and PMATE is running.

The best thing to do now, is cloning it (aka saving itself)
under a new name, I use "PM.COM".

You see the command line to do this below.
Every ESC is echoed as $, so I really typed:

xdpm<ESC>xh<ESC><ESC>

Then you will by back at the command prompt.

Happy Christmas and a Merry New Year to all...
Martin

Here is how it will look...

B>conpm

PMATE rev 3.21 Configuration Program
Copyright (C) 1982 by Phoenix Software Associates, Ltd.

TERMINAL MENU:

A Lear Siegler ADM-3A
B Hazeltine 1500
C Televideo 950
D DEC VT-100 (ANSI standard)
E Heath H-19 / Zenith Z-19 / DEC VT-52
F Soroc 120
G Superbrain
H Adds Regent
I Ibm 3101
J Televideo 912/920
K Beehive
L Hewlett Packard 125
M Lear Siegler ADM-31

--- Getting terminal data ---

--- Processing terminal data ---

--- Processing MISCELLANEOUS section ---

--- Processing keyboard assignments ---

B: BUF=T ARG=0 LIN=0 COL=0
xdpm$xh$$_
--------------------------------------------------------------------------------

[...]

MCP/M V2.47 DS

B>

Here it is the ASM patch, hope it is explaining itself...

==== 8< =====
; PMATE 3.21 FIXES
; FOR CONPMATE.COM

; ========
; BUG: If the FD auxin file status is active, XI without
; BUG: filename tries to read from an invalid auxin file

ORG 0403H

CALL FIX1

; ========
; BUG: Don't allow to set the auto-indent level to 255

ORG 1474H

STA 392EH ; auto-indent level
JNZ 1489H ; zero if overflow
JMP 1480H ; set with overflow check

; ========
; BUG: Command XC performs no I/O FILE CHECK
; BUG: If issued without input-output file, it overwrites
; BUG: page zero through the undefined sector buffer pointer

ORG 2854H

LDA 3913H ; input-output file
ANA A ; also clear CF
JZ 2861H ; no
CALL 3B0EH ; select FD output file into FD current output file
CALL 3EE3H ; flush buffer, close file
JMP 2807H
NOP

; ========
; FEATURE: Make more codes for predefined commands available
; FEATURE: 1) Relocate the Y-Subcommand Table

ORG 2ECEH

LXI H,TSUBY ; Y-Subcommand Table

; ========
; FEATURE: Make more codes for predefined commands available
; FEATURE: 2) Shift the Predefined Command Table down

ORG 3014H

; Predefined Command Table
TPCMD:
DW 3468H,3473H,3448H,344BH,3450H,3452H,3454H,345BH
DW 3459H,3460H,3464H,3344H,315DH,30C3H,33CDH,33D1H
DW 33DAH,350BH,338CH,33A8H,33F0H,3157H,316DH,3488H
DW 34C9H,34D6H,3498H,34B7H,3504H,3508H,348EH,34AEH
DW 3466H,34DDH,34F4H,3475H,3485H,3478H,350DH,352DH
DW 354BH,354FH,3552H,3557H,355BH,3567H,3572H,358AH
DW 3159H,35A0H,35A3H,35A8H,35ABH,35B6H,35C1H,35C4H
DW 35C8H,35CBH

; IC 191: NOT part of the table, hardcoded to set the repeat factor

; ========
; FEATURE: Make more codes for predefined commands available
; FEATURE: 3) New predefined commands 'Page up' and 'Page down'

; Page up (186)
DW PCPGU
; Page down (187)
DW PCPGD

; Available (188) - (190)
DW 0000H,0000H,0000H

; unused area
DB 0,0,0,0,0,0,0,0,0,0,0,0

; ========
; FEATURE: Make more codes for predefined commands available
; FEATURE: 3) New predefined commands 'Page up' and 'Page down'

ORG 309EH

CPI 03CH ; size of predefined command table

; ========
; FEATURE: Make more codes for predefined commands available
; FEATURE: 2) Shift the Predefined Command Table down

ORG 30AFH

LXI D,TPCMD ; Predefined Command Table

; ========
; BUG: Macro depends on the input radix

ORG 350DH

; Change case of text character
DB '@T>"`[@T-" R][@T>"@[@T+" R][M]]'

; ========
; BUG: The current extent is not closed a second time
; BUG: after reading the last record of the previous

ORG 3CF9H

PUSH H
CALL FIX2B ; close file
POP H
DCR M ; previous extent
CALL FIX2A ; open file
NOP

; ========
; BUG: VIDIL is checked in the VIDDL routine

ORG 4AF4H

LDA 0170H

; ========
; BUG: BC is not saved while waiting for keyboard input
; BUG: software cursor blinking uses BC as delay counter

ORG 502EH

CALL FIX3

; ========
; unused area below UINIT

ORG 51EEH

; ========
; BUG: If the FD auxin file status is active, XI without
; BUG: filename tries to read from an invalid auxin file

FIX1:
STA 415CH ; set FD current input file status unused
SUB A
STA 414DH ; set FD auxin file inactive
RET

; ========
; BUG: The current extent is not closed a second time
; BUG: after reading the last record of the previous

FIX2A:
MVI C,0FH ; open file
JMP FIX2C
FIX2B:
MVI C,10H ; close file
FIX2C:
LHLD 4162H ; FCB
XCHG
JMP 5H

; ========
; BUG: BC is not saved while waiting for keyboard input
; BUG: software cursor blinking uses BC as delay counter

FIX3:
PUSH B
CALL 0112H ; CONST
POP B
RET

; ========
; FEATURE: Make more codes for predefined commands usable
; FEATURE: 1) Relocate the Y-Subcommand Table

; Y-Subcommand Table
TSUBY:
DB 'D'
DW 2F3CH
DB 'S'
DW 2EF5H
DB 'K'
DW 2F2CH
DB 'E'
DW 2F12H
DB 'F'
DW 2F59H
DB 'R'
DW 2FADH
DB 'I'
DW 2EECH
DB 0

; ========
; FEATURE: Make more codes for predefined commands usable
; FEATURE: 3) New predefined commands 'Page up' and 'Page down'

; New Predefined Commands (zero terminated)
; Page up (186)
PCPGU:
DB '-@JL-@JQJ',0
; Page down (187)
PCPGD:
DB '@JL@JQJ',0

; ========
; OPTIONAL: "Move up/down one page" configures the new Predefined Commands

ORG 5E01H

; Move up/down one page configures the new Predefined Commands
DB '186.I',0DH
DB '187.I',0DH

END
==== 8< =====

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor