Copio anche qui il txt allegato.
VARI TURBO PER C16a cura di Massi cadenti <massi punto cadenti chiocciola gmail punto com>
Archivio, dump e documenti sono rilasciati sotto licenza Creative Commons 3.0-by-nc-sa (Attribuzione, Non uso commerciale, Condividi allo stesso modo).
1 - Turbo con cornice che cambia colore
=======================================
Così com'è necessita delle halfwaves.
A detta di Fabrizio Gennari, è possibile modificarlo in modo che non le necessiti.
E' utilizzato nelle varie cassette *Games (Byte Games ecc.) delle edizioni Computer/Fermont nonché in "Special Vic20/C16" delle edizioni Pubblirome/Edigamma.
La particolarità di questo turbo è l'utilizzo di tutti i 121 colori del C16, per gruppi di 16, nella cornice: in pratica la cornice utilizza uno per volta i 16 colori base e le 16 luminosità contemporaneamente (quando passa il nero è ovviamente tutta nera).
Vedete che ci sono due versioni di Byte Games 5. Una (quella dumpata con MTAP) è stata la prima versione dumpata e rilasciata (e presente su EdicolaC64), l'altra (dumpata con il DC2N) è stata dumpata in seguito. La differenza tra le due è che quella dumpata con MTAP non passa il parse del VICE, pur funzionando correttamente. Vale a dire che in VICE 2.3 (attenzione non nelle versioni precedenti che non hanno nessun parse per il C16), caricando la versione dumpata con DC2N è possibile vedere l'elenco dei programmi, mentre caricando la versione dumpata con MTAP non è possibile. Questo può essere utile anche per cercare di capire le differenze tra le due versioni e come mai una genera questo problema e l'altra no, e magari includere in TapClean o simile qualcosa che permetta di sistemare il problema.
Nella versione usata in Special Vic20/C16, in alcuni giochi (non tutti) è possibile inibire l'autostart dei giochi tenendo premuto il tasto RUN/STOP (tasto ESC della tastiera del PC in VICE, tasto TAB della tastiera del PC in YAPE). Questo non è possibile nella versione usata in Byte Games. Probabilmente dipende dal fatto se i giochi hanno una linea BASIC o se vengono lanciati dal turbo direttamente con la sys. Un esempio di gioco che si può fermare è il primo, "IL LEGIONARIO". Se usate una macchina con più di 16K è possibile anche listare la sys di partenza.
Il loader del turbo parte in automatico anche se caricato dal monitor del C16, quindi per esaminarlo dovremo per forza usare il monitor interno al VICE.
I puntatori sono sballati (stando al buffer di cassetta il loader occuperebbe solo tre byte da $0324 a $0326, il che è impossibile).
Le mie conoscenze finiscono qua. Comunque Fabrizio Gennari sicuramente ne ha capito molto più di me.
Sarebbe bello sapere in realtà dove viene caricato il loader in modo da disassemblarlo.
2 - Turbo con tutto schermo che cambia colore
=============================================
Sembra derivato direttamente dal precedente.
E' utilizzato in Frank Bruno's Boxing (sulla cassetta ci sono due giochi, Frank Bruno's Boxing è quello che si chiama ELITE, quindi NON IL PRIMO).
Ha le stesse caratteristiche (compresi i puntatori sfalsati che darebbero il caricamento da $0324 a $0326), tranne per il fatto che lo schermo è oscurato e segue i colori del bordo.
E' presa da una cassetta originale della Elite, quindi è possibile che sia stato creato dalla Elite stessa.
3 - Turbo con modalità Fast e audio accelerato
==============================================
Non necessita delle halfwaves.
Spiegazione lunga e complessa, già scritta e distribuita in passato.
Vedi file .url allegato in quella cartella, o visita direttamente
https://groups.google.com/group/it.comp.software.emulatori/msg/85f78f5bdfed4e9f4 - Turbo Jackson
=================
Non c'è poi molto da dire. Anche questo ovviamente necessita delle halfwaves.
Classiche righe colorate a tutto schermo. Simile in questo al turbo202 per C64.
Il loader, chiamato sempre "{clrhome}{flashon}PREMI TASTO C=" è sempre lo stesso e va da $1001 a $119C e contiene la riga BASIC
10 SYS4462
(dove 4462 dec. è $116E).
E' sempre possibile arrestare l'autorun tenendo premuto run/stop (dopo il found del programma in turbo). Il programma si fermerà con un BREAK IN 10 (linea appartenente al loader e non del programma appena caricato).
La parte in L/M disassemblata è la seguente (se qualcuno ha voglia di commentarla è il benvenuto):
. 100d 20 af 06 jsr $06af
. 1010 c9 00 cmp #$00
. 1012 f0 f9 beq $100d
. 1014 85 d1 sta $d1
. 1016 20 dd 06 jsr $06dd
. 1019 91 b6 sta ($b6),y
. 101b c8 iny
. 101c c0 c0 cpy #$c0
. 101e d0 f6 bne $1016
. 1020 f0 2d beq $104f
. 1022 20 af 06 jsr $06af
. 1025 20 dd 06 jsr $06dd
. 1028 c4 93 cpy $93
. 102a d0 02 bne $102e
. 102c 91 b4 sta ($b4),y
. 102e d1 b4 cmp ($b4),y
. 1030 f0 02 beq $1034
. 1032 86 90 stx $90
. 1034 45 d7 eor $d7
. 1036 85 d7 sta $d7
. 1038 e6 b4 inc $b4
. 103a d0 02 bne $103e
. 103c e6 b5 inc $b5
. 103e a5 b4 lda $b4
. 1040 c5 9d cmp $9d
. 1042 a5 b5 lda $b5
. 1044 e5 9e sbc $9e
. 1046 90 dd bcc $1025
. 1048 20 dd 06 jsr $06dd
. 104b 20 42 07 jsr $0742
. 104e 88 dey
. 104f 8c fc 07 sty $07fc
. 1052 58 cli
. 1053 18 clc
. 1054 c8 iny
. 1055 c8 iny
. 1056 4c c8 e8 jmp $e8c8
. 1059 ea nop
. 105a ea nop
. 105b 20 1b e3 jsr $e31b
. 105e 20 42 07 jsr $0742
. 1061 84 d7 sty $d7
. 1063 a9 07 lda #$07
. 1065 8d 04 ff sta $ff04
. 1068 a2 01 ldx #$01
. 106a 20 f0 06 jsr $06f0
. 106d 26 d0 rol $d0
. 106f a5 d0 lda $d0
. 1071 c9 02 cmp #$02
. 1073 d0 f5 bne $106a
. 1075 a0 09 ldy #$09
. 1077 20 dd 06 jsr $06dd
. 107a c9 02 cmp #$02
. 107c f0 f9 beq $1077
. 107e c4 d0 cpy $d0
. 1080 d0 e8 bne $106a
. 1082 20 dd 06 jsr $06dd
. 1085 88 dey
. 1086 d0 f6 bne $107e
. 1088 60 rts
. 1089 a9 08 lda #$08
. 108b 85 d2 sta $d2
. 108d 20 f0 06 jsr $06f0
. 1090 26 d0 rol $d0
. 1092 ea nop
. 1093 ea nop
. 1094 ea nop
. 1095 c6 d2 dec $d2
. 1097 d0 f4 bne $108d
. 1099 a5 d0 lda $d0
. 109b 60 rts
. 109c a9 10 lda #$10
. 109e 24 01 bit $01
. 10a0 d0 fc bne $109e
. 10a2 24 01 bit $01
. 10a4 f0 fc beq $10a2
. 10a6 ad 09 ff lda $ff09
. 10a9 48 pha
. 10aa a9 07 lda #$07
. 10ac 8d 04 ff sta $ff04
. 10af 8e 05 ff stx $ff05
. 10b2 a9 40 lda #$40
. 10b4 8d 09 ff sta $ff09
. 10b7 ad 19 ff lda $ff19
. 10ba 69 33 adc #$33
. 10bc 8d 19 ff sta $ff19
. 10bf 68 pla
. 10c0 0a asl
. 10c1 0a asl
. 10c2 60 rts
. 10c3 00 brk
. 10c4 20 57 07 jsr $0757
. 10c7 4c 37 07 jmp $0737
. 10ca ad 13 ff lda $ff13
. 10cd 09 02 ora #$02
. 10cf 8d 13 ff sta $ff13
. 10d2 20 c3 e3 jsr $e3c3
. 10d5 4c 18 07 jmp $0718
. 10d8 ad 13 ff lda $ff13
. 10db 09 02 ora #$02
. 10dd 8d 13 ff sta $ff13
. 10e0 4c 18 07 jmp $0718
. 10e3 ad 13 ff lda $ff13
. 10e6 29 fd and #$fd
. 10e8 8d 13 ff sta $ff13
. 10eb 4c b7 07 jmp $07b7
. 10ee a0 00 ldy #$00
. 10f0 8c fc 07 sty $07fc
. 10f3 ad 06 ff lda $ff06
. 10f6 29 ef and #$ef
. 10f8 8d 06 ff sta $ff06
. 10fb ca dex
. 10fc d0 fd bne $10fb
. 10fe 88 dey
. 10ff d0 fa bne $10fb
. 1101 78 sei
. 1102 60 rts
. 1103 a2 00 ldx #$00
. 1105 a0 01 ldy #$01
. 1107 a9 10 lda #$10
. 1109 86 0a stx $0a
. 110b 86 93 stx $93
. 110d 84 b4 sty $b4
. 110f 85 b5 sta $b5
. 1111 20 6b a8 jsr $a86b
. 1114 20 71 07 jsr $0771
. 1117 20 0a a8 jsr $a80a
. 111a 4c b7 07 jmp $07b7
. 111d 20 61 06 jsr $0661
. 1120 a5 d1 lda $d1
. 1122 c9 02 cmp #$02
. 1124 f0 06 beq $112c
. 1126 c9 01 cmp #$01
. 1128 d0 f3 bne $111d
. 112a a9 01 lda #$01
. 112c 20 e8 e9 jsr $e9e8
. 112f 20 c0 8c jsr $8cc0
. 1132 a0 00 ldy #$00
. 1134 84 90 sty $90
. 1136 20 89 f1 jsr $f189
. 1139 ad 35 03 lda $0335
. 113c 38 sec
. 113d ed 33 03 sbc $0333
. 1140 08 php
. 1141 18 clc
. 1142 65 b4 adc $b4
. 1144 85 9d sta $9d
. 1146 ad 36 03 lda $0336
. 1149 65 b5 adc $b5
. 114b 28 plp
. 114c ed 34 03 sbc $0334
. 114f 85 9e sta $9e
. 1151 20 76 06 jsr $0676
. 1154 a5 d0 lda $d0
. 1156 45 d7 eor $d7
. 1158 05 90 ora $90
. 115a f0 04 beq $1160
. 115c a9 ff lda #$ff
. 115e 85 90 sta $90
. 1160 4c eb f0 jmp $f0eb
. 1163 a5 9d lda $9d
. 1165 85 2d sta $2d
. 1167 a5 9e lda $9e
. 1169 85 2e sta $2e
. 116b 4c dc 8b jmp $8bdc
. 116e a9 06 lda #$06
. 1170 85 e6 sta $e6
. 1172 a9 61 lda #$61
. 1174 85 e5 sta $e5
. 1176 a9 10 lda #$10
. 1178 85 e8 sta $e8
. 117a a9 0d lda #$0d
. 117c 85 e7 sta $e7
. 117e a0 00 ldy #$00
. 1180 b1 e7 lda ($e7),y
. 1182 91 e5 sta ($e5),y
. 1184 c8 iny
. 1185 c0 70 cpy #$70
. 1187 f0 0a beq $1193
. 1189 c0 00 cpy #$00
. 118b d0 f3 bne $1180
. 118d e6 e6 inc $e6
. 118f e6 e8 inc $e8
. 1191 d0 eb bne $117e
. 1193 a5 e6 lda $e6
. 1195 c9 07 cmp #$07
. 1197 d0 e7 bne $1180
. 1199 4c 1e 07 jmp $071e
. 119c 00 brk
5 - Turbo simile Turbo Tape
===========================
Questo è curiosamente un clone del turbo tape 64 di Stephen Senz, o forse proprio un port ufficiale. Potete vedere il turbo vero e proprio nel T64 "Turbo Tape C16.t64".
Chiaramente (?) necessita delle halfwaves.
La sintassi è :@L (load), :@S (save) e :@V (verify)
Le versioni presenti in Computer Set e in Input sono leggermente modificate.
Partiamo dalla versione presente in Computer Set (ed.Publiflash/Logica 2000).
Esaminiamo il loader di STRIKE EAGLE.
Va da 4097 ($1001) a 4677 ($1245).
Linea BASIC
100 SYS4112
(4112 = $1010)
Disassemblato:
. 1010 20 17 81 jsr $8117
. 1013 20 2e 80 jsr $802e
. 1016 20 c2 80 jsr $80c2
. 1019 20 f4 fc jsr $fcf4
. 101c a2 fb ldx #$fb
. 101e 9a txs
. 101f 20 50 10 jsr $1050
. 1022 a2 0a ldx #$0a <--- metti 10 ($0a) caratteri...
. 1024 86 ef stx $ef <--- ... nel buffer di tastiera
. 1026 bd 60 10 lda $1060,x<--- prendili da $1060 in poi...
. 1029 9d 27 05 sta $0527,x<--- ... e mettili da $0527 in poi
. 102c ca dex
. 102d 10 f7 bpl $1026
. 102f a2 00 ldx #$00
. 1031 bd 7c 10 lda $107c,x
. 1034 9d 7c 05 sta $057c,x
. 1037 bd 45 11 lda $1145,x
. 103a 9d 45 06 sta $0645,x
. 103d e8 inx
. 103e d0 f1 bne $1031
. 1040 4c 16 80 jmp $8016
. 1043 00 brk
. 1044 00 brk
. 1045 00 brk
. 1046 00 brk
. 1047 00 brk
. 1048 00 brk
. 1049 00 brk
. 104a 00 brk
. 104b 00 brk
. 104c 00 brk
. 104d 00 brk
. 104e 00 brk
. 104f 00 brk
. 1050 a9 10 lda #$10
. 1052 8d 08 03 sta $0308
. 1055 a9 07 lda #$07
. 1057 8d 09 03 sta $0309
. 105a 60 rts
. 105b 00 brk
. 105c 00 brk
. 105d 00 brk
. 105e 00 brk
. 105f 00 brk
. 1060 3a ??? <--- carattere :
. 1061 40 rti <--- carattere @
. 1062 4c 22 22 jmp $2222 <--- caratteri L""
. 1065 2c 31 2c bit $2c31 <--- caratteri ,1,
. 1068 31 0d and ($0d),y<--- caratteri 1 e return
. 106a 00 brk
. 106b 00 brk
. 106c 00 brk
. 106d 00 brk
. 106e 00 brk
. 106f 00 brk
. 1070 00 brk
. 1071 00 brk
. 1072 00 brk
. 1073 00 brk
. 1074 00 brk
. 1075 00 brk
. 1076 00 brk
. 1077 00 brk
. 1078 00 brk
. 1079 00 brk
. 107a 00 brk
. 107b 00 brk
. 107c a0 00 ldy #$00
. 107e 8c fc 07 sty $07fc
. 1081 ad 06 ff lda $ff06
. 1084 29 ef and #$ef
. 1086 8d 06 ff sta $ff06
. 1089 ca dex
. 108a d0 fd bne $1089
. 108c 88 dey
. 108d d0 fa bne $1089
. 108f 78 sei
. 1090 60 rts
. 1091 a0 00 ldy #$00
. 1093 a9 02 lda #$02
. 1095 20 b1 05 jsr $05b1
. 1098 a2 07 ldx #$07
. 109a 88 dey
. 109b c0 09 cpy #$09
. 109d d0 f4 bne $1093
. 109f a2 05 ldx #$05
. 10a1 c6 d1 dec $d1
. 10a3 d0 ee bne $1093
. 10a5 98 tya
. 10a6 20 b1 05 jsr $05b1
. 10a9 a2 07 ldx #$07
. 10ab 88 dey
. 10ac d0 f7 bne $10a5
. 10ae ca dex
. 10af ca dex
. 10b0 60 rts
. 10b1 85 d0 sta $d0
. 10b3 45 d7 eor $d7
. 10b5 85 d7 sta $d7
. 10b7 a9 08 lda #$08
. 10b9 85 d2 sta $d2
. 10bb 06 d0 asl $d0
. 10bd a5 01 lda $01
. 10bf 29 fd and #$fd
. 10c1 20 d3 05 jsr $05d3
. 10c4 a2 11 ldx #$11
. 10c6 ea nop
. 10c7 09 02 ora #$02
. 10c9 20 d3 05 jsr $05d3
. 10cc a2 0e ldx #$0e
. 10ce c6 d2 dec $d2
. 10d0 d0 e9 bne $10bb
. 10d2 60 rts
. 10d3 ca dex
. 10d4 d0 fd bne $10d3
. 10d6 90 05 bcc $10dd
. 10d8 a2 0b ldx #$0b
. 10da ca dex
. 10db d0 fd bne $10da
. 10dd 85 01 sta $01
. 10df 60 rts
. 10e0 a2 00 ldx #$00
. 10e2 2c a2 01 bit $01a2
. 10e5 a4 2b ldy $2b
. 10e7 a5 2c lda $2c
. 10e9 86 0a stx $0a
. 10eb 86 93 stx $93
. 10ed 84 b4 sty $b4
. 10ef 85 b5 sta $b5
. 10f1 20 6b a8 jsr $a86b
. 10f4 20 fd 05 jsr $05fd
. 10f7 20 0a a8 jsr $a80a
. 10fa 4c 03 87 jmp $8703
. 10fd 20 61 06 jsr $0661
. 1100 a5 d1 lda $d1
. 1102 c9 02 cmp #$02
. 1104 f0 08 beq $110e
. 1106 c9 01 cmp #$01
. 1108 d0 f3 bne $10fd
. 110a a5 ad lda $ad
. 110c f0 0a beq $1118
. 110e ad 33 03 lda $0333
. 1111 85 b4 sta $b4
. 1113 ad 34 03 lda $0334
. 1116 85 b5 sta $b5
. 1118 20 e8 e9 jsr $e9e8
. 111b ea nop
. 111c ea nop
. 111d ea nop
. 111e ea nop
. 111f ea nop
. 1120 20 c0 8c jsr $8cc0
. 1123 a4 ab ldy $ab
. 1125 f0 0b beq $1132
. 1127 88 dey
. 1128 b1 af lda ($af),y
. 112a d9 38 03 cmp $0338,y
. 112d d0 ce bne $10fd
. 112f 98 tya
. 1130 d0 f5 bne $1127
. 1132 84 90 sty $90
. 1134 20 89 f1 jsr $f189
. 1137 ad 35 03 lda $0335
. 113a 38 sec
. 113b ed 33 03 sbc $0333
. 113e 08 php
. 113f 18 clc
. 1140 65 b4 adc $b4
. 1142 85 9d sta $9d
. 1144 ad 36 03 lda $0336
. 1147 65 b5 adc $b5
. 1149 28 plp
. 114a ed 34 03 sbc $0334
. 114d 85 9e sta $9e
. 114f 20 76 06 jsr $0676
. 1152 a5 d0 lda $d0
. 1154 45 d7 eor $d7
. 1156 05 90 ora $90
. 1158 f0 04 beq $115e
. 115a a9 ff lda #$ff
. 115c 85 90 sta $90
. 115e 4c eb f0 jmp $f0eb
. 1161 20 af 06 jsr $06af
. 1164 c9 00 cmp #$00
. 1166 f0 f9 beq $1161
. 1168 85 d1 sta $d1
. 116a 20 dd 06 jsr $06dd
. 116d 91 b6 sta ($b6),y
. 116f c8 iny
. 1170 c0 c0 cpy #$c0
. 1172 d0 f6 bne $116a
. 1174 f0 2d beq $11a3
. 1176 20 af 06 jsr $06af
. 1179 20 dd 06 jsr $06dd
. 117c c4 93 cpy $93
. 117e d0 02 bne $1182
. 1180 91 b4 sta ($b4),y
. 1182 d1 b4 cmp ($b4),y
. 1184 f0 02 beq $1188
. 1186 86 90 stx $90
. 1188 45 d7 eor $d7
. 118a 85 d7 sta $d7
. 118c e6 b4 inc $b4
. 118e d0 02 bne $1192
. 1190 e6 b5 inc $b5
. 1192 a5 b4 lda $b4
. 1194 c5 9d cmp $9d
. 1196 a5 b5 lda $b5
. 1198 e5 9e sbc $9e
. 119a 90 dd bcc $1179
. 119c 20 dd 06 jsr $06dd
. 119f 20 7c 05 jsr $057c
. 11a2 88 dey
. 11a3 8c fc 07 sty $07fc
. 11a6 58 cli
. 11a7 18 clc
. 11a8 c8 iny
. 11a9 c8 iny
. 11aa 4c c8 e8 jmp $e8c8
. 11ad ea nop
. 11ae ea nop
. 11af 20 1b e3 jsr $e31b
. 11b2 20 7c 05 jsr $057c
. 11b5 84 d7 sty $d7
. 11b7 a9 07 lda #$07
. 11b9 8d 04 ff sta $ff04
. 11bc a2 01 ldx #$01
. 11be 20 f0 06 jsr $06f0
. 11c1 26 d0 rol $d0
. 11c3 a5 d0 lda $d0
. 11c5 c9 02 cmp #$02
. 11c7 d0 f5 bne $11be
. 11c9 a0 09 ldy #$09
. 11cb 20 dd 06 jsr $06dd
. 11ce c9 02 cmp #$02
. 11d0 f0 f9 beq $11cb
. 11d2 c4 d0 cpy $d0
. 11d4 d0 e8 bne $11be
. 11d6 20 dd 06 jsr $06dd
. 11d9 88 dey
. 11da d0 f6 bne $11d2
. 11dc 60 rts
. 11dd a9 08 lda #$08
. 11df 85 d2 sta $d2
. 11e1 20 f0 06 jsr $06f0
. 11e4 26 d0 rol $d0
. 11e6 ea nop
. 11e7 ea nop
. 11e8 ea nop
. 11e9 c6 d2 dec $d2
. 11eb d0 f4 bne $11e1
. 11ed a5 d0 lda $d0
. 11ef 60 rts
. 11f0 a9 10 lda #$10
. 11f2 24 01 bit $01
. 11f4 d0 fc bne $11f2
. 11f6 24 01 bit $01
. 11f8 f0 fc beq $11f6
. 11fa ad 09 ff lda $ff09
. 11fd 48 pha
. 11fe a9 07 lda #$07
. 1200 8d 04 ff sta $ff04
. 1203 8e 05 ff stx $ff05
. 1206 a9 40 lda #$40
. 1208 8d 09 ff sta $ff09
. 120b 68 pla
. 120c 0a asl
. 120d 0a asl
. 120e 60 rts
. 120f 00 brk
. 1210 20 73 04 jsr $0473
. 1213 f0 04 beq $1219
. 1215 c9 40 cmp #$40
. 1217 f0 03 beq $121c
. 1219 4c d9 8b jmp $8bd9
. 121c ad 13 ff lda $ff13
. 121f 09 02 ora #$02
. 1221 8d 13 ff sta $ff13
. 1224 20 c3 e3 jsr $e3c3
. 1227 20 73 04 jsr $0473
. 122a c9 4c cmp #$4c
. 122c f0 03 beq $1231
. 122e 4c a1 94 jmp $94a1
. 1231 20 73 04 jsr $0473
. 1234 20 17 81 jsr $8117
. 1237 a9 e5 lda #$e5 <--- metti byte basso del programma... ($e5 in questo caso)
. 1239 8d 02 03 sta $0302 <--- ... in $0302 (dec.770)
. 123c a9 20 lda #$20 <--- metti byte alto del programma... ($20 in questo caso)
. 123e 8d 03 03 sta $0303 <--- ... in $0303 (dec.771)
. 1241 20 e0 05 jsr $05e0
. 1244 00 brk
La parte che ci interessa è da $1237 in poi, perché lì sono contenuti i byte basso ed alto del programma da lanciare.
Gli altri loader sono simili tranne per questa parte.
Se però il programma da lanciare è in BASIC (es. Music Master sulla stessa cassetta)
. 1022 a2 07 ldx #$07
...
. 1062 4c 0d 52 jmp $520d
. 1065 75 0d adc $0d,x
... e soprattutto
. 1234 a5 2e lda $2e
. 1236 c9 11 cmp #$11
. 1238 90 03 bcc $123d
. 123a 20 17 81 jsr $8117
. 123d 20 e0 05 jsr $05e0
quindi come si vede i puntatori mancano completamente.
Passiamo ora alla versione presente in Input.
La versione presente in Input (ed.Pubblirome/Edigamma) è diversa: c'è un programma BASIC di 3 righe che crea una finestra video e creerà anche problemi al gioco "IL BARO" (scritto in BASIC) che si avvierà nella suddetta finestra.
L'intero loader va da $1001 a $1410 (dec.4097-5136).
1 COLOR0,1:COLOR4,1:PRINT"{clrhome}{black}
230 PRINT"{clrhome}{20down}"chr$(27)"T{white}"
240 CLR:SYS4312
La prima riga mette neri bordo e sfondo e ripulisce il video.
La seconda si occupa di creare la finestra nelle ultime quattro righe.
La terza fa partire la routine in L/M.
Il loader in L/M è il seguente (uguale sempre, per tutti e 5 i giochi):
d 1048
. 1048 41 80 eor ($80,x)
. 104a 01 fd ora ($fd,x)
. 104c fc ???
. 104d 00 brk
. 104e 00 brk
. 104f 13 ???
. 1050 dc ???
. 1051 00 brk
. 1052 a1 41 lda ($41,x)
. 1054 24 3a bit $3a
. 1056 8b ???
. 1057 41 24 eor ($24,x)
. 1059 b2 ???
. 105a 41 80 eor ($80,x)
. 105c 01 fd ora ($fd,x)
. 105e fc ???
. 105f 00 brk
. 1060 00 brk
. 1061 13 ???
. 1062 dc ???
. 1063 00 brk
. 1064 a1 41 lda ($41,x)
. 1066 24 3a bit $3a
. 1068 8b ???
. 1069 41 24 eor ($24,x)
. 106b b2 ???
. 106c 22 ???
. 106d 22 ???
. 106e a7 ???
. 106f 32 ???
. 1070 32 ???
. 1071 30 00 bmi $1073
. 1073 5d 13 e1 eor $e113,x
. 1076 00 brk
. 1077 9c ???
. 1078 3a ???
. 1079 9e ???
. 107a 31 36 and ($36),y
. 107c 31 32 and ($32),y
. 107e 38 sec
. 107f 00 brk
. 1080 00 brk
. 1081 00 brk
. 1082 41 80 eor ($80,x)
. 1084 01 ec ora ($ec,x)
. 1086 97 ???
. 1087 00 brk
. 1088 00 brk
. 1089 f0 58 beq $10e3
. 108b 4c 41 80 jmp $8041
. 108e 01 fd ora ($fd,x)
. 1090 fc ???
. 1091 00 brk
. 1092 00 brk
. 1093 00 brk
. 1094 3f ???
. 1095 bd 00 15 lda $1500,x
. 1098 9d 00 0d sta $0d00,x
. 109b bd 00 16 lda $1600,x
. 109e 9d 00 0e sta $0e00,x
. 10a1 bd 00 17 lda $1700,x
. 10a4 9d 00 0f sta $0f00,x
. 10a7 e8 inx
. 10a8 d0 e2 bne $108c
. 10aa ea nop
. 10ab ea nop
. 10ac ea nop
. 10ad ea nop
. 10ae ea nop
. 10af 4c 50 0c jmp $0c50
. 10b2 ea nop
. 10b3 ea nop
. 10b4 ea nop
. 10b5 ea nop
. 10b6 4c 50 0c jmp $0c50
. 10b9 ea nop
. 10ba ea nop
. 10bb ea nop
. 10bc 4c 50 0c jmp $0c50
. 10bf ea nop
. 10c0 ea nop
. 10c1 ea nop
. 10c2 ea nop
. 10c3 ea nop
. 10c4 ea nop
. 10c5 ea nop
. 10c6 ea nop
. 10c7 ea nop
. 10c8 ea nop
. 10c9 20 a2 00 jsr $00a2
. 10cc bd 00 14 lda $1400,x
. 10cf 9d 00 0c sta $0c00,x
. 10d2 bd 00 15 lda $1500,x
. 10d5 9d 00 0d sta $0d00,x
. 10d8 a2 00 ldx #$00
. 10da bd 00 11 lda $1100,x
. 10dd 9d 00 0c sta $0c00,x
. 10e0 bd 00 12 lda $1200,x
. 10e3 9d 00 0d sta $0d00,x
. 10e6 bd 00 13 lda $1300,x
. 10e9 9d 00 0e sta $0e00,x
. 10ec bd 00 14 lda $1400,x
. 10ef 9d 00 0f sta $0f00,x
. 10f2 e8 inx
. 10f3 d0 e5 bne $10da
. 10f5 20 50 0c jsr $0c50
. 10f8 4c 00 0c jmp $0c00
. 10fb 00 brk
. 10fc 00 brk
. 10fd 00 brk
. 10fe 00 brk
. 10ff 00 brk
. 1100 ea nop
. 1101 ea nop
. 1102 ea nop
. 1103 ea nop
. 1104 ea nop
. 1105 ea nop
. 1106 ea nop
. 1107 ea nop
. 1108 ea nop
. 1109 ea nop
. 110a 20 17 81 jsr $8117
. 110d 20 2e 80 jsr $802e
. 1110 20 c2 80 jsr $80c2
. 1113 20 f4 fc jsr $fcf4
. 1116 a2 fb ldx #$fb
. 1118 9a txs
. 1119 20 50 0c jsr $0c50
. 111c a2 07 ldx #$07 <--- metti 7 ($07) caratteri...
. 111e 86 ef stx $ef <--- ... nel buffer di tastiera
. 1120 bd 40 11 lda $1140,x<--- prendili da $1140 in poi...
. 1123 9d 27 05 sta $0527,x<--- ... e mettili da $0527 in poi
. 1126 ca dex
. 1127 10 f7 bpl $1120
. 1129 4c 16 80 jmp $8016
. 112c 00 brk
. 112d 00 brk
. 112e 00 brk
. 112f 00 brk
. 1130 00 brk
. 1131 00 brk
. 1132 00 brk
. 1133 00 brk
. 1134 00 brk
. 1135 00 brk
. 1136 00 brk
. 1137 00 brk
. 1138 00 brk
. 1139 00 brk
. 113a 00 brk
. 113b 00 brk
. 113c 00 brk
. 113d 00 brk
. 113e 00 brk
. 113f 00 brk
. 1140 3a ??? <--- carattere :
. 1141 40 rti <--- carattere @
. 1142 4c 0d 52 jmp $520d<--- caratteri L, return e R
. 1145 75 0d adc $0d,x<--- carattere "U shiftata" e return
. 1147 00 brk
. 1148 00 brk
. 1149 00 brk
. 114a 00 brk
. 114b 00 brk
. 114c 00 brk
. 114d 00 brk
. 114e 00 brk
. 114f 00 brk
. 1150 a9 5b lda #$5b
. 1152 8d 08 03 sta $0308
. 1155 a9 0c lda #$0c
. 1157 8d 09 03 sta $0309
. 115a 60 rts
. 115b 20 73 04 jsr $0473
. 115e f0 04 beq $1164
. 1160 c9 40 cmp #$40
. 1162 f0 30 beq $1194
. 1164 4c d9 8b jmp $8bd9
. 1167 20 73 04 jsr $0473
. 116a c9 53 cmp #$53
. 116c f0 0b beq $1179
. 116e c9 4c cmp #$4c
. 1170 f0 10 beq $1182
. 1172 c9 56 cmp #$56
. 1174 f0 15 beq $118b
. 1176 4c a1 94 jmp $94a1
. 1179 20 73 04 jsr $0473
. 117c 20 f0 0c jsr $0cf0
. 117f 4c b0 0c jmp $0cb0
. 1182 20 73 04 jsr $0473
. 1185 20 a5 0c jsr $0ca5
. 1188 4c b0 0c jmp $0cb0
. 118b 20 73 04 jsr $0473
. 118e 20 e3 0d jsr $0de3
. 1191 4c b0 0c jmp $0cb0
. 1194 ad 13 ff lda $ff13
. 1197 09 02 ora #$02
. 1199 8d 13 ff sta $ff13
. 119c 20 c3 e3 jsr $e3c3
. 119f 4c 67 0c jmp $0c67
. 11a2 00 brk
. 11a3 00 brk
. 11a4 00 brk
. 11a5 20 17 81 jsr $8117
. 11a8 20 e0 0d jsr $0de0
. 11ab 60 rts
. 11ac 00 brk
. 11ad 00 brk
. 11ae 00 brk
. 11af 00 brk
. 11b0 ad 13 ff lda $ff13
. 11b3 29 fd and #$fd
. 11b5 8d 13 ff sta $ff13
. 11b8 4c dc 8b jmp $8bdc
. 11bb 00 brk
. 11bc 00 brk
. 11bd 00 brk
. 11be 00 brk
. 11bf 00 brk
. 11c0 00 brk
. 11c1 00 brk
. 11c2 00 brk
. 11c3 00 brk
. 11c4 00 brk
. 11c5 00 brk
. 11c6 00 brk
. 11c7 00 brk
. 11c8 00 brk
. 11c9 00 brk
. 11ca 00 brk
. 11cb 00 brk
. 11cc 00 brk
. 11cd 00 brk
. 11ce 00 brk
. 11cf 00 brk
. 11d0 00 brk
. 11d1 00 brk
. 11d2 00 brk
. 11d3 00 brk
. 11d4 00 brk
. 11d5 00 brk
. 11d6 00 brk
. 11d7 00 brk
. 11d8 00 brk
. 11d9 00 brk
. 11da 00 brk
. 11db 00 brk
. 11dc 00 brk
. 11dd 00 brk
. 11de 00 brk
. 11df 00 brk
. 11e0 00 brk
. 11e1 00 brk
. 11e2 00 brk
. 11e3 00 brk
. 11e4 00 brk
. 11e5 00 brk
. 11e6 00 brk
. 11e7 00 brk
. 11e8 00 brk
. 11e9 00 brk
. 11ea 00 brk
. 11eb 00 brk
. 11ec 00 brk
. 11ed 00 brk
. 11ee 00 brk
. 11ef 00 brk
. 11f0 4c 87 ff jmp $ff87
. 11f3 00 brk
. 11f4 00 brk
. 11f5 00 brk
. 11f6 00 brk
. 11f7 00 brk
. 11f8 00 brk
. 11f9 00 brk
. 11fa 00 brk
. 11fb 00 brk
. 11fc 00 brk
. 11fd 00 brk
. 11fe 00 brk
. 11ff 00 brk
. 1200 00 brk
. 1201 00 brk
. 1202 00 brk
. 1203 00 brk
. 1204 00 brk
. 1205 00 brk
. 1206 00 brk
. 1207 00 brk
. 1208 00 brk
. 1209 00 brk
. 120a 00 brk
. 120b 00 brk
. 120c 00 brk
. 120d 00 brk
. 120e 00 brk
. 120f 00 brk
. 1210 00 brk
. 1211 00 brk
. 1212 00 brk
. 1213 00 brk
. 1214 00 brk
. 1215 00 brk
. 1216 00 brk
. 1217 00 brk
. 1218 00 brk
. 1219 00 brk
. 121a 00 brk
. 121b 00 brk
. 121c 00 brk
. 121d 00 brk
. 121e 00 brk
. 121f 00 brk
. 1220 00 brk
. 1221 00 brk
. 1222 00 brk
. 1223 00 brk
. 1224 00 brk
. 1225 00 brk
. 1226 00 brk
. 1227 00 brk
. 1228 00 brk
. 1229 00 brk
. 122a 00 brk
. 122b 00 brk
. 122c 00 brk
. 122d 00 brk
. 122e 00 brk
. 122f 00 brk
. 1230 00 brk
. 1231 00 brk
. 1232 00 brk
. 1233 00 brk
. 1234 00 brk
. 1235 00 brk
. 1236 00 brk
. 1237 00 brk
. 1238 00 brk
. 1239 00 brk
. 123a 00 brk
. 123b 00 brk
. 123c 00 brk
. 123d 00 brk
. 123e 00 brk
. 123f 00 brk
. 1240 00 brk
. 1241 00 brk
. 1242 00 brk
. 1243 00 brk
. 1244 00 brk
. 1245 00 brk
. 1246 00 brk
. 1247 00 brk
. 1248 00 brk
. 1249 00 brk
. 124a 00 brk
. 124b 00 brk
. 124c 00 brk
. 124d 00 brk
. 124e 00 brk
. 124f 00 brk
. 1250 00 brk
. 1251 00 brk
. 1252 00 brk
. 1253 00 brk
. 1254 00 brk
. 1255 00 brk
. 1256 00 brk
. 1257 00 brk
. 1258 00 brk
. 1259 00 brk
. 125a 00 brk
. 125b 00 brk
. 125c 00 brk
. 125d 00 brk
. 125e 00 brk
. 125f 00 brk
. 1260 00 brk
. 1261 00 brk
. 1262 00 brk
. 1263 00 brk
. 1264 00 brk
. 1265 00 brk
. 1266 00 brk
. 1267 00 brk
. 1268 00 brk
. 1269 00 brk
. 126a 00 brk
. 126b 00 brk
. 126c 00 brk
. 126d 00 brk
. 126e 00 brk
. 126f 00 brk
. 1270 00 brk
. 1271 00 brk
. 1272 00 brk
. 1273 00 brk
. 1274 00 brk
. 1275 00 brk
. 1276 00 brk
. 1277 00 brk
. 1278 00 brk
. 1279 00 brk
. 127a 00 brk
. 127b 00 brk
. 127c a0 00 ldy #$00
. 127e 8c fc 07 sty $07fc
. 1281 ad 06 ff lda $ff06
. 1284 29 ef and #$ef
. 1286 8d 06 ff sta $ff06
. 1289 ca dex
. 128a d0 fd bne $1289
. 128c 88 dey
. 128d d0 fa bne $1289
. 128f 78 sei
. 1290 60 rts
. 1291 a0 00 ldy #$00
. 1293 a9 02 lda #$02
. 1295 20 b1 0d jsr $0db1
. 1298 a2 07 ldx #$07
. 129a 88 dey
. 129b c0 09 cpy #$09
. 129d d0 f4 bne $1293
. 129f a2 05 ldx #$05
. 12a1 c6 d1 dec $d1
. 12a3 d0 ee bne $1293
. 12a5 98 tya
. 12a6 20 b1 0d jsr $0db1
. 12a9 a2 07 ldx #$07
. 12ab 88 dey
. 12ac d0 f7 bne $12a5
. 12ae ca dex
. 12af ca dex
. 12b0 60 rts
. 12b1 85 d0 sta $d0
. 12b3 45 d7 eor $d7
. 12b5 85 d7 sta $d7
. 12b7 a9 08 lda #$08
. 12b9 85 d2 sta $d2
. 12bb 06 d0 asl $d0
. 12bd a5 01 lda $01
. 12bf 29 fd and #$fd
. 12c1 20 d3 0d jsr $0dd3
. 12c4 a2 11 ldx #$11
. 12c6 ea nop
. 12c7 09 02 ora #$02
. 12c9 20 d3 0d jsr $0dd3
. 12cc a2 0e ldx #$0e
. 12ce c6 d2 dec $d2
. 12d0 d0 e9 bne $12bb
. 12d2 60 rts
. 12d3 ca dex
. 12d4 d0 fd bne $12d3
. 12d6 90 05 bcc $12dd
. 12d8 a2 0b ldx #$0b
. 12da ca dex
. 12db d0 fd bne $12da
. 12dd 85 01 sta $01
. 12df 60 rts
. 12e0 a2 00 ldx #$00
. 12e2 2c a2 01 bit $01a2
. 12e5 a4 2b ldy $2b
. 12e7 a5 2c lda $2c
. 12e9 86 0a stx $0a
. 12eb 86 93 stx $93
. 12ed 84 b4 sty $b4
. 12ef 85 b5 sta $b5
. 12f1 20 6b a8 jsr $a86b
. 12f4 20 fd 0d jsr $0dfd
. 12f7 20 0a a8 jsr $a80a
. 12fa 4c 03 87 jmp $8703
. 12fd 20 61 0e jsr $0e61
. 1300 a5 d1 lda $d1
. 1302 c9 02 cmp #$02
. 1304 f0 08 beq $130e
. 1306 c9 01 cmp #$01
. 1308 d0 f3 bne $12fd
. 130a a5 ad lda $ad
. 130c f0 0a beq $1318
. 130e ad 33 03 lda $0333
. 1311 85 b4 sta $b4
. 1313 ad 34 03 lda $0334
. 1316 85 b5 sta $b5
. 1318 20 e8 e9 jsr $e9e8
. 131b ea nop
. 131c ea nop
. 131d ea nop
. 131e ea nop
. 131f ea nop
. 1320 20 c0 8c jsr $8cc0
. 1323 a4 ab ldy $ab
. 1325 f0 0b beq $1332
. 1327 88 dey
. 1328 b1 af lda ($af),y
. 132a d9 38 03 cmp $0338,y
. 132d d0 ce bne $12fd
. 132f 98 tya
. 1330 d0 f5 bne $1327
. 1332 84 90 sty $90
. 1334 20 89 f1 jsr $f189
. 1337 ad 35 03 lda $0335
. 133a 38 sec
. 133b ed 33 03 sbc $0333
. 133e 08 php
. 133f 18 clc
. 1340 65 b4 adc $b4
. 1342 85 9d sta $9d
. 1344 ad 36 03 lda $0336
. 1347 65 b5 adc $b5
. 1349 28 plp
. 134a ed 34 03 sbc $0334
. 134d 85 9e sta $9e
. 134f 20 76 0e jsr $0e76
. 1352 a5 d0 lda $d0
. 1354 45 d7 eor $d7
. 1356 05 90 ora $90
. 1358 f0 04 beq $135e
. 135a a9 ff lda #$ff
. 135c 85 90 sta $90
. 135e 4c eb f0 jmp $f0eb
. 1361 20 af 0e jsr $0eaf
. 1364 c9 00 cmp #$00
. 1366 f0 f9 beq $1361
. 1368 85 d1 sta $d1
. 136a 20 dd 0e jsr $0edd
. 136d 91 b6 sta ($b6),y
. 136f c8 iny
. 1370 c0 c0 cpy #$c0
. 1372 d0 f6 bne $136a
. 1374 f0 2d beq $13a3
. 1376 20 af 0e jsr $0eaf
. 1379 20 dd 0e jsr $0edd
. 137c c4 93 cpy $93
. 137e d0 02 bne $1382
. 1380 91 b4 sta ($b4),y
. 1382 d1 b4 cmp ($b4),y
. 1384 f0 02 beq $1388
. 1386 86 90 stx $90
. 1388 45 d7 eor $d7
. 138a 85 d7 sta $d7
. 138c e6 b4 inc $b4
. 138e d0 02 bne $1392
. 1390 e6 b5 inc $b5
. 1392 a5 b4 lda $b4
. 1394 c5 9d cmp $9d
. 1396 a5 b5 lda $b5
. 1398 e5 9e sbc $9e
. 139a 90 dd bcc $1379
. 139c 20 dd 0e jsr $0edd
. 139f 20 7c 0d jsr $0d7c
. 13a2 88 dey
. 13a3 8c fc 07 sty $07fc
. 13a6 58 cli
. 13a7 18 clc
. 13a8 c8 iny
. 13a9 c8 iny
. 13aa 4c c8 e8 jmp $e8c8
. 13ad ea nop
. 13ae ea nop
. 13af 20 1b e3 jsr $e31b
. 13b2 20 7c 0d jsr $0d7c
. 13b5 84 d7 sty $d7
. 13b7 a9 07 lda #$07
. 13b9 8d 04 ff sta $ff04
. 13bc a2 01 ldx #$01
. 13be 20 f0 0e jsr $0ef0
. 13c1 26 d0 rol $d0
. 13c3 a5 d0 lda $d0
. 13c5 c9 02 cmp #$02
. 13c7 d0 f5 bne $13be
. 13c9 a0 09 ldy #$09
. 13cb 20 dd 0e jsr $0edd
. 13ce c9 02 cmp #$02
. 13d0 f0 f9 beq $13cb
. 13d2 c4 d0 cpy $d0
. 13d4 d0 e8 bne $13be
. 13d6 20 dd 0e jsr $0edd
. 13d9 88 dey
. 13da d0 f6 bne $13d2
. 13dc 60 rts
. 13dd a9 08 lda #$08
. 13df 85 d2 sta $d2
. 13e1 20 f0 0e jsr $0ef0
. 13e4 26 d0 rol $d0
. 13e6 ea nop
. 13e7 ea nop
. 13e8 ea nop
. 13e9 c6 d2 dec $d2
. 13eb d0 f4 bne $13e1
. 13ed a5 d0 lda $d0
. 13ef 60 rts
. 13f0 a9 10 lda #$10
. 13f2 24 01 bit $01
. 13f4 d0 fc bne $13f2
. 13f6 24 01 bit $01
. 13f8 f0 fc beq $13f6
. 13fa ad 09 ff lda $ff09
. 13fd 48 pha
. 13fe a9 07 lda #$07
. 1400 8d 04 ff sta $ff04
. 1403 8e 05 ff stx $ff05
. 1406 a9 40 lda #$40
. 1408 8d 09 ff sta $ff09
. 140b 68 pla
. 140c 0a asl
. 140d 0a asl
. 140e 60 rts
. 140f 00 brk
. 1410 00 brk
6 - Turbo tipo Novaload
=======================
Così chiamato perché, come il Novaload, ha una schermata fissa con righe di due colori (sempre gli stessi per tutto il caricamento) nella cornice.
L'ho esaminato poco.
Anche questo ovviamente richiede le halfwaves.
I due esempi allegati (n.2 e n.3) si distinguono per il modo con cui è utilizzato.
I falsi puntatori sono uguali a quelli del "Turbo con cornice che cambia colore" e quindi potrebbe esserne un derivato.