?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1.         ; based on examples/TapLib/TapLib.asm from Busy soft
  2.         MACRO        MakeTape tape_file?, prog_name?, code_adr?, code_len?
  3.  
  4. ZXB_CLEAR       EQU     $FD
  5. ZXB_VAL         EQU     $B0
  6. ZXB_INPUT       EQU     $EE
  7. ZXB_LOAD        EQU     $EF
  8. ZXB_CODE        EQU     $AF
  9. ZXB_RANDOMIZE   EQU     $F9
  10. ZXB_USR         EQU     $C0
  11.  
  12.                 ORG     #5C00
  13. .bas_start      DB      0,1                     ;; Line number
  14.                 DW      .line_len               ;; Line length
  15. .line_start     DB      ZXB_CLEAR, ZXB_VAL, '"23999":'          ; CLEAR VAL "23999":
  16.                 DB      ZXB_INPUT, '"Enter address:";a:'        ; INPUT "Enter address:";a:
  17.                 DB      ZXB_LOAD, '"'                           ; LOAD "
  18. .code_name      DB      prog_name?                              ; code name
  19.                 ASSERT ($ - .code_name) <= 10                   ; (max 10 chars)
  20.                 DB      '"',ZXB_CODE,'a:'                       ; " CODE a:
  21.                 DB      ZXB_RANDOMIZE, ZXB_USR, 'a'             ; RANDOMIZE USR a
  22.                 DB      13                                      ; <enter>
  23. .line_len       EQU     $-.line_start
  24. .bas_len        EQU     $-.bas_start
  25.  
  26.             EMPTYTAP tape_file?
  27.             SAVETAP  tape_file?,BASIC,prog_name?,.bas_start,.bas_len,1
  28.             ; make CODE-block load address 0, so it must be overriden by "LOAD CODE" explicitly
  29.             SAVETAP  tape_file?,CODE,prog_name?,code_adr?,code_len?,0
  30.  
  31.         ENDM
  32.