Jump to content
Jet Set Willy & Manic Miner Community

Spider

Recommended Posts

I wonder if anyone has tried to either make any sense of this or use it for some purpose ? :)

 

The output from ZX-Assembler looks like this:

 

 

 

  BLOCKSTART 64768  ADD HL,BC  LD A,(DE)  CP 59  JR Z,$-52  CP 13  JR Z,$-56  PUSH HL  LD HL,30720  LD B,2  CALL 26014  POP BC  JR NC,$+8  LD DE,26547  JP 25689  CALL 30026  JR NZ,$-9  CALL 23476  CALL NZ,23533  LD E,(HL)  INC HL  LD A,(HL)  LD (21550),A  LD A,(21555)  OR A  JR Z,$+18  LD A,E  CP 32  JR C,$+6  CP 37  JR C,$+9  LD A,(21254)  OR A  JP Z,27620  LD HL,31280  LD D,0  ADD HL,DE  ADD HL,DE  LD A,(HL)  INC HL  LD H,(HL)  LD L,A  LD A,E  LD DE,30039  EX DE,HL  EX (SP),HL  EX DE,HL  PUSH HL  INC C  DEC C  RET Z  CP 24  LD A,1  LD HL,(21556)  RET NC  PUSH HL  PUSH AF  LD HL,(21569)  LD B,2  CALL 26014  JR NC,$+57  PUSH DE  PUSH BC  CALL 30599  LD HL,(21569)  LD A,C  ADD A,B  INC A  LD C,A  XOR A  LD B,A  SBC HL,BC  RST 24  JR NC,$+19  LD HL,26652  PUSH HL  LD A,(21266)  OR A  JR Z,$+5  CALL 30577  POP HL  JP 22418  LD (21569),HL  POP BC  POP DE  PUSH BC  LD (HL),C  EX DE,HL  INC DE  LD B,0  LDIR  EX DE,HL  LD (HL),B  INC HL  LD (HL),B  DEC HL  POP BC  POP DE  PUSH HL  XOR A  LD B,A  INC BC  SBC HL,BC  LD A,(21566)  CP 2  JR NZ,$+9  LD A,(22211)  OR A  CALL NZ,27936  INC D  DEC D  JR NZ,$+27  LD A,(HL)  AND 128  LD DE,26685  CALL Z,25694  LD A,(HL)  AND 64  LD DE,26629  CALL NZ,25694  POP HL  LD A,(HL)  INC HL  LD H,(HL)  LD L,A  POP DE  RET  LD A,(HL)  OR A  JP P,27922  LD A,D  EX (SP),HL  POP BC  POP DE  PUSH DE  PUSH HL  PUSH AF  LD A,(HL)  INC HL  LD H,(HL)  LD L,A  RST 24  POP DE  JR Z,$+30  LD A,(BC)  AND 95  LD B,L  LD E,A  LD B,L  RST 56  LD B,L  LD E,A  LD B,L  LD E,A  LD B,L  LD E,A  LD B,L  LD E,A  LD B,L  LD E,A  LD B,L  LD E,A  LD B,L  SUB C  DEC (HL)  JP NC,41284  LD B,D  LD A,C  LD B,H  LD D,H  NOP  LD A,D  LD B,H  CP L  LD B,H  LD B,L  LD BC,17152  PUSH AF  CP 4  LD C,A  NOP  LD B,E  ADC A,C  LD B,A  LD H,A  LD (HL),D  NOP  NOP  LD L,A  LD C,C  LD H,77  NOP  LD C,H  NOP  LD B,E  LD (HL),77  CALL Z,39244  LD C,H  CP A  LD H,H  LD B,C  LD C,H  LD BC,11091  LD D,E  LD A,B  DEC E  AND 75  DEC L  LD D,E  LD E,29  NOP  NOP  NOP  LD A,D  LD B,H  CP L  LD B,H  LD B,L  LD BC,17152  PUSH AF  CP 4  LD C,A  NOP  LD B,E  ADC A,C  LD B,A  LD H,A  LD (HL),D  NOP  NOP  LD L,A  LD C,C  LD H,77  NOP  LD C,H  LD C,D  LD L,L  DEC HL  LD H,B  RET PE  LD E,(HL)  LD B,D  NOP  JR Z,$+98  LD C,D  LD L,L  LD C,95  INC L  NOP  LD B,A  LD L,L  ADC A,A  DEC DE  LD B,(HL)  LD D,H  NOP  NOP  NOP  JR $+100  RST 56  RST 56  LD B,84  LD D,D  LD D,E  LD C,B  LD B,H  LD A,B  LD HL,17480  LD (15422),HL  LD A,16  OUT (193),A  LD B,64  CALL 96  LD HL,32896  LD (15422),HL  LD A,12  OUT (193),A  EX (SP),HL  EX (SP),HL  IN A,(207)  CP 80  JR NZ,$-31  XOR A  OUT (206),A  LD A,16  OUT (207),A  LD B,50  CALL 96  IN A,(207)  BIT 7,A  JR NZ,$-4  BIT 0,A  JR NZ,$-53  RET  NOP  NOP  LD D,H  LD D,D  LD D,E  LD C,B  LD B,H  LD A,B  JR Z,$+69  ADD HL,HL  JR NZ,$+69  LD L,A  LD (HL),B  LD A,C  LD (HL),D  LD L,C  LD H,A  LD L,B  LD (HL),H  JR NZ,$+51  ADD HL,SP  JR C,$+52  JR NZ,$+100  LD A,C  JR NZ,$+78  LD D,E  LD C,C  LD A,7  CP B  JR Z,$+70  BIT 3,B  JR NZ,$+4  XOR A  RET  BIT 2,B  PUSH HL  JR NZ,$+50  BIT 1,B  JR Z,$+5  LD HL,0  PUSH DE  CALL 65426  LD A,32  OUT (207),A  EX (SP),HL  EX (SP),HL  IN A,(207)  RLCA  JR C,$-3  LD BC,200  INIR  IN A,(207)  RRCA  LD HL,65409  JR C,$+72  POP DE  PUSH DE  LD A,D  CP (IY+9)  LD A,6  JR Z,$+69  XOR A  JR $+66  CALL 65309  JR Z,$+29  POP HL  LD A,15  RET  LD A,(IY+3)  AND 3  LD C,A  IN A,(192)  CALL C,3335  JR NZ,$-2  OR (IY+3)  BIT 7,A  LD A,64  RET NZ  XOR A  RET  PUSH DE  LD A,B  CP 15  JR Z,$+32  CP 12  LD A,8  JR Z,$+22  CALL 65426  LD A,48  CALL 65498  JR Z,$+12  LD HL,65417  IN A,(201)  RLCA  INC HL  JR NC,$-2  LD A,(HL)  OR A  POP DE  POP HL  RET  LD A,(IY+7)  LD B,A  AND 31  LD E,A  XOR B  RLCA  RLCA  RLCA  INC A  LD B,A  PUSH BC  PUSH DE  CALL 65426  PUSH HL  LD A,(HL)  OUT (202),A  INC HL  LD A,80  CALL 65498  POP HL  POP DE  POP BC  JR NZ,$-45  LD A,32  ADD A,E  LD E,A  DJNZ $-24  XOR A  JR $-44  RLCA  INC B  LD BC,32517  EX AF,AF

trsdos.tap

Link to comment
Share on other sites

At least one of SkoolKid's patches makes use of some of the commands in the TRS code, in order to minimise the number of POKES required by the patch.

I noted one of them (at least) uses that area of space yes. I did wonder if perhaps anyone had used the code to try to make it do something 'internally' to JSW perhaps by calling it from a different routine :unsure:

Link to comment
Share on other sites

I would have thought that in the modern days of emulation it might have been possible to see just how it functions and maybe even try a bit of 'Old school' coding, i'm sure there's no shortage of TRS80 emulators knocking about there on the interweb .. so we could quite literally code (almost) exactly the same way as Matthew Smith did when creating MM and JSW ... as long as, that it, the TRS DOS code is complete and hasn't been overwritten with one of the rooms ... who knows?

Edited by Metalmickey
Link to comment
Share on other sites

I would have thought that in the modern days of emulation it might have been possible to see just how it functions and maybe even try a bit of 'Old school' coding, i'm sure there's no shortage of TRS80 emulators knocking about there on the interweb .. so we could quite literally code (almost) exactly the same way as Matthew Smith did when creating MM and JSW ... as long as, that it, the TRS DOS code is complete and hasn't been overwritten with one of the rooms ... who knows?

That's what I meant yes. :)

 

The actual I/O could likely be serial anyway and simply simulated. The issue I think here (I've not looked nor researched this) is how the data actually gets "out or in" the Spectrum end of things... Sinclair Interface 1 would maybe be a likely candidate as these have RS232 serial port.

 

I do have an IF1 although its working state is unknown. There were a fair few other interfaces available that offered serial or parallel (Disciple disk interface has one I think) although I'd skip parallel as I suspect they are going to be one way aka outbound for a printer typically.

Link to comment
Share on other sites

The code listed at the end of Jet set willy is the Tandy operating system. Used by the recent hard drive Matthew had bought. The hard drive overlays the top of ram for its operating system. The floppy disc uses another area of Ram.

 

The method Matthew used to handshake the two computers has nothing to do with any of the code seen in that area.

 

The handshaking was done using the parallel printer cable on the Tandy which was handshaked with a board build by Matthew that sat on the back of the spectrum. The board was built using wire wrap and multiple 74LS chips.

 

The software used implemented a primitive source to destination block move. e.g. the source and the destinations address would be the same on both the Tandy and the Spectrum.

 

The hard drive is the reason the extra four rooms, which would have sat at the top of memory, are missing from the game.

 

Since Manic Miner has data in that area, it is apparent that Matthew  bought the hard drive between development of Manic Miner and Jet set willy.

Link to comment
Share on other sites

Thank you for the detailed explanation, it is appreciated. :)

 

I'm quite aware of the costs of hard drives "back then" , up until about three years ago I had a working Winchester for my BBC Micro, all 10MB of it and that was a lot of monies new to put it mildly...

 

It is interesting to note how the Spectrum side of the interface was done, a 'home made' solution. I'm aware of the basic nature of the 74 series chips. I was actually looking for something "Spectrum hardware side" slightly related to this last week (a controller board) but that's completely another subject...

 

Yes it seems likely as you say he purchased said drive between the development of the games otherwise Manic Miner may of had less caverns or perhaps a more efficient storage method to squeeze twenty in, leaving the 'top end' of memory empty for the third party code. Given the costs of said drives too that also makes some logical sense as well.

 

Again, thank you for your insight into this. I posted about it initially as I'd never really seen it mentioned in any detail that I can recall other than 'here is the TRS code etc'

Link to comment
Share on other sites

  • 2 weeks 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...

Important Information

By using this site, you agree to our Terms of Use.