Jump to content
IGNORED

NanoPEB can't load my game disk


dphirschler

Recommended Posts

I am having trouble loading games from my NanoPEB. It boots up into my game disk just fine, just as it used to back in the day. But the games just don't load. Can it be a problem with the NanoPEB and the way this game disk was written? The game disk has a bunch of cart games (some Atarisoft, TI and Parker Bros games). And it is designed to auto load into XB giving you a menu. That much works. But when you select a game, it just goes blank. The loader/linker program was written by my friend long ago. The menu was written by me in XB.

 

I haven't yet tried loading the games through EA yet. I suppose that is the next test. But I really wanted it to work like it used to. I'd appreciate it if some of you could test out my game disk on your NanoPEB/CF7+ and also on real hardware. I'll attach the dsk image.

 

 

Darryl

07_games_bones.dsk

  • Like 1
Link to comment
Share on other sites

I am having trouble loading games from my NanoPEB. It boots up into my game disk just fine, just as it used to back in the day. But the games just don't load. Can it be a problem with the NanoPEB and the way this game disk was written? The game disk has a bunch of cart games (some Atarisoft, TI and Parker Bros games). And it is designed to auto load into XB giving you a menu. That much works. But when you select a game, it just goes blank. The loader/linker program was written by my friend long ago. The menu was written by me in XB.

 

I haven't yet tried loading the games through EA yet. I suppose that is the next test. But I really wanted it to work like it used to. I'd appreciate it if some of you could test out my game disk on your NanoPEB/CF7+ and also on real hardware. I'll attach the dsk image.

 

 

Darryl

 

I seem to remember having trouble with straight-up copies of DSK images to my nanoPEB when those images were not 400KB. What I had to do was to create a 400K image with TI99Dir and copy the files from the old DSK image to the new one before transferring it to my nanoPEB.

 

...lee

Link to comment
Share on other sites

The first thing I noticed, the disk is 1440 sectors. Was it originally DSDD? I tried the original image first, and the menu came up just like you mentioned, but when I selected a game... BLUE SCREEN. So copied everything over to a new DSSD 80 track disk to use on my HxC on the real hardware. Same thing... BLUE SCREEN.

 

I also tried a couple games without your loader, one loaded, one did not. My guess is that this copy somehow got corrupted and affected the data library calls in your loader program.

 

Sorry I could not help.

 

** EDIT ** It's FUBAR in Classic99 too.

Edited by --- Ω ---
Link to comment
Share on other sites

Ahh! That rings a bell. I remember that. But we had this working on original equipment. Maybe a Myarc Mem Exp. at most.

 

I tried loading the same files in MESS and they also failed. So I am not sure why it fails. Has anybody tried it on real equipment yet? My PEB is still dead so I cannot test it.

 

I did try my super Scott Adams Adventure disk on the NanoPEB and it worked just fine, so I know the NanoPEB works now.

 

 

Darryl

Link to comment
Share on other sites

Is that loader supposed to only work with a nanoPEB? I found a hidden machine language loader at the end of the LOAD program which contains a fixed branch to address 4080. This will likely send the TI into the jungle if it uses other controllers.

What is also weird is there does not appear to be a DSRLNK routine in the loader, even though the code BLWP's to one in low memory.

 

This makes me wonder if there is an XB variant out there that loads additional assembly utilities into low memory, including DSRLNK? This loader seems to be configured for some very specific hardware.

Link to comment
Share on other sites

Was your original disk formatted on a CorComp controller using Disk Manager 1000? That sometimes does really bad things to the disk (and produces symptoms just like you're having when another controller is reading them).

Very likely. I remember having a battery backed clock. But I thought it was the Myarc. Could it be that the disk-reading software (TI99-PC) has a problem with these types of disks? It seemed to read them fine, and the loader program seemed to work... well, it maybe isn't loading the hidden code properly. How exactly did you discover it, Mizapf?

 

But I also remember doing something to convert DIS/VAR to PGM format. I just don't remember what. I also remember having some game disks that were made to be loaded in Minimem.

 

Darryl

Link to comment
Share on other sites

Could this loader have been dependent on the presence of a Gram Kracker? We (my friend and I) both had one.

 

Darryl

No it was loaded just like CALL INIT but just had the additional Miller Graphics GPLDSRLNK with a LINK address as GPLDSR that came up in the list.

Edited by RXB
Link to comment
Share on other sites

No it was loaded just like CALL INIT but just had the additional Miller Graphics GPLDSRLNK with a LINK address as GPLDSR that came up in the list.

 

1 DATA BIGFOOT,CHISHOLM,CONGO,D-STATION,D-STATION2,DEFENDER,FROGGER,GUARDIAN,JUNGLEHUNT,MOONPATROL,MSPACMAN

2 DATA MUNCHMOBIL,PACMAN,PARSEC,POLEPOS,POPEYE,PROTECTOR2,Q*BERT,STARFORT,STARTREK,STATION1
3 @=21 :: A=@/2+.5 :: DIM @$(36) :: CALL CLEAR :: CALL SCREEN(5) :: FOR B=0 TO 14 :: CALL COLOR(B,16,1) :: NEXT B :: DISPLAY AT(2,1):"FASTLOAD BY BYTE THE BIG ONE"
4 FOR B=1 TO @ :: READ @$(B) :: NEXT B :: FOR B=1 TO A :: DISPLAY AT(B+3,1):CHR$(B+64);" ";@$(B) :: NEXT B :: FOR B=A+.5 TO @ :: DISPLAY AT((B+3)-A,15):CHR$(B+64);" ";@$(B) :: NEXT B :: DISPLAY AT(A+4.5,1):"CHOICE :"
5 CALL HCHAR(A+4.5,11,30) :: FOR B=1 TO 5 :: CALL KEY(3,C,D) :: IF D<>0 THEN 9
6 NEXT B
7 CALL HCHAR(A+4.5,11,32) :: FOR B=1 TO 5 :: CALL KEY(3,C,D) :: IF D<>0 THEN 9
8 NEXT B :: GOTO 5
9 IF C<65 OR C>64+@ THEN 5 ELSE CALL HCHAR(A+4.5,11,C) :: CALL INIT :: CALL LOAD(8192,254,70) :: CALL LINK("WCM","DSK1."&@$(C-64))
I just curious, does anyone remember "WCM" in a hardware data library? It would be interesting to know, just for the hell of it.
Anyway, do you have your heart set on reproducing the original diskette or would you settle on a substitute loader?
Link to comment
Share on other sites

Very likely. I remember having a battery backed clock. But I thought it was the Myarc. Could it be that the disk-reading software (TI99-PC) has a problem with these types of disks? It seemed to read them fine, and the loader program seemed to work... well, it maybe isn't loading the hidden code properly. How exactly did you discover it, Mizapf?

 

I wondered what the last BASIC line was intended to do, since there was no CALL LOAD with a machine language program. So I concluded that there is a hidden loader, something that I actually learnt of in this forum some time ago.

 

My TIImageTool did not help at first because it autodetected it as a BASIC program and only listed the BASIC lines, so I exported the file to the file system, clipped away the first 256 bytes (thus breaking the BASIC header in order to trick my own program), reimported it into the DSK, and doing a disassembly. Got this:

 

 

FE3A:     LWPI >83E0                                      02E0 83E0
FE3E:     CLR  R0                                         04C0
FE40:     LI   R1,>0001                                   0201 0001
FE44:     LI   R2,>FFE7                                   0202 FFE7
FE48:     BLWP @>2014                                     0420 2014
FE4C:     LI   R12,>1100                                  020C 1100
FE50:     SBO  0                                          1D00
FE52:     STWP R4                                         02A4
FE54:     LI   R5,>0002                                   0205 0002
FE58:     LI   R11,>FE6C                                  020B FE6C
FE5C:     B    @>4080                                     0460 4080
FE60:     NOP                                             1000
FE62:     SBZ  0                                          1E00
FE64:     LI   R0,>01C0                                   0200 01C0
FE68:     BLWP @>2118                                     0420 2118
FE6C:     LI   R0,>071C                                   0200 071C
FE70:     BLWP @>2118                                     0420 2118
FE74:     LI   R0,>030E                                   0200 030E
FE78:     BLWP @>2118                                     0420 2118
FE7C:     LI   R0,>0401                                   0200 0401
FE80:     BLWP @>2118                                     0420 2118
FE84:     LI   R0,>0040                                   0200 0040
FE88:     MOVB R0,@>8C02                                  D800 8C02
FE8C:     SWPB R0                                         06C0
FE8E:     MOVB R0,@>8C02                                  D800 8C02
FE92:     LI   R1,>2020                                   0201 2020
FE96:     LI   R2,>0300                                   0202 0300
FE9A:     MOVB R1,@>8C00                                  D801 8C00
FE9E:     DEC  R2                                         0602
FEA0:     JNE  >FE9A                                      16FC
FEA2:     CLR  R1                                         04C1
FEA4:     LI   R2,>0080                                   0202 0080
FEA8:     MOVB R1,@>8C00                                  D801 8C00
FEAC:     DEC  R2                                         0602
FEAE:     JNE  >FEA8                                      16FC
FEB0:     LI   R1,>1C00                                   0201 1C00
FEB4:     LI   R2,>0080                                   0202 0080
FEB8:     MOVB R1,@>8C00                                  D801 8C00
FEBC:     DEC  R2                                         0602
FEBE:     JNE  >FEB8                                      16FC
FEC0:     CLR  R1                                         04C1
FEC2:     LI   R2,>0C00                                   0202 0C00
FEC6:     MOVB R1,@>8C00                                  D801 8C00
FECA:     DEC  R2                                         0602
FECC:     JNE  >FEC6                                      16FC
FECE:     LI   R0,>0900                                   0200 0900
FED2:     MOV  R0,@>834A                                  C800 834A
FED6:     BLWP @>20FC                                     0420 20FC
FEDA:     DATA >0018
FEDC:     LI   R0,>0B00                                   0200 0B00
FEE0:     MOV  R0,@>834A                                  C800 834A
FEE4:     BLWP @>20FC                                     0420 20FC
FEE8:     DATA >004A
FEEA:     LI   R0,>01E0                                   0200 01E0
FEEE:     BLWP @>2118                                     0420 2118
FEF2:     LI   R0,>0F80                                   0200 0F80
FEF6:     LI   R1,>FFDE                                   0201 FFDE
FEFA:     LI   R2,>0020                                   0202 0020
FEFE:     BLWP @>210C                                     0420 210C
FF02:     LI   R0,>0F89                                   0200 0F89
FF06:     MOVB @>FFE7,R1                                  D060 FFE7
FF0A:     SRL  R1,8                                       0981
FF0C:     A    R1,R0                                      A001
FF0E:     MOV  R0,@>23FC                                  C800 23FC
FF12:     LI   R0,>FF34                                   0200 FF34
FF16:     LI   R1,>2400                                   0201 2400
FF1A:     LI   R2,>0800                                   0202 0800
FF1E:     MOV  *R0+,*R1+                                  CC70
FF20:     DEC  R2                                         0602
FF22:     JNE  >FF1E                                      16FD
FF24:     B    @>2400                                     0460 2400
FF28:     LWPI >20BA                                      02E0 20BA
FF2C:     LI   R5,>2500                                   0205 2500
FF30:     LI   R0,>0F86                                   0200 0F86
FF34:     LI   R1,>3000                                   0201 3000
FF38:     BLWP @>2108                                     0420 2108
FF3C:     LI   R0,>0F89                                   0200 0F89
FF40:     MOV  R0,@>8356                                  C800 8356
FF44:     BLWP @>211C                                     0420 211C
FF48:     DATA >0008
FF4A:     JEQ  >FFB4                                      1334
FF4C:     LI   R0,>1000                                   0200 1000
FF50:     LI   R1,>23F0                                   0201 23F0
FF54:     LI   R2,>0006                                   0202 0006
FF58:     BLWP @>2114                                     0420 2114
FF5C:     MOV  @>23F4,*R5+                                CD60 23F4
FF60:     MOV  @>23F2,R2                                  C0A0 23F2
FF64:     MOV  @>23F4,R1                                  C060 23F4
FF68:     LI   R0,>1006                                   0200 1006
FF6C:     BLWP @>2114                                     0420 2114
FF70:     MOV  @>23FC,R0                                  C020 23FC
FF74:     BLWP @>2110                                     0420 2110
FF78:     AI   R1,>0100                                   0221 0100
FF7C:     BLWP @>2108                                     0420 2108
FF80:     MOV  @>23F0,@>23F0                              C820 23F0 23F0
FF86:     JNE  >FF30                                      16D4
FF88:     LWPI >83E0                                      02E0 83E0
FF8C:     MOV  @>8370,R4                                  C120 8370
FF90:     LI   R3,>8300                                   0203 8300
FF94:     LI   R2,>00A0                                   0202 00A0
FF98:     CLR  *R3+                                       04F3
FF9A:     DECT R2                                         0642
FF9C:     JNE  >FF98                                      16FD
FF9E:     MOV  R4,@>8370                                  C804 8370
FFA2:     LI   R4,>9E7E                                   0204 9E7E
FFA6:     MOV  R4,@>8372                                  C804 8372
FFAA:     LWPI >20BA                                      02E0 20BA
FFAE:     MOV  @>2500,R0                                  C020 2500
FFB2:     B    *R0                                        0450
FFB4:     MOVB @>23F8,@>9800                              D820 23F8 9800
FFBA:     NOP                                             1000
FFBC:     MOVB @>23F9,@>9800                              D820 23F9 9800
FFC2:     BLWP @>0000                                     0420 0000
  • Like 2
Link to comment
Share on other sites

I just curious, does anyone remember "WCM" in a hardware data library? It would be interesting to know, just for the hell of it.
Anyway, do you have your heart set on reproducing the original diskette or would you settle on a substitute loader?

 

> I just curious, does anyone remember "WCM" in a hardware data library? It would be interesting to know, just for the hell of it.

WCM is my friend’s initials. So he must have named the routine after himself.

> Anyway, do you have your heart set on reproducing the original diskette or would you settle on a substitute loader?

Certainly, I’d be happy with another loader program. But I am more interested in solving this puzzle. This was a cool loader. And if something is wrong with it with today’s emulation software and updated hardware, I’d like to know why. At the moment, I suspect the disk transferring software… especially since it seems to be behaving the same in MESS, on the NanoPEB, and on real hardware. The only thing common there is the software used to transfer the floppy.

I vaguely remember attaching machine code to XB programs somehow (using Disko perhaps?). It would load with the XB program, but would show up as garbled characters in the listing. I don’t see any of that here. That’s the main reason I suspect the TI99-PC disk transferring software. Perhaps it sees XB programs and ignores the non-ascii characters when transferring(?).

We did all kinds of goofy things back then just because we could. I used ‘@’ as a variable name. We named disks “NONO…..1” (note the period chars were illegal) using Disko. Attached machine code to XB programs in weird ways. Ripped carts using the Widget and load interrupt switch. And who knows what else? I know we also had some game loaders that required Mini-Mem, but I cannot remember why. Maybe that was one of the cart ripper programs.

Darryl

Link to comment
Share on other sites

 

 

I wondered what the last BASIC line was intended to do, since there was no CALL LOAD with a machine language program. So I concluded that there is a hidden loader, something that I actually learnt of in this forum some time ago.

 

My TIImageTool did not help at first because it autodetected it as a BASIC program and only listed the BASIC lines, so I exported the file to the file system, clipped away the first 256 bytes (thus breaking the BASIC header in order to trick my own program), reimported it into the DSK, and doing a disassembly. Got this:

FE3A:     LWPI >83E0                                      02E0 83E0
FE3E:     CLR  R0                                         04C0
FE40:     LI   R1,>0001                                   0201 0001
FE44:     LI   R2,>FFE7                                   0202 FFE7
FE48:     BLWP @>2014                                     0420 2014
FE4C:     LI   R12,>1100                                  020C 1100
FE50:     SBO  0                                          1D00
FE52:     STWP R4                                         02A4
FE54:     LI   R5,>0002                                   0205 0002
FE58:     LI   R11,>FE6C                                  020B FE6C
FE5C:     B    @>4080                                     0460 4080
FE60:     NOP                                             1000
FE62:     SBZ  0                                          1E00
FE64:     LI   R0,>01C0                                   0200 01C0
FE68:     BLWP @>2118                                     0420 2118
FE6C:     LI   R0,>071C                                   0200 071C
FE70:     BLWP @>2118                                     0420 2118
FE74:     LI   R0,>030E                                   0200 030E
FE78:     BLWP @>2118                                     0420 2118
FE7C:     LI   R0,>0401                                   0200 0401
FE80:     BLWP @>2118                                     0420 2118
FE84:     LI   R0,>0040                                   0200 0040
FE88:     MOVB R0,@>8C02                                  D800 8C02
FE8C:     SWPB R0                                         06C0
FE8E:     MOVB R0,@>8C02                                  D800 8C02
FE92:     LI   R1,>2020                                   0201 2020
FE96:     LI   R2,>0300                                   0202 0300
FE9A:     MOVB R1,@>8C00                                  D801 8C00
FE9E:     DEC  R2                                         0602
FEA0:     JNE  >FE9A                                      16FC
FEA2:     CLR  R1                                         04C1
FEA4:     LI   R2,>0080                                   0202 0080
FEA8:     MOVB R1,@>8C00                                  D801 8C00
FEAC:     DEC  R2                                         0602
FEAE:     JNE  >FEA8                                      16FC
FEB0:     LI   R1,>1C00                                   0201 1C00
FEB4:     LI   R2,>0080                                   0202 0080
FEB8:     MOVB R1,@>8C00                                  D801 8C00
FEBC:     DEC  R2                                         0602
FEBE:     JNE  >FEB8                                      16FC
FEC0:     CLR  R1                                         04C1
FEC2:     LI   R2,>0C00                                   0202 0C00
FEC6:     MOVB R1,@>8C00                                  D801 8C00
FECA:     DEC  R2                                         0602
FECC:     JNE  >FEC6                                      16FC
FECE:     LI   R0,>0900                                   0200 0900
FED2:     MOV  R0,@>834A                                  C800 834A
FED6:     BLWP @>20FC                                     0420 20FC
FEDA:     DATA >0018
FEDC:     LI   R0,>0B00                                   0200 0B00
FEE0:     MOV  R0,@>834A                                  C800 834A
FEE4:     BLWP @>20FC                                     0420 20FC
FEE8:     DATA >004A
FEEA:     LI   R0,>01E0                                   0200 01E0
FEEE:     BLWP @>2118                                     0420 2118
FEF2:     LI   R0,>0F80                                   0200 0F80
FEF6:     LI   R1,>FFDE                                   0201 FFDE
FEFA:     LI   R2,>0020                                   0202 0020
FEFE:     BLWP @>210C                                     0420 210C
FF02:     LI   R0,>0F89                                   0200 0F89
FF06:     MOVB @>FFE7,R1                                  D060 FFE7
FF0A:     SRL  R1,8                                       0981
FF0C:     A    R1,R0                                      A001
FF0E:     MOV  R0,@>23FC                                  C800 23FC
FF12:     LI   R0,>FF34                                   0200 FF34
FF16:     LI   R1,>2400                                   0201 2400
FF1A:     LI   R2,>0800                                   0202 0800
FF1E:     MOV  *R0+,*R1+                                  CC70
FF20:     DEC  R2                                         0602
FF22:     JNE  >FF1E                                      16FD
FF24:     B    @>2400                                     0460 2400
FF28:     LWPI >20BA                                      02E0 20BA
FF2C:     LI   R5,>2500                                   0205 2500
FF30:     LI   R0,>0F86                                   0200 0F86
FF34:     LI   R1,>3000                                   0201 3000
FF38:     BLWP @>2108                                     0420 2108
FF3C:     LI   R0,>0F89                                   0200 0F89
FF40:     MOV  R0,@>8356                                  C800 8356
FF44:     BLWP @>211C                                     0420 211C
FF48:     DATA >0008
FF4A:     JEQ  >FFB4                                      1334
FF4C:     LI   R0,>1000                                   0200 1000
FF50:     LI   R1,>23F0                                   0201 23F0
FF54:     LI   R2,>0006                                   0202 0006
FF58:     BLWP @>2114                                     0420 2114
FF5C:     MOV  @>23F4,*R5+                                CD60 23F4
FF60:     MOV  @>23F2,R2                                  C0A0 23F2
FF64:     MOV  @>23F4,R1                                  C060 23F4
FF68:     LI   R0,>1006                                   0200 1006
FF6C:     BLWP @>2114                                     0420 2114
FF70:     MOV  @>23FC,R0                                  C020 23FC
FF74:     BLWP @>2110                                     0420 2110
FF78:     AI   R1,>0100                                   0221 0100
FF7C:     BLWP @>2108                                     0420 2108
FF80:     MOV  @>23F0,@>23F0                              C820 23F0 23F0
FF86:     JNE  >FF30                                      16D4
FF88:     LWPI >83E0                                      02E0 83E0
FF8C:     MOV  @>8370,R4                                  C120 8370
FF90:     LI   R3,>8300                                   0203 8300
FF94:     LI   R2,>00A0                                   0202 00A0
FF98:     CLR  *R3+                                       04F3
FF9A:     DECT R2                                         0642
FF9C:     JNE  >FF98                                      16FD
FF9E:     MOV  R4,@>8370                                  C804 8370
FFA2:     LI   R4,>9E7E                                   0204 9E7E
FFA6:     MOV  R4,@>8372                                  C804 8372
FFAA:     LWPI >20BA                                      02E0 20BA
FFAE:     MOV  @>2500,R0                                  C020 2500
FFB2:     B    *R0                                        0450
FFB4:     MOVB @>23F8,@>9800                              D820 23F8 9800
FFBA:     NOP                                             1000
FFBC:     MOVB @>23F9,@>9800                              D820 23F9 9800
FFC2:     BLWP @>0000                                     0420 0000

Holy crap, that is clever!

 

 

Darryl

Link to comment
Share on other sites

 

 

I wondered what the last BASIC line was intended to do, since there was no CALL LOAD with a machine language program. So I concluded that there is a hidden loader, something that I actually learnt of in this forum some time ago.

 

My TIImageTool did not help at first because it autodetected it as a BASIC program and only listed the BASIC lines, so I exported the file to the file system, clipped away the first 256 bytes (thus breaking the BASIC header in order to trick my own program), reimported it into the DSK, and doing a disassembly. Got this:

FE3A:     LWPI >83E0                                      02E0 83E0
FE3E:     CLR  R0                                         04C0
FE40:     LI   R1,>0001                                   0201 0001
FE44:     LI   R2,>FFE7                                   0202 FFE7
FE48:     BLWP @>2014                                     0420 2014
FE4C:     LI   R12,>1100                                  020C 1100
FE50:     SBO  0                                          1D00
FE52:     STWP R4                                         02A4
FE54:     LI   R5,>0002                                   0205 0002
FE58:     LI   R11,>FE6C                                  020B FE6C
FE5C:     B    @>4080                                     0460 4080
FE60:     NOP                                             1000
FE62:     SBZ  0                                          1E00
FE64:     LI   R0,>01C0                                   0200 01C0
FE68:     BLWP @>2118                                     0420 2118
FE6C:     LI   R0,>071C                                   0200 071C
FE70:     BLWP @>2118                                     0420 2118
FE74:     LI   R0,>030E                                   0200 030E
FE78:     BLWP @>2118                                     0420 2118
FE7C:     LI   R0,>0401                                   0200 0401
FE80:     BLWP @>2118                                     0420 2118
FE84:     LI   R0,>0040                                   0200 0040
FE88:     MOVB R0,@>8C02                                  D800 8C02
FE8C:     SWPB R0                                         06C0
FE8E:     MOVB R0,@>8C02                                  D800 8C02
FE92:     LI   R1,>2020                                   0201 2020
FE96:     LI   R2,>0300                                   0202 0300
FE9A:     MOVB R1,@>8C00                                  D801 8C00
FE9E:     DEC  R2                                         0602
FEA0:     JNE  >FE9A                                      16FC
FEA2:     CLR  R1                                         04C1
FEA4:     LI   R2,>0080                                   0202 0080
FEA8:     MOVB R1,@>8C00                                  D801 8C00
FEAC:     DEC  R2                                         0602
FEAE:     JNE  >FEA8                                      16FC
FEB0:     LI   R1,>1C00                                   0201 1C00
FEB4:     LI   R2,>0080                                   0202 0080
FEB8:     MOVB R1,@>8C00                                  D801 8C00
FEBC:     DEC  R2                                         0602
FEBE:     JNE  >FEB8                                      16FC
FEC0:     CLR  R1                                         04C1
FEC2:     LI   R2,>0C00                                   0202 0C00
FEC6:     MOVB R1,@>8C00                                  D801 8C00
FECA:     DEC  R2                                         0602
FECC:     JNE  >FEC6                                      16FC
FECE:     LI   R0,>0900                                   0200 0900
FED2:     MOV  R0,@>834A                                  C800 834A
FED6:     BLWP @>20FC                                     0420 20FC
FEDA:     DATA >0018
FEDC:     LI   R0,>0B00                                   0200 0B00
FEE0:     MOV  R0,@>834A                                  C800 834A
FEE4:     BLWP @>20FC                                     0420 20FC
FEE8:     DATA >004A
FEEA:     LI   R0,>01E0                                   0200 01E0
FEEE:     BLWP @>2118                                     0420 2118
FEF2:     LI   R0,>0F80                                   0200 0F80
FEF6:     LI   R1,>FFDE                                   0201 FFDE
FEFA:     LI   R2,>0020                                   0202 0020
FEFE:     BLWP @>210C                                     0420 210C
FF02:     LI   R0,>0F89                                   0200 0F89
FF06:     MOVB @>FFE7,R1                                  D060 FFE7
FF0A:     SRL  R1,8                                       0981
FF0C:     A    R1,R0                                      A001
FF0E:     MOV  R0,@>23FC                                  C800 23FC
FF12:     LI   R0,>FF34                                   0200 FF34
FF16:     LI   R1,>2400                                   0201 2400
FF1A:     LI   R2,>0800                                   0202 0800
FF1E:     MOV  *R0+,*R1+                                  CC70
FF20:     DEC  R2                                         0602
FF22:     JNE  >FF1E                                      16FD
FF24:     B    @>2400                                     0460 2400
FF28:     LWPI >20BA                                      02E0 20BA
FF2C:     LI   R5,>2500                                   0205 2500
FF30:     LI   R0,>0F86                                   0200 0F86
FF34:     LI   R1,>3000                                   0201 3000
FF38:     BLWP @>2108                                     0420 2108
FF3C:     LI   R0,>0F89                                   0200 0F89
FF40:     MOV  R0,@>8356                                  C800 8356
FF44:     BLWP @>211C                                     0420 211C
FF48:     DATA >0008
FF4A:     JEQ  >FFB4                                      1334
FF4C:     LI   R0,>1000                                   0200 1000
FF50:     LI   R1,>23F0                                   0201 23F0
FF54:     LI   R2,>0006                                   0202 0006
FF58:     BLWP @>2114                                     0420 2114
FF5C:     MOV  @>23F4,*R5+                                CD60 23F4
FF60:     MOV  @>23F2,R2                                  C0A0 23F2
FF64:     MOV  @>23F4,R1                                  C060 23F4
FF68:     LI   R0,>1006                                   0200 1006
FF6C:     BLWP @>2114                                     0420 2114
FF70:     MOV  @>23FC,R0                                  C020 23FC
FF74:     BLWP @>2110                                     0420 2110
FF78:     AI   R1,>0100                                   0221 0100
FF7C:     BLWP @>2108                                     0420 2108
FF80:     MOV  @>23F0,@>23F0                              C820 23F0 23F0
FF86:     JNE  >FF30                                      16D4
FF88:     LWPI >83E0                                      02E0 83E0
FF8C:     MOV  @>8370,R4                                  C120 8370
FF90:     LI   R3,>8300                                   0203 8300
FF94:     LI   R2,>00A0                                   0202 00A0
FF98:     CLR  *R3+                                       04F3
FF9A:     DECT R2                                         0642
FF9C:     JNE  >FF98                                      16FD
FF9E:     MOV  R4,@>8370                                  C804 8370
FFA2:     LI   R4,>9E7E                                   0204 9E7E
FFA6:     MOV  R4,@>8372                                  C804 8372
FFAA:     LWPI >20BA                                      02E0 20BA
FFAE:     MOV  @>2500,R0                                  C020 2500
FFB2:     B    *R0                                        0450
FFB4:     MOVB @>23F8,@>9800                              D820 23F8 9800
FFBA:     NOP                                             1000
FFBC:     MOVB @>23F9,@>9800                              D820 23F9 9800
FFC2:     BLWP @>0000                                     0420 0000

Is this the original version of Systex? It looks like it.

Link to comment
Share on other sites

 

Certainly, I’d be happy with another loader program. But I am more interested in solving this puzzle. This was a cool loader. And if something is wrong with it with today’s emulation software and updated hardware, I’d like to know why. At the moment, I suspect the disk transferring software… especially since it seems to be behaving the same in MESS, on the NanoPEB, and on real hardware. The only thing common there is the software used to transfer the floppy.

 

 

The disk transfer doesn't appear to be at fault. The disassembled routine is not garbled.

 

It is most likely your friend directly accessed the Myarc FDC's emulated CALL INIT (CALL ILR) from his loader. I base this on the direct branch into the card at CRU 0x1100 and the method employed to return to the loader. This utility would load support routines into low memory, similar to those found in the EA Cart.

 

 

FE4C:     LI   R12,>1100                                  020C 1100
FE50:     SBO  0                                          1D00
FE52:     STWP R4                                         02A4
FE54:     LI   R5,>0002                                   0205 0002
FE58:     LI   R11,>FE6C                                  020B FE6C
FE5C:     B    @>4080                                     0460 4080

 

A quick comparison of this loader's source to the SmartProgrammer E/A Utility reference gives us another clue: the BLWP vectors match up to the expected utilities with one caveat: each utility location is offset by 4 bytes.

 

I don't have my other resources handy to determine if this is (1) a SmartProgrammer documentation error or (2) your controller's DSR EPROM at the time did not match the documented standard. The loader will -not- function with the standard Extended BASIC routines. And if the latter is correct, it may only work with the specific card it was programmed for.

 

I suggest you continue with a different loader code. There are few out there that were written nearly in the same manner and can be called from XB, so you could combine your XB code with a new loader.

Link to comment
Share on other sites

  • 1 year later...

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...