Spider Posted August 31, 2017 Report Share Posted August 31, 2017 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,AFtrsdos.tap Quote Link to comment Share on other sites More sharing options...
IRF Posted August 31, 2017 Report Share Posted August 31, 2017 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. jetsetdanny and Spider 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted August 31, 2017 Author Report Share Posted August 31, 2017 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: Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted September 2, 2017 Report Share Posted September 2, 2017 (edited) I've had no experience with and have no knowledge of this code :( . Edited September 2, 2017 by jetsetdanny Quote Link to comment Share on other sites More sharing options...
Metalmickey Posted September 4, 2017 Report Share Posted September 4, 2017 (edited) 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 September 4, 2017 by Metalmickey jetsetdanny, IRF and Spider 3 Quote Link to comment Share on other sites More sharing options...
Spider Posted September 4, 2017 Author Report Share Posted September 4, 2017 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. jetsetdanny 1 Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted September 5, 2017 Report Share Posted September 5, 2017 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. jetsetdanny and Spider 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted September 5, 2017 Author Report Share Posted September 5, 2017 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' Metalmickey and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted September 17, 2017 Report Share Posted September 17, 2017 Thanks for this interesting info, Norman Sword! Spider 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.