mirror of
https://github.com/wader/fq.git
synced 2024-11-25 23:13:19 +03:00
tap: remove format.TAP_In and update tzx
This commit is contained in:
parent
ee404b2bcf
commit
7816fe1ca4
@ -406,7 +406,3 @@ type Pg_Heap_In struct {
|
||||
type Pg_BTree_In struct {
|
||||
Page int `doc:"First page number in file, default is 0"`
|
||||
}
|
||||
|
||||
type TAP_In struct {
|
||||
ReadOneBlock bool `doc:"Read only a single block (required by TZX files)"`
|
||||
}
|
||||
|
@ -22,9 +22,6 @@ func init() {
|
||||
&decode.Format{
|
||||
Description: "TAP tape format for ZX Spectrum computers",
|
||||
DecodeFn: tapDecoder,
|
||||
DefaultInArg: format.TAP_In{
|
||||
ReadOneBlock: false,
|
||||
},
|
||||
})
|
||||
|
||||
interp.RegisterFS(tapFS)
|
||||
@ -37,14 +34,6 @@ func init() {
|
||||
func tapDecoder(d *decode.D) any {
|
||||
d.Endian = decode.LittleEndian
|
||||
|
||||
var ti format.TAP_In
|
||||
d.ArgAs(&ti)
|
||||
|
||||
if ti.ReadOneBlock {
|
||||
decodeTapBlock(d)
|
||||
return nil
|
||||
}
|
||||
|
||||
d.FieldArray("blocks", func(d *decode.D) {
|
||||
for !d.End() {
|
||||
d.FieldStruct("block", func(d *decode.D) {
|
||||
|
@ -1,14 +0,0 @@
|
||||
$ fq -d tap -o read_one_block=true dv basic_prog1.tap
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: basic_prog1.tap (tap) 0x0-0x3f (63)
|
||||
0x00|13 00 |.. | length: 19 0x0-0x2 (2)
|
||||
| | | header{}: 0x2-0x15 (19)
|
||||
0x00| 00 | . | flag: "standard_speed_data" (0) 0x2-0x3 (1)
|
||||
0x00| 00 | . | data_type: "program" (0) 0x3-0x4 (1)
|
||||
0x00| 66 71 54 65 73 74 50 72 6f 67 | fqTestProg | program_name: "fqTestProg" 0x4-0xe (10)
|
||||
0x00| 26 00| &.| data_length: 38 0xe-0x10 (2)
|
||||
0x10|0a 00 |.. | auto_start_line: 10 0x10-0x12 (2)
|
||||
0x10| 26 00 | &. | program_length: 38 0x12-0x14 (2)
|
||||
0x10| 01 | . | checksum: 0x1 0x14-0x15 (1)
|
||||
0x10| 28 00 ff 00 0a 14 00 20 f5 22 66| (...... ."f| gap0: raw bits 0x15-0x3f (42)
|
||||
0x20|71 20 69 73 20 74 68 65 20 62 65 73 74 21 22 0d|q is the best!".|
|
||||
0x30|00 14 0a 00 ec 31 30 0e 00 00 0a 00 00 0d b6| |.....10........||
|
36
format/tzx/testdata/basic_prog1.fqtest
vendored
36
format/tzx/testdata/basic_prog1.fqtest
vendored
@ -53,25 +53,29 @@ $ fq -d tzx dv basic_prog1.tzx
|
||||
| | | [1]{}: block 0x88-0xa0 (24)
|
||||
0x80| 10 | . | block_type: "standard_speed_data" (16) 0x88-0x89 (1)
|
||||
0x80| e8 03 | .. | pause: 1000 0x89-0x8b (2)
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| tap_block{}: (tap) 0x8b-0xa0 (21)
|
||||
0x80| 13 00 | .. | length: 19 0x8b-0x8d (2)
|
||||
| | | header{}: 0x8d-0xa0 (19)
|
||||
0x80| 00 | . | flag: "standard_speed_data" (0) 0x8d-0x8e (1)
|
||||
0x80| 00 | . | data_type: "program" (0) 0x8e-0x8f (1)
|
||||
0x80| 66| f| program_name: "fqTestProg" 0x8f-0x99 (10)
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| tap{}: (tap) 0x8b-0xa0 (21)
|
||||
| | | blocks[0:1]: 0x8b-0xa0 (21)
|
||||
| | | [0]{}: block 0x8b-0xa0 (21)
|
||||
0x80| 13 00 | .. | length: 19 0x8b-0x8d (2)
|
||||
| | | header{}: 0x8d-0xa0 (19)
|
||||
0x80| 00 | . | flag: "standard_speed_data" (0) 0x8d-0x8e (1)
|
||||
0x80| 00 | . | data_type: "program" (0) 0x8e-0x8f (1)
|
||||
0x80| 66| f| program_name: "fqTestProg" 0x8f-0x99 (10)
|
||||
0x90|71 54 65 73 74 50 72 6f 67 |qTestProg |
|
||||
0x90| 26 00 | &. | data_length: 38 0x99-0x9b (2)
|
||||
0x90| 0a 00 | .. | auto_start_line: 10 0x9b-0x9d (2)
|
||||
0x90| 26 00 | &. | program_length: 38 0x9d-0x9f (2)
|
||||
0x90| 01| .| checksum: 0x1 0x9f-0xa0 (1)
|
||||
0x90| 26 00 | &. | data_length: 38 0x99-0x9b (2)
|
||||
0x90| 0a 00 | .. | auto_start_line: 10 0x9b-0x9d (2)
|
||||
0x90| 26 00 | &. | program_length: 38 0x9d-0x9f (2)
|
||||
0x90| 01| .| checksum: 0x1 0x9f-0xa0 (1)
|
||||
| | | [2]{}: block 0xa0-0xcd (45)
|
||||
0xa0|10 |. | block_type: "standard_speed_data" (16) 0xa0-0xa1 (1)
|
||||
0xa0| e8 03 | .. | pause: 1000 0xa1-0xa3 (2)
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| tap_block{}: (tap) 0xa3-0xcd (42)
|
||||
0xa0| 28 00 | (. | length: 40 0xa3-0xa5 (2)
|
||||
| | | data{}: 0xa5-0xcd (40)
|
||||
0xa0| ff | . | flag: "standard_speed_data" (255) 0xa5-0xa6 (1)
|
||||
0xa0| 00 0a 14 00 20 f5 22 66 71 20| .... ."fq | data: raw bits 0xa6-0xcc (38)
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| tap{}: (tap) 0xa3-0xcd (42)
|
||||
| | | blocks[0:1]: 0xa3-0xcd (42)
|
||||
| | | [0]{}: block 0xa3-0xcd (42)
|
||||
0xa0| 28 00 | (. | length: 40 0xa3-0xa5 (2)
|
||||
| | | data{}: 0xa5-0xcd (40)
|
||||
0xa0| ff | . | flag: "standard_speed_data" (255) 0xa5-0xa6 (1)
|
||||
0xa0| 00 0a 14 00 20 f5 22 66 71 20| .... ."fq | data: raw bits 0xa6-0xcc (38)
|
||||
0xb0|69 73 20 74 68 65 20 62 65 73 74 21 22 0d 00 14|is the best!"...|
|
||||
0xc0|0a 00 ec 31 30 0e 00 00 0a 00 00 0d |...10....... |
|
||||
0xc0| b6| | .| | checksum: 0xb6 0xcc-0xcd (1)
|
||||
0xc0| b6| | .| | checksum: 0xb6 0xcc-0xcd (1)
|
||||
|
@ -68,7 +68,7 @@ func decodeBlock(d *decode.D) {
|
||||
peekBytes := d.PeekBytes(2) // get the TAP data block length
|
||||
length := uint16(peekBytes[1])<<8 | uint16(peekBytes[0]) // bytes are stored in LittleEndian
|
||||
length += 2 // include the two bytes for this value
|
||||
d.FieldFormatLen("tap_block", int64(length)*8, &tapFormat, format.TAP_In{ReadOneBlock: true})
|
||||
d.FieldFormatLen("tap", int64(length)*8, &tapFormat, nil)
|
||||
},
|
||||
|
||||
// ID: 11h (17d) | Turbo Speed Data
|
||||
|
Loading…
Reference in New Issue
Block a user