Jump to content
IGNORED

LBLA question


Count9929A

Recommended Posts

 

right, there is another point of overwriting. In the MAME debugger, breakpoint at 7226, I found the value 0278 at address 713E.

 

I got the copy of the LBLA from WHTech; I do not have a genuine copy. It would indeed be interesting to find out if there were a batch of broken LBLA. Hopefully there is someone with a real tape who can create a WAV from it.

 

Edit: Just saw your message. I tried to load it in MAME, but I'm getting a NO DATA FOUND after some time. I'll try to run some filters from Audacity over it.

 

@Count9929A: We may have downloaded the same copy. Still, it is very unlikely that this is a result of a corrupted tape recording. Data records on the tape are always backed up with an identical copy (thus it always sounds like Beeeee ... AA-BB-CC-DD- ...), and the changes affect a single value at different locations. Also, I find it high interesting that the difference is between 713E and 718E, which seems as if someone typed in those values from a bad printout, reading a 3 instead of an 8.

 

 

@mizapf: I read LBLA from an original tape. Your observations are interesting

  • Like 1
Link to comment
Share on other sites

Hi ti99iuc! I hope that the next reunion will be much sooner!

It will take ages before I really learn asm :-)

 

Back to the topic, I confirm that *both* sides of my original tape have an LBLA with addresses 713E.

I patched the addresses (in memory) to 718E and now the Old command works properly.

 

I will patch also the ohther bug, and then I will try to save on tape the patched version

 

@ti99iuc: do you have virgin tapes specific to save computer programs? I have only one.

Link to comment
Share on other sites

It is funny to find obvious bugs in decades-old software. This was a similar experience when I found out there was a bug in the format routine of the original TI floppy disk controller, which remained hidden until I saw it in MAME. They used a MOVB command instead of a MOV command at address 442C (see http://www.unige.ch/medecine/nouspikel/ti99/dc2.txt), so the pointer to the track layout was not set correctly. The low byte was not set to 0x09 but retained an old value 0x00, so the track image was shifted by 9 bytes. It there had been a very different value, this would have caused non-readable disks, but this way, the shift had no effect.

Edited by mizapf
Link to comment
Share on other sites

Here's the LBLA WAV file, corrected for both the symbolic addressing bug and the OLD bug. Please let me know if it's readable as it's being recorded from a 36 year old tape and tape recorder :)

 

attachicon.gifLBLA_Corrected.wav

 

 

Let me ask a really stupid question: now that I am working on the ET-PEB I am using the mini memory cartridge for the very first time. I got the cartridge from kl99 recently (i.e. about a year ago). I so wish I had this cartridge back in the day - but I didn't. I think the LBLA will be a nice tool for me for validating the ET-PEB with simple programs, like repeating loops producing memory access patterns I can check with an oscilloscope or logic analyser. For this purpose I don't want to be loading LBLA from tape (i.e. phone or another computer as audio signal) all the time. It would actually be a good test case for DSR routines. So here is the stupid question:

  • I think I read from somewhere that the L command can be used to load LBLA (in Easybug?). Is it possible to load the LBLA from other device than tape?
  • And a second one: if I store the LBLA memory image (basically whole 4K block of RAM of mini memory after loading LBLA) into flash memory of the ET-PEB, and later inject it back in place just by copying it over, would that work or am I missing something?
Link to comment
Share on other sites

 

 

 

Let me ask a really stupid question: now that I am working on the ET-PEB I am using the mini memory cartridge for the very first time. I got the cartridge from kl99 recently (i.e. about a year ago). I so wish I had this cartridge back in the day - but I didn't. I think the LBLA will be a nice tool for me for validating the ET-PEB with simple programs, like repeating loops producing memory access patterns I can check with an oscilloscope or logic analyser. For this purpose I don't want to be loading LBLA from tape (i.e. phone or another computer as audio signal) all the time. It would actually be a good test case for DSR routines. So here is the stupid question:

  • I think I read from somewhere that the L command can be used to load LBLA (in Easybug?). Is it possible to load the LBLA from other device than tape?
  • And a second one: if I store the LBLA memory image (basically whole 4K block of RAM of mini memory after loading LBLA) into flash memory of the ET-PEB, and later inject it back in place just by copying it over, would that work or am I missing something?

 

 

Classic99 includes the file MM_LBLA.obj in the DSK1 directory which is essentially an EA tagged object code (option #3) image of the entire 4K of RAM of the MM including the LBLA (corrected for the OLD bug but not the symbolic addressing one) which is loaded from disk. You should be able to use it as is to load LBLA from the ET-PEB using the Mini Memory option of the start menu. And yes, saving the entire MM RAM from >7000 to >7FFF is the way to go for later reloading.

  • Like 1
Link to comment
Share on other sites

What are your patches? Only the 713E occurrences?

 

I have some issues with reading the WAV file; I can try to create a clean WAV form MAME (without any jitter or noise).

 

Yup, the 3 occurrences of >713E to >718E at addresses >71A6, >71AC and >7226. Also changing 06 to 07 at address >724F to fix the symbolic addressing bug as well.

As for the wav file, I'm not sure how my encoder program handles it (Cyberlink Wave Editor), but then again I am using a very old original TI cassette tape player so who know what kind of distortions are being introduced here even though the TI can actually read the tape from that player just fine...

Link to comment
Share on other sites

  • 2 years later...

Resurrecting this old thread...

You might remember: we found out that the LBLA on some (all?) original tapes has a bug that prevents the OLD command form working. A patched version exists (for instance in Classic 99) but has not (yet) been found on an original tape.

Today, I was looking for the Miner 2049 manual on Ciro's database , when my eyes have been caught by the second document in this entry, which seems to me an official addendum by Texas Instruments. If that is the case (Ciro do you remember the origin of the scan?), then the bug was known by TI and the addendum describes the fix that mizapf reconstructed in this thread.

 

Ciro, you're database is a cave of tresures!! ?

 

  • Like 2
Link to comment
Share on other sites

@Count9929A 

I am very glad you find useful the database. I Always dedicate lot of time to complete it best I can and I am always happy when I can see it appreciated from other users. Thanks for your kind words.
about the document you linked I can say that both of the sheets was included in an European original Package of the MiniMemory. 

I think them are official addendums both but, anyway, only one of them has the TI code printed on it... so any doubt is legitimate ?

Edited by ti99iuc
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 2 years later...

*
*       LBLALST
*
*LiSTing save for LBLA
*
*[
*...
*] can ommit
*
*
*
*MM First Free,+4 by sym
FF EQU >7CD8+4+4+4+4+4+4+4+4+4+4
*Top,-8 by def
TF EQU >7FF0
*[
 AORG >701C
 DATA FF
 DATA TF
*]
*
*
*
*seems ok
 AORG >703A
HN MOV R11,R14 from mod
*NEw
NE EQU >71A6
 LI R15,NE to NEw
 JMP EX
*
HO MOV R11,R14
*OLd
OL EQU >71AC
 LI R15,OL
 MOVB R12,R4
 JMP $+8
*
*User Workspace
UW EQU >70B8
BA LWPI UW 
 MOV R14,R15 to mod
*
 MOV R12,R0
*vMbW
MW EQU >6028
 BLWP @MW copy
 MOV R8,@>8354
 MOV R9,@>834A
 MOVB R10,@>834C
 MOV R3,@>8356
 MOVB @UW+21,@>836D
 CLR @>83D0
 MOVB R2,@>837C clr GPLST
*GplLnk
GL EQU >6018
*[
 BLWP @GL
 DATA >6D0E mod VDP init
*]
 BLWP @GL
 DATA >3D K7
*
*EXit hook
EX MOVB R13,R4
 LI R11,BA BAck to hook
 B *R15 to LBLA NEW/OLD/mod
*
*
 AORG UW+2
 DATA UW+8  R1 src at R4
 DATA >D    R2 # bytes
 DATA >50D  R3 name end in VDP
*PAB
 DATA >FF02 R4 I/O;error;fixed;internal;sequential
 DATA >1000 R5 buffer
 DATA >4000 R6 record length;count
*+>3C0 by PaGes,max 12
PG EQU >3C0+>3C0+>3C0+>3C0+>3C0+>3C0+>3C0+>3C0+>3C0+>3C0
 DATA PG    R7 # bytes
 DATA >0003 R8 screen offset,name length
 DATA >4353,>3108 R9,R10 'CS1';;8=DSR call
 AORG $+2
 DATA >500  R12 load/dst in VDP
 DATA >600  R13 save
*
*
 AORG NE+2
 DATA UW R0 as flag
 AORG OL+2
 DATA UW
*
*
*after LBLA VDP init
 AORG >71E2
 LWPI >7118 main WS
 SOC @UW,@UW
 JNE >723A main Loop
*
 MOV @$+12,@>7186 page
 LWPI >7138 subs WS
 JMP >7200 copyright
*
 DATA >1000
*
*
*
*[
 AORG >722C+2
 DATA FF
*]
*
*
*
*[
*END exit
 AORG >74FC
 MOVB @>7943,@>83D4 VR1 for KSCAN
*]
*
*
*
*[
*new line vector
 AORG >79C2+2
 DATA >79DA+4 don't clear
*]
*
*
*
*[
*page up/down
 AORG >7B2E
 DATA >C40+PG
 AORG >7B4C
 DATA >C68+PG
*]
*
*
*
 AORG TF
* TEXT 'DUMMY1'
* DATA D1
 AORG $+6
 DATA HO def Hook OLD
 AORG $+6
 DATA HN
 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...