|
|
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.167.196.208 |
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
toinet Site Admin
Inscrit le: 15 Juin 2007 Messages: 2928 Localisation: Le Chesnay, France
|
Posté le: Lun 01 Jan 2018, 17:31 Sujet du message: TeleBASIC v1.0 v1.2 (Club Apple, 1985) |
|
|
#989 - Written by Joel Bernard in 1984 and published by Club Apple in 1985. This is a set of telecom (eg videotex) routines for the Applesoft basic.
Joel Bernard is known for his telecommunications programs published by Version Soft.
Note: this software has the MEANEST DOS 3.3 protection routine: it inverts the read and write commands of the RWTS. If you call a read sector, it will write it. It you ask for a write, it will read the sector. So... always protect your disks!
Disk structure
Nearly standard DOS 3.3 16-sec disk
Protection type
Change of markers
- T0-T2: D5AA96 F2AA / D5AAAD F2AA
- T3-T22: D5AA96 F2AA / AAD5AD F2AA
- Sort of desync of data field, see $BF68
- RWTS command change: 01 is 02, 02 is 01 (when you read, you write!) at $BDB5: EOR #$01, init $B7F4 at $B725 where A9 02 8D F4 B7
How to copy
Boot my copy disk
Launch Advanced demuffin 1.4
Press B to boot with Télébasic v1.0 floppy in D1
Write protect your original disk!!!!
Enter monitor
BDB5:49 01 => EA EA
That is MANDATORY or you will lose your original disk!!!!
How to normalize
Boot my copy disk
Launch Disk Fixer
Code: |
T0/S1/26: 02 -> 01
T0/S1/68: 02 -> 01
T0/S3/35:F2 -> DE
T0/S3/91:F2 -> DE
T0/S7/0:4C C2 BE EA -> 84 48 85 49
T0/S7/B5:49 01 -> EA EA
T1/SE/27: 01 -> 02
T1/SE/3E: 01 -> 02
T1/SE/B2: 01 -> 02
T1/SE/B6: 02 -> 01
T1/SE/E0: 02 -> 01
T1/SE/F8: 02 -> 01
T1/SE/FC: 01 -> 02
T1/SF/31: 02 -> 01
T1/SF/41: 01 -> 02
T1/SF:5B:29 01 0A EA -> C9 02 D0 06
|
The changes on T1/SE and T1/SF are in the File Manager part of DOS 3.3. I invite readers to buy the following book: Apple II DOS 3.3 guide du programmeur, by Marcel Cottini, published by Sybex.
Why is it important to normalize the disk
Once the markers and data read routines changed, one could stop here. I've decided to go further because of the RWTS. If one has wanted to use the RWTS of Telebasic in its own programs or to copy other disks, they would have been destroyed. For instance, Advanced demuffin uses the read command (01) to read an original disk. With that RWTS, it would have written sectors instead of reading them!!!
The disk image is available at http://www.brutaldeluxe.fr/crack/
Reboot and... enjoy (and write protect your original disks)
LoGo
1/2018
Derničre édition par toinet le Lun 01 Jan 2018, 17:36; édité 1 fois |
|
Revenir en haut de page |
|
 |
toinet Site Admin
Inscrit le: 15 Juin 2007 Messages: 2928 Localisation: Le Chesnay, France
|
Posté le: Lun 01 Jan 2018, 17:32 Sujet du message: |
|
|
The modified data field read routine at $BF68
Code: |
The $BF68 code.
The timing bits added in the data field!
----------- DISASSEMBLY MODE -----------
0068:A0 56 LDY #$56
006A:BD 8C C0 LDA $C08C,X ; read AD
006D:10 FB BPL $006A
006F:C9 AD CMP #$AD
0071:D0 E7 BNE $005A
0073:A9 00 LDA #$00
0075:EA NOP
0076:BD 8C C0 LDA $C08C,X ; and AD
0079:10 FB BPL $0076
007B:C9 AD CMP #$AD
007D:D0 E8 BNE $0067
007F:4C 82 BF JMP $BF82 ; lose
0082:BD 8C C0 LDA $C08C,X ; skip a nibble
0085:10 FB BPL $0082
0087:BD 8D C0 LDA $C08D,X ; more timing pleaese
008A:20 C1 BE JSR $BEC1 ; skip 6+6 cycles
008D:BD 8C C0 LDA $C08C,X ; and read
0090:EA NOP ; 2 cycles and...
0091:EA NOP ; 2
0092:EA NOP ; 2
0093:EA NOP ; 2
0094:EA NOP ; 2
0095:EA NOP ; 2
... The rest is the standard data read routine
|
|
|
Revenir en haut de page |
|
 |
toinet Site Admin
Inscrit le: 15 Juin 2007 Messages: 2928 Localisation: Le Chesnay, France
|
Posté le: Lun 01 Jan 2018, 17:34 Sujet du message: |
|
|
The RWTS code at $B7AB, the one that switches between the read and write commands. The DOS 3.3 was modified to read data with a command of 02 (instead of 1) and to write data with a command code of 01 (instead of 2)
Code: |
T0/S7
----------- DISASSEMBLY MODE -----------
00AB:A0 0C LDY #$0C
00AD:B1 48 LDA ($48),Y
00AF:F0 5C BEQ $010D
00B1:C9 04 CMP #$04
00B3:F0 5A BEQ $010F ; The MEAN code EOR
00B5:49 01 EOR #$01 ; Read becomes write
00B7:6A ROR ; Write becomes read!
00B8:08 PHP
00B9:B0 03 BCS $00BE
00BB:20 00 B8 JSR $B800
00BE:A0 30 LDY #$30
00C0:8C 78 05 STY $0578
00C3:AE F8 05 LDX $05F8
00C6:20 44 B9 JSR $B944
00C9:90 24 BCC $00EF
00CB:CE 78 05 DEC $0578
00CE:10 F3 BPL $00C3
00D0:AD 78 04 LDA $0478
00D3:48 PHA
00D4:A9 60 LDA #$60
00D6:20 A8 BE JSR $BEA8
00D9:CE F8 06 DEC $06F8
00DC:F0 28 BEQ $0106
|
|
|
Revenir en haut de page |
|
 |
toinet Site Admin
Inscrit le: 15 Juin 2007 Messages: 2928 Localisation: Le Chesnay, France
|
Posté le: Lun 01 Jan 2018, 17:34 Sujet du message: |
|
|
The file manager part where 01 and 02 were exchanged
Code: |
T1/SE from Telebasic DOS 3.3
----------- DISASSEMBLY MODE -----------
001D:2C D5 B5 BIT $B5D5
0020:70 01 BVS $0023
0022:60 RTS
0023:20 E4 AF JSR $AFE4
0026:A9 01 LDA #$01 ;
0028:20 52 B0 JSR $B052
002B:A9 BF LDA #$BF
002D:2D D5 B5 AND $B5D5
0030:8D D5 B5 STA $B5D5
0033:60 RTS
0034:AD D5 B5 LDA $B5D5
0037:30 01 BMI $003A
0039:60 RTS
003A:20 4B AF JSR $AF4B
003D:A9 01 LDA #$01 ;
003F:20 52 B0 JSR $B052
0042:A9 7F LDA #$7F
0044:2D D5 B5 AND $B5D5
0047:8D D5 B5 STA $B5D5
004A:60 RTS
004B:AD C9 B5 LDA $B5C9
004E:8D F0 B7 STA $B7F0
0051:AD CA B5 LDA $B5CA
0054:8D F1 B7 STA $B7F1
0057:AE D3 B5 LDX $B5D3
005A:AC D4 B5 LDY $B5D4
005D:60 RTS
005E:08 PHP
005F:20 34 AF JSR $AF34
0062:20 4B AF JSR $AF4B
0065:20 0C AF JSR $AF0C
0068:28 PLP
0069:B0 09 BCS $0074
006B:AE D1 B5 LDX $B5D1
006E:AC D2 B5 LDY $B5D2
0071:4C B5 AF JMP $AFB5
0074:A0 01 LDY #$01
0076:B1 42 LDA ($42),Y
0078:F0 08 BEQ $0082
007A:AA TAX
007B:C8 INY
007C:B1 42 LDA ($42),Y
007E:A8 TAY
007F:4C B5 AF JMP $AFB5
0082:AD BB B5 LDA $B5BB
0085:C9 04 CMP #$04
0087:F0 02 BEQ $008B
0089:38 SEC
008A:60 RTS
008B:20 44 B2 JSR $B244
008E:A0 02 LDY #$02
0090:91 42 STA ($42),Y
0092:48 PHA
0093:88 DEY
0094:AD F1 B5 LDA $B5F1
0097:91 42 STA ($42),Y
0099:48 PHA
009A:20 3A AF JSR $AF3A
009D:20 D6 B7 JSR $B7D6
00A0:A0 05 LDY #$05
00A2:AD DE B5 LDA $B5DE
00A5:91 42 STA ($42),Y
00A7:C8 INY
00A8:AD DF B5 LDA $B5DF
00AB:91 42 STA ($42),Y
00AD:68 PLA
00AE:AA TAX
00AF:68 PLA
00B0:A8 TAY
00B1:A9 01 LDA #$01 ;
00B3:D0 02 BNE $00B7
00B5:A9 02 LDA #$02 ;
00B7:8E D3 B5 STX $B5D3
00BA:8C D4 B5 STY $B5D4
00BD:20 52 B0 JSR $B052
00C0:A0 05 LDY #$05
00C2:B1 42 LDA ($42),Y
00C4:8D DC B5 STA $B5DC
00C7:18 CLC
00C8:6D DA B5 ADC $B5DA
00CB:8D DE B5 STA $B5DE
00CE:C8 INY
00CF:B1 42 LDA ($42),Y
00D1:8D DD B5 STA $B5DD
00D4:6D DB B5 ADC $B5DB
00D7:8D DF B5 STA $B5DF
00DA:18 CLC
00DB:60 RTS
00DC:20 E4 AF JSR $AFE4
00DF:A9 02 LDA #$02 ;
00E1:4C 52 B0 JMP $B052
00E4:AC CB B5 LDY $B5CB
00E7:AD CC B5 LDA $B5CC
00EA:8C F0 B7 STY $B7F0
00ED:8D F1 B7 STA $B7F1
00F0:AE D6 B5 LDX $B5D6
00F3:AC D7 B5 LDY $B5D7
00F6:60 RTS
00F7:A9 02 LDA #$02 ;
00F9:D0 02 BNE $00FD
00FB:A9 01 LDA #$01 ;
00FD:AC C3 AA LDY $AAC3
0100:8C F0 B7 STY $B7F0
0103:AC C4 AA LDY $AAC4
0106:8C F1 B7 STY $B7F1
0109:AE FA B5 LDX $B5FA
010C:A0 00 LDY #$00
010E:4C 52 B0 JMP $B052
0111:08 PHP
0112:20 45 B0 JSR $B045
0115:28 PLP
0116:B0 08 BCS $0120
0118:AC BD B3 LDY $B3BD
011B:AE BC B3 LDX $B3BC
011E:D0 0A BNE $012A
0120:AE BC B4 LDX $B4BC
0123:D0 02 BNE $0127
0125:38 SEC
0126:60 RTS
0127:AC BD B4 LDY $B4BD
012A:8E 97 B3 STX $B397
012D:8C 98 B3 STY $B398
0130:A9 02 LDA #$02 ;
0132:20 52 B0 JSR $B052
0135:18 CLC
0136:60 RTS
0137:20 45 B0 JSR $B045
013A:AE 97 B3 LDX $B397
013D:AC 98 B3 LDY $B398
0140:A9 01 LDA #$01 ;
0142:4C 52 B0 JMP $B052
0145:AD C5 AA LDA $AAC5
0148:8D F0 B7 STA $B7F0
014B:AD C6 AA LDA $AAC6
014E:8D F1 B7 STA $B7F1
0151:60 RTS
0152:8E EC B7 STX $B7EC
0155:8C ED B7 STY $B7ED
0158:8D F4 B7 STA $B7F4
015B:29 01 AND #$01
015D:0A ASL
015E:EA NOP
015F:0D D5 B5 ORA $B5D5
0162:8D D5 B5 STA $B5D5
0165:AD F9 B5 LDA $B5F9
0168:49 FF EOR #$FF
016A:8D EB B7 STA $B7EB
016D:AD F7 B5 LDA $B5F7
0170:8D E9 B7 STA $B7E9
0173:AD F8 B5 LDA $B5F8
0176:8D EA B7 STA $B7EA
0179:AD E2 B5 LDA $B5E2
017C:8D F2 B7 STA $B7F2
017F:AD E3 B5 LDA $B5E3
0182:8D F3 B7 STA $B7F3
0185:A9 01 LDA #$01
0187:8D E8 B7 STA $B7E8
018A:AC C1 AA LDY $AAC1
018D:AD C2 AA LDA $AAC2
0190:20 B5 B7 JSR $B7B5
0193:AD F6 B7 LDA $B7F6
0196:8D BF B5 STA $B5BF
0199:A9 FF LDA #$FF
|
|
|
Revenir en haut de page |
|
 |
toinet Site Admin
Inscrit le: 15 Juin 2007 Messages: 2928 Localisation: Le Chesnay, France
|
Posté le: Lun 01 Jan 2018, 17:35 Sujet du message: |
|
|
The same code from an original master DOS 3.3
Code: |
T1/SE FROM DOS 3.3
051D:2C D5 35 BIT $35D5
0520:70 01 BVS $0523
0522:60 RTS
0523:20 E4 2F JSR $2FE4
0526:A9 02 LDA #$02 ; 01
0528:20 52 30 JSR $3052
052B:A9 BF LDA #$BF
052D:2D D5 35 AND $35D5
0530:8D D5 35 STA $35D5
0533:60 RTS
0534:AD D5 35 LDA $35D5
0537:30 01 BMI $053A
0539:60 RTS
053A:20 4B 2F JSR $2F4B
053D:A9 02 LDA #$02 ; 01
053F:20 52 30 JSR $3052
0542:A9 7F LDA #$7F
0544:2D D5 35 AND $35D5
0547:8D D5 35 STA $35D5
054A:60 RTS
054B:AD C9 35 LDA $35C9
054E:8D F0 37 STA $37F0
0551:AD CA 35 LDA $35CA
0554:8D F1 37 STA $37F1
0557:AE D3 35 LDX $35D3
055A:AC D4 35 LDY $35D4
055D:60 RTS
055E:08 PHP
055F:20 34 2F JSR $2F34
0562:20 4B 2F JSR $2F4B
0565:20 0C 2F JSR $2F0C
0568:28 PLP
0569:B0 09 BCS $0574
056B:AE D1 35 LDX $35D1
056E:AC D2 35 LDY $35D2
0571:4C B5 2F JMP $2FB5
0574:A0 01 LDY #$01
0576:B1 42 LDA ($42),Y
0578:F0 08 BEQ $0582
057A:AA TAX
057B:C8 INY
057C:B1 42 LDA ($42),Y
057E:A8 TAY
057F:4C B5 2F JMP $2FB5
0582:AD BB 35 LDA $35BB
0585:C9 04 CMP #$04
0587:F0 02 BEQ $058B
0589:38 SEC
058A:60 RTS
058B:20 44 32 JSR $3244
058E:A0 02 LDY #$02
0590:91 42 STA ($42),Y
0592:48 PHA
0593:88 DEY
0594:AD F1 35 LDA $35F1
0597:91 42 STA ($42),Y
0599:48 PHA
059A:20 3A 2F JSR $2F3A
059D:20 D6 37 JSR $37D6
05A0:A0 05 LDY #$05
05A2:AD DE 35 LDA $35DE
05A5:91 42 STA ($42),Y
05A7:C8 INY
05A8:AD DF 35 LDA $35DF
05AB:91 42 STA ($42),Y
05AD:68 PLA
05AE:AA TAX
05AF:68 PLA
05B0:A8 TAY
05B1:A9 02 LDA #$02 ; 01
05B3:D0 02 BNE $05B7
05B5:A9 01 LDA #$01 ; 02
05B7:8E D3 35 STX $35D3
05BA:8C D4 35 STY $35D4
05BD:20 52 30 JSR $3052
05C0:A0 05 LDY #$05
05C2:B1 42 LDA ($42),Y
05C4:8D DC 35 STA $35DC
05C7:18 CLC
05C8:6D DA 35 ADC $35DA
05CB:8D DE 35 STA $35DE
05CE:C8 INY
05CF:B1 42 LDA ($42),Y
05D1:8D DD 35 STA $35DD
05D4:6D DB 35 ADC $35DB
05D7:8D DF 35 STA $35DF
05DA:18 CLC
05DB:60 RTS
05DC:20 E4 2F JSR $2FE4
05DF:A9 01 LDA #$01 ; 02
05E1:4C 52 30 JMP $3052
05E4:AC CB 35 LDY $35CB
05E7:AD CC 35 LDA $35CC
05EA:8C F0 37 STY $37F0
05ED:8D F1 37 STA $37F1
05F0:AE D6 35 LDX $35D6
05F3:AC D7 35 LDY $35D7
05F6:60 RTS
05F7:A9 01 LDA #$01 ; 02
05F9:D0 02 BNE $05FD
05FB:A9 02 LDA #$02 ; 01
05FD:AC C3 2A LDY $2AC3
0600:8C F0 37 STY $37F0
0603:AC C4 2A LDY $2AC4
0606:8C F1 37 STY $37F1
0609:AE FA 35 LDX $35FA
060C:A0 00 LDY #$00
060E:4C 52 30 JMP $3052
0611:08 PHP
0612:20 45 30 JSR $3045
0615:28 PLP
0616:B0 08 BCS $0620
0618:AC BD 33 LDY $33BD
061B:AE BC 33 LDX $33BC
061E:D0 0A BNE $062A
0620:AE BC 34 LDX $34BC
0623:D0 02 BNE $0627
0625:38 SEC
0626:60 RTS
0627:AC BD 34 LDY $34BD
062A:8E 97 33 STX $3397
062D:8C 98 33 STY $3398
0630:A9 01 LDA #$01 ; 02
0632:20 52 30 JSR $3052
0635:18 CLC
0636:60 RTS
0637:20 45 30 JSR $3045
063A:AE 97 33 LDX $3397
063D:AC 98 33 LDY $3398
0640:A9 02 LDA #$02 ; 01
0642:4C 52 30 JMP $3052
0645:AD C5 2A LDA $2AC5
0648:8D F0 37 STA $37F0
064B:AD C6 2A LDA $2AC6
064E:8D F1 37 STA $37F1
0651:60 RTS
0652:8E EC 37 STX $37EC
0655:8C ED 37 STY $37ED
0658:8D F4 37 STA $37F4
065B:C9 02 CMP #$02 ;
065D:D0 06 BNE $0665
065F:0D D5 35 ORA $35D5
0662:8D D5 35 STA $35D5
0665:AD F9 35 LDA $35F9
0668:49 FF EOR #$FF
066A:8D EB 37 STA $37EB
066D:AD F7 35 LDA $35F7
0670:8D E9 37 STA $37E9
0673:AD F8 35 LDA $35F8
0676:8D EA 37 STA $37EA
0679:AD E2 35 LDA $35E2
067C:8D F2 37 STA $37F2
067F:AD E3 35 LDA $35E3
0682:8D F3 37 STA $37F3
0685:A9 01 LDA #$01
0687:8D E8 37 STA $37E8
068A:AC C1 2A LDY $2AC1
068D:AD C2 2A LDA $2AC2
0690:20 B5 37 JSR $37B5
0693:AD F6 37 LDA $37F6
0696:8D BF 35 STA $35BF
|
|
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|