| 1 | -- this script writes bytes 8 to 256 on the Legic MIM256 |
| 2 | example = "Script writes to Legic Prime Tag from position 0x07 until 0xFF with the value 0x01" |
| 3 | author = "Mosci" |
| 4 | desc = |
| 5 | [[ |
| 6 | This is a script which writes value 0x01 to bytes from position 0x07 until 0xFF on a Legic Prime Tag (MIM256 or MIM1024) |
| 7 | (created with 'hf legic save my_dump.hex') |
| 8 | |
| 9 | optional arguments : |
| 10 | -h - Help text |
| 11 | |
| 12 | Examples : |
| 13 | script run legic_buffer2card |
| 14 | ]] |
| 15 | |
| 16 | local utils = require('utils') |
| 17 | local getopt = require('getopt') |
| 18 | --- |
| 19 | -- This is only meant to be used when errors occur |
| 20 | function oops(err) |
| 21 | print("ERROR: ",err) |
| 22 | return nil, err |
| 23 | end |
| 24 | --- |
| 25 | -- Usage help |
| 26 | function help() |
| 27 | print(desc) |
| 28 | print("Example usage") |
| 29 | print(example) |
| 30 | end |
| 31 | -- |
| 32 | -- simple loop-write from 0x07 to 0xff |
| 33 | function main() |
| 34 | |
| 35 | -- parse arguments for the script |
| 36 | for o, a in getopt.getopt(args, 'h') do |
| 37 | if o == "h" then return help() end |
| 38 | end |
| 39 | |
| 40 | local cmd = '' |
| 41 | local i |
| 42 | for i = 7, 255 do |
| 43 | cmd = ('hf legic write 0x%02x 0x01'):format(i) |
| 44 | print(cmd) |
| 45 | core.clearCommandBuffer() |
| 46 | core.console(cmd) |
| 47 | |
| 48 | -- got a 'cmd-buffer overflow' on my mac - so just wait a little |
| 49 | -- works without that pause on my linux-box |
| 50 | utils.Sleep(0.1) |
| 51 | end |
| 52 | end |
| 53 | |
| 54 | main() |