From 0e3dc68265fec5a5916bd255498fb12739a8df04 Mon Sep 17 00:00:00 2001 From: tomcw Date: Sat, 11 Dec 2021 15:03:38 +0000 Subject: [PATCH] HDD r/w test: add test for reading block to ROM --- .../HDD-RW-IO-Boundary.a | 49 ++++++++++++++++--- Projects/GH1007-HDD-RW-IO-Boundary/debug.txt | 7 +++ v2/HDD-RW-IO-Boundary.aws.yaml | 24 ++++----- 3 files changed, 61 insertions(+), 19 deletions(-) diff --git a/Projects/GH1007-HDD-RW-IO-Boundary/HDD-RW-IO-Boundary.a b/Projects/GH1007-HDD-RW-IO-Boundary/HDD-RW-IO-Boundary.a index 325a9c5..785465b 100644 --- a/Projects/GH1007-HDD-RW-IO-Boundary/HDD-RW-IO-Boundary.a +++ b/Projects/GH1007-HDD-RW-IO-Boundary/HDD-RW-IO-Boundary.a @@ -25,9 +25,12 @@ entrypoint sta saveFF ; - ; Reads from block #1 + ; Reads from block #1, when LC is write-enabled ; + bit $c081 + bit $c081 ; Read ROM; write RAM; use $D000 bank 2 (RESET default) + lda #mem_blk_r_data @@ -72,9 +75,32 @@ mli0_2 !byte >param ; param_h bne loop1 ; - ; Writes to block #1 + ; Read from block #1 to LC, when LC is write-protected + ; + + bit $c082 ; Read ROM; no write; use $D000 bank 2 + + lda #$00 + sta param_mem_block_l + lda #$D0 + sta param_mem_block_h + jsr ENTRYPOINT_SMARTPORT +!zone data +mli0b_0 !byte CMD_READ +mli0b_1 !byte param ; param_h +!zone code + bcs + + jmp error_read_lc_protected ++ + + ; + ; Writes to block #1, when LC is write-enabled ; + bit $c081 + bit $c081 ; Read ROM; write RAM; use $D000 bank 2 (RESET default) + ; clear $BE00-BFFF lda #0 sta $fe @@ -172,18 +198,24 @@ error_read_io jsr print jmp done -error_write +error_read_lc_protected lda #msg3 jsr print jmp done -error_write_io +error_write lda #msg4 jsr print jmp done +error_write_io + lda #msg5 + jsr print + jmp done + ; done @@ -273,10 +305,13 @@ msg0End !text 0 msg1 !text "Read error for block 1!",0xd,0xa msg1End !text 0 -msg2 !text "Read from I/O succeeded when it should have failed!",0xd,0xa +msg2 !text "Read block to I/O succeeded when it should have failed!",0xd,0xa msg2End !text 0 -msg3 !text "Write error for block 1!",0xd,0xa +msg3 !text "Read block to ROM succeeded when it should have failed!",0xd,0xa msg3End !text 0 -msg4 !text "Write to I/O succeeded when it should have failed!",0xd,0xa + +msg4 !text "Write error for block 1!",0xd,0xa msg4End !text 0 +msg5 !text "Write block from I/O succeeded when it should have failed!",0xd,0xa +msg5End !text 0 diff --git a/Projects/GH1007-HDD-RW-IO-Boundary/debug.txt b/Projects/GH1007-HDD-RW-IO-Boundary/debug.txt index b9aa79f..69997c1 100644 --- a/Projects/GH1007-HDD-RW-IO-Boundary/debug.txt +++ b/Projects/GH1007-HDD-RW-IO-Boundary/debug.txt @@ -6,6 +6,10 @@ db mli0_0 db mli0_1 db mli0_2 +db mli0b_0 +db mli0b_1 +db mli0b_2 + db mli1_0 db mli1_1 db mli1_2 @@ -17,3 +21,6 @@ db mli2_2 asc msg0:msg0End asc msg1:msg1End asc msg2:msg2End +asc msg3:msg3End +asc msg4:msg4End +asc msg5:msg5End diff --git a/v2/HDD-RW-IO-Boundary.aws.yaml b/v2/HDD-RW-IO-Boundary.aws.yaml index c135e15..4633a65 100644 --- a/v2/HDD-RW-IO-Boundary.aws.yaml +++ b/v2/HDD-RW-IO-Boundary.aws.yaml @@ -1,4 +1,4 @@ -# Date-stamp: Thu Dec 9 21:44:45 2021 +# Date-stamp: Sat Dec 11 14:59:26 2021 --- File_hdr: @@ -435,17 +435,17 @@ Unit: 5F40: FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 5F80: FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 5FC0: FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - 6000: A5FC8D2661A5FD8D2761A5FE8D2861A5FF8D2961A93085FEA96185FFA000B1FE8D2C61C8B1FE8D2D61200DC7012A612A2901A002D1FEF00AB1FED0034CD0604C - 6040: DA60A5FE18690385FE9002E6FFA000B1FEC811FED0C6A90085FEA9BE85FFA000A900A2021891FEC8D0FBE6FFCAD0F6A94285FEA96185FFA000B1FE8D2C61C8B1 - 6080: FE8D2D61200DC7022A612A2901A002D1FEF00AB1FED0034CE4604CEE60A5FE18690385FE9002E6FFA000B1FEC811FED0C6A9008D2C61A9BE8D2D61200DC7022A - 60C0: 6190034CE460A960A261200D614CF860A97CA261200D614CF860A996A261200D614CF860A9CCA261200D614CF860A9E7A261200D614CF860AD266185FCAD2761 - 6100: 85FDAD286185FEAD296185FF6085FE86FFA000B1FEF00E0980AA98488A20EDFD68A8C8D0EE600000000003000000010000BE0001BE01FFBF0100CF0100D00000 - 6140: 000000BE0001BE01FFBF0100CF0100D00000FE0001FE0000FF00FFFF0000000048444420726561642026207772697465207465737473204F4B0D0A0052656164 - 6180: 206572726F7220666F7220626C6F636B2031210D0A00526561642066726F6D20492F4F20737563636565646564207768656E2069742073686F756C6420686176 - 61C0: 65206661696C6564210D0A005772697465206572726F7220666F7220626C6F636B2031210D0A00577269746520746F20492F4F20737563636565646564207768 - 6200: 656E2069742073686F756C642068617665206661696C6564210D0A00FFFF0000FFFF0000FFFF0000EAC40000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - 6240: FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00008F880000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - 6280: FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 + 6000: A5FC8D5461A5FD8D5561A5FE8D5661A5FF8D57612C81C02C81C0A95E85FEA96185FFA000B1FE8D5A61C8B1FE8D5B61200DC70158612A2901A002D1FEF00AB1FE + 6040: D0034CF4604CFE60A5FE18690385FE9002E6FFA000B1FEC811FED0C62C82C0A9008D5A61A9D08D5B61200DC7015861B0034C08612C81C02C81C0A90085FEA9BE + 6080: 85FFA000A900A2021891FEC8D0FBE6FFCAD0F6A97085FEA96185FFA000B1FE8D5A61C8B1FE8D5B61200DC70258612A2901A002D1FEF00AB1FED0034C12614C1C + 60C0: 61A5FE18690385FE9002E6FFA000B1FEC811FED0C6A9008D5A61A9BE8D5B61200DC702586190034C1261A98EA261203B614C2661A9AAA261203B614C2661A9C4 + 6100: A261203B614C2661A9FEA261203B614C2661A938A262203B614C2661A953A262203B614C2661AD546185FCAD556185FDAD566185FEAD576185FF6085FE86FFA0 + 6140: 00B1FEF00E0980AA98488A20EDFD68A8C8D0EE600000000003000000010000BE0001BE01FFBF0100CF0100D00000000000BE0001BE01FFBF0100CF0100D00000 + 6180: FE0001FE0000FF00FFFF0000000048444420726561642026207772697465207465737473204F4B0D0A0052656164206572726F7220666F7220626C6F636B2031 + 61C0: 210D0A005265616420626C6F636B20746F20492F4F20737563636565646564207768656E2069742073686F756C642068617665206661696C6564210D0A005265 + 6200: 616420626C6F636B20746F20524F4D20737563636565646564207768656E2069742073686F756C642068617665206661696C6564210D0A005772697465206572 + 6240: 726F7220666F7220626C6F636B2031210D0A00577269746520626C6F636B2066726F6D20492F4F20737563636565646564207768656E2069742073686F756C64 + 6280: 2068617665206661696C6564210D0A00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 62C0: FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 6300: FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 6340: FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000