diff --git a/README.md b/README.md index 78f01c9..8049ced 100644 --- a/README.md +++ b/README.md @@ -22,3 +22,5 @@ This repro includes a `BASIS.SYSTEM` implementation that takes the passed file a * ... And then Bitsy Bye will be able to launch them. + +If invoked on a file type other than $F1...$F4 it will QUIT back to ProDOS. diff --git a/basis.system.s b/basis.system.s index e045904..df275a2 100644 --- a/basis.system.s +++ b/basis.system.s @@ -69,6 +69,20 @@ reloc_start: launcher_filename: PASCAL_STRING "DOS3.3.LAUNCHER" +.proc get_file_info_params +param_count: .byte $A +pathname: .addr filename_buffer +access: .byte 0 +file_type: .byte 0 +aux_type: .word 0 +storage_type: .byte 0 +blocks_used: .word 0 +mod_date: .word 0 +mod_time: .word 0 +create_date: .word 0 +create_time: .word 0 +.endproc + .proc open_params param_count: .byte 3 path: .addr launcher_filename @@ -97,6 +111,16 @@ pathname: .addr launcher_prefix newstart: +;;; Check file type is in $F1...$F4 + + MLI_CALL GET_FILE_INFO, get_file_info_params + bcs quit + lda get_file_info_params::file_type + cmp #$F1 + bcc quit + cmp #$F4+1 + bcs quit + ;;; Find DOS3.3.LAUNCHER check_for_launcher: