Questa pagina č per gli utenti CP/M che si sono scontrati con l'orrendo bug di MBASIC.COM che non permette di usare il tasto backspace, costringendo a usare CTRL+H al suo posto, presentando invece inutili e fastidiosi simboli di escape alla pressione del normale tasto che tutti si aspettano.

In un vecchio messaggio gopher risalente al 1984 chiamato MBASIC Rev. 5.21 DELete key modification di tale Tom Harrold ho trovato una procedura per effettuare a mano una patch alla specifica versione 5.21 dell'interprete e l'ho applicata.

Qui potete scaricare il risultato di tale lavoro:

Di seguito le differenze a livello binario tra l'originale e la patch:

orig.> 4a40 3d 3a 92 07 b7 3e 5c 32 92 07 c2 55 4b 05 ca 27
patch> 4a40 3d 3e 08 c3 bc 4b 5c 32 92 07 c2 55 4b 05 ca 27


Si ringrazia Marco Luciano per il supporto. Segue in calce copia del messaggio originale.

MBASIC Rev. 5.21 DELete key modification 

               By Tom Harrold    NOV,1984 

       I have scaned  the local  BBS  for a  doc to  modify 
MBASIC to make the DEL key to do the same as Back space key. 
I  found  one   that   was  called   "MBASIC.MOD".  Well  it 
did not work  with my  MBASIC.COM  so,   I took on the task. 
The following  will allow  you to  modify  MBASIC REV. 5.21. 
You must  have on a  disk  containing   MBASIC.COM,  DDT.COM 
(or  SID.COM),   and  plus   24k  bytes of  space  on  disk. 

THIS WILL CHANGE THE DELETE KEY TO FUNCTION LIKE BACK SPACE. 

A>MBASIC                <---- TYPE mbasic to test if you need this mod. 

BASIC-80 Rev. 5.21                      <--- mbasic sign on message. 
[CP/M Version] 
Copyright 1977-1981 (C) by Microsoft 
Created: 28-Jul-81 
30776 Bytes free 
Ok 

TOX\X\M         <--- type something, I typed tom and then press del key. 
Syntax error            if it do not print a slash "\" then forget this 
Ok 
LISTY\Y\        <--- another example: I typed "list" and "y" and then del. 
Ok                      this is to show how the del key works, it sucks! 
SYSTEM          <--- get back to cp/m. 
A>DDT MBASIC.COM        <--- now, type "ddt mbasic.com" 
DDT VERS 2.2 
NEXT  PC 
6000 0100 
-G0             <--- EXIT DDT 
A>SAVE 96 MBASIC.BAK    <--- save a copy of mbasic 
A>DDT MBASIC.COM        <--- get into ddt again with mbasic 
DDT VERS 2.2 
NEXT  PC 
6000 0100 

-L4B41 <--- type L and 4b41  and compare the following to your list. 


 4B41  LDA  0792 
 4B44  ORA  A 
 4B45  MVI  A,5C 
 4B47  STA  0792 
 4B4A  JNZ  4B55 
 4B4D  DCR  B 
 4B4E  JZ   4B27 
 4B51  CALL 40D6 
 4B54  INR  B 
 4B55  DCR  B 
 4B56  DCX  H 
- 
-A4B41          <--- type A and 4b41 then return. 
4B41  MVI A,08  <--- type "mvi a,08" 
4B43  JMP 4BBC  <--- type "jmp 4bbc" 
4B46  .         <--- end assembly 
- 
-L4B41  <--- type L and 4b41  and compare the following to your list. 

 4B41  MVI  A,08 
 4B43  JMP  4BBC 
 4B46  MOV  E,H 
 4B47  STA  0792 
 4B4A  JNZ  4B55 
 4B4D  DCR  B 
 4B4E  JZ   4B27 
 4B51  CALL 40D6 
 4B54  INR  B 
 4B55  DCR  B 
 4B56  DCX  H 
-G0     <--- type G and 0 to get back to cp/m. 
A>SAVE 96 MBASIC.COM    <--- save your new mbasic.com 
A>MBASIC        <--- and test it out. 
A>ERA MBASIC.BAK  <--- type this if you like the new mod, 
       If some how its not working for you, give it to somebody that can 
or drop the whole thing and go back and REName mbasic.bak to mbasic.com. 
       type the following: REN MBASIC.COM=MBASIC.BAK 


sincerly yours Tom Harrold.