File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -14,8 +14,10 @@ SAVE_CODE:
1414 LOCAL ROM_SAVE
1515 LOCAL __ERR_EMPTY
1616 LOCAL SAVE_STOP
17-
18- ROM_SAVE EQU 0970h
17+
18+ #ifdef __ENABLE_BREAK__
19+ ROM_SAVE EQU 0970h
20+ #endif
1921 MEMBOT EQU 23698 ; Use the CALC mem to store header
2022
2123 pop hl ; Return address
@@ -90,5 +92,54 @@ SAVE_CONT:
9092SAVE_STOP:
9193 pop ix
9294 jp __STOP
95+
96+ #ifndef __ENABLE_BREAK__
97+ LOCAL CHAN_OPEN
98+ LOCAL PO_MSG
99+ LOCAL WAIT_KEY
100+ LOCAL SA_BYTES
101+
102+ CHAN_OPEN EQU 1601h
103+ PO_MSG EQU 0C0Ah
104+ WAIT_KEY EQU 15D4h
105+ SA_BYTES EQU 04C6h
106+
107+ ROM_SAVE:
108+
109+ push hl
110+ ld a , 0FDh
111+ call CHAN_OPEN
112+ xor a
113+ ld de , 09A1h
114+ call PO_MSG
115+ set 5 , (iy + 02h )
116+ call WAIT_KEY
117+ push ix
118+ ld de , 0011h
119+ ld a , r
120+ push af
121+ xor a
122+ call SA_BYTES
123+
124+ pop ix
125+ ld b , 32h
126+
127+ LOCAL SA_1_SEC
128+ SA_1_SEC:
129+ halt
130+ djnz SA_1_SEC
131+
132+ ld e , (ix + 0Bh )
133+ ld d , (ix + 0Ch )
134+ ld a , 0FFh
135+ pop ix
136+ call SA_BYTES
137+
138+ pop af
139+ ret po
140+ ei
141+ ret
142+
143+ #endif
93144
94145 ENDP
Original file line number Diff line number Diff line change @@ -1383,7 +1383,7 @@ LOAD_CODE:
13831383 ; Must skip first 8 bytes used by
13841384 ; PRINT routine
13851385 TMP_HEADER EQU HEAD1 + 17 ; Temporary HEADER2 pointer storage
1386- LD_BYTES EQU 0556h ; ROM Routine LD-BYTES
1386+ #line 34 "/zxbasic/library-asm/load.asm"
13871387 TMP_FLAG EQU 23655 ; Uses BREG as a Temporary FLAG
13881388 pop hl ; Return address
13891389 pop af ; A = 1 => LOAD; A = 0 => VERIFY
@@ -1543,6 +1543,28 @@ LOAD_END:
15431543 pop ix ; Recovers stack frame pointer
15441544 ld hl , (TMP_HEADER) ; Recovers tmp_header pointer
15451545 jp MEM_FREE ; Returns via FREE_MEM, freeing tmp header
1546+ LOCAL LD_BYTES_RET
1547+ LOCAL LD_BYTES_ROM
1548+ LOCAL LD_BYTES_NOINTER
1549+ LD_BYTES_ROM EQU 0562h
1550+ LD_BYTES:
1551+ inc d
1552+ ex af , af'
1553+ dec d
1554+ ld a , r
1555+ push af
1556+ di
1557+ call 0562h
1558+ LD_BYTES_RET:
1559+ ; Restores DI / EI state
1560+ ex af , af'
1561+ pop af
1562+ jp po , LD_BYTES_NOINTER
1563+ ei
1564+ LD_BYTES_NOINTER:
1565+ ex af , af'
1566+ ret
1567+ #line 262 "/zxbasic/library-asm/load.asm"
15461568 ENDP
15471569PRINT_TAPE_MESSAGES:
15481570 PROC
Original file line number Diff line number Diff line change @@ -1383,7 +1383,7 @@ LOAD_CODE:
13831383 ; Must skip first 8 bytes used by
13841384 ; PRINT routine
13851385 TMP_HEADER EQU HEAD1 + 17 ; Temporary HEADER2 pointer storage
1386- LD_BYTES EQU 0556h ; ROM Routine LD-BYTES
1386+ #line 34 "/zxbasic/library-asm/load.asm"
13871387 TMP_FLAG EQU 23655 ; Uses BREG as a Temporary FLAG
13881388 pop hl ; Return address
13891389 pop af ; A = 1 => LOAD; A = 0 => VERIFY
@@ -1543,6 +1543,28 @@ LOAD_END:
15431543 pop ix ; Recovers stack frame pointer
15441544 ld hl , (TMP_HEADER) ; Recovers tmp_header pointer
15451545 jp MEM_FREE ; Returns via FREE_MEM, freeing tmp header
1546+ LOCAL LD_BYTES_RET
1547+ LOCAL LD_BYTES_ROM
1548+ LOCAL LD_BYTES_NOINTER
1549+ LD_BYTES_ROM EQU 0562h
1550+ LD_BYTES:
1551+ inc d
1552+ ex af , af'
1553+ dec d
1554+ ld a , r
1555+ push af
1556+ di
1557+ call 0562h
1558+ LD_BYTES_RET:
1559+ ; Restores DI / EI state
1560+ ex af , af'
1561+ pop af
1562+ jp po , LD_BYTES_NOINTER
1563+ ei
1564+ LD_BYTES_NOINTER:
1565+ ex af , af'
1566+ ret
1567+ #line 262 "/zxbasic/library-asm/load.asm"
15461568 ENDP
15471569PRINT_TAPE_MESSAGES:
15481570 PROC
Original file line number Diff line number Diff line change @@ -1383,7 +1383,7 @@ LOAD_CODE:
13831383 ; Must skip first 8 bytes used by
13841384 ; PRINT routine
13851385 TMP_HEADER EQU HEAD1 + 17 ; Temporary HEADER2 pointer storage
1386- LD_BYTES EQU 0556h ; ROM Routine LD-BYTES
1386+ #line 34 "/zxbasic/library-asm/load.asm"
13871387 TMP_FLAG EQU 23655 ; Uses BREG as a Temporary FLAG
13881388 pop hl ; Return address
13891389 pop af ; A = 1 => LOAD; A = 0 => VERIFY
@@ -1543,6 +1543,28 @@ LOAD_END:
15431543 pop ix ; Recovers stack frame pointer
15441544 ld hl , (TMP_HEADER) ; Recovers tmp_header pointer
15451545 jp MEM_FREE ; Returns via FREE_MEM, freeing tmp header
1546+ LOCAL LD_BYTES_RET
1547+ LOCAL LD_BYTES_ROM
1548+ LOCAL LD_BYTES_NOINTER
1549+ LD_BYTES_ROM EQU 0562h
1550+ LD_BYTES:
1551+ inc d
1552+ ex af , af'
1553+ dec d
1554+ ld a , r
1555+ push af
1556+ di
1557+ call 0562h
1558+ LD_BYTES_RET:
1559+ ; Restores DI / EI state
1560+ ex af , af'
1561+ pop af
1562+ jp po , LD_BYTES_NOINTER
1563+ ei
1564+ LD_BYTES_NOINTER:
1565+ ex af , af'
1566+ ret
1567+ #line 262 "/zxbasic/library-asm/load.asm"
15461568 ENDP
15471569PRINT_TAPE_MESSAGES:
15481570 PROC
Original file line number Diff line number Diff line change @@ -1388,7 +1388,7 @@ LOAD_CODE:
13881388 ; Must skip first 8 bytes used by
13891389 ; PRINT routine
13901390 TMP_HEADER EQU HEAD1 + 17 ; Temporary HEADER2 pointer storage
1391- LD_BYTES EQU 0556h ; ROM Routine LD-BYTES
1391+ #line 34 "/zxbasic/library-asm/load.asm"
13921392 TMP_FLAG EQU 23655 ; Uses BREG as a Temporary FLAG
13931393 pop hl ; Return address
13941394 pop af ; A = 1 => LOAD; A = 0 => VERIFY
@@ -1548,6 +1548,28 @@ LOAD_END:
15481548 pop ix ; Recovers stack frame pointer
15491549 ld hl , (TMP_HEADER) ; Recovers tmp_header pointer
15501550 jp MEM_FREE ; Returns via FREE_MEM, freeing tmp header
1551+ LOCAL LD_BYTES_RET
1552+ LOCAL LD_BYTES_ROM
1553+ LOCAL LD_BYTES_NOINTER
1554+ LD_BYTES_ROM EQU 0562h
1555+ LD_BYTES:
1556+ inc d
1557+ ex af , af'
1558+ dec d
1559+ ld a , r
1560+ push af
1561+ di
1562+ call 0562h
1563+ LD_BYTES_RET:
1564+ ; Restores DI / EI state
1565+ ex af , af'
1566+ pop af
1567+ jp po , LD_BYTES_NOINTER
1568+ ei
1569+ LD_BYTES_NOINTER:
1570+ ex af , af'
1571+ ret
1572+ #line 262 "/zxbasic/library-asm/load.asm"
15511573 ENDP
15521574PRINT_TAPE_MESSAGES:
15531575 PROC
Original file line number Diff line number Diff line change @@ -1387,7 +1387,7 @@ LOAD_CODE:
13871387 ; Must skip first 8 bytes used by
13881388 ; PRINT routine
13891389 TMP_HEADER EQU HEAD1 + 17 ; Temporary HEADER2 pointer storage
1390- LD_BYTES EQU 0556h ; ROM Routine LD-BYTES
1390+ #line 34 "/zxbasic/library-asm/load.asm"
13911391 TMP_FLAG EQU 23655 ; Uses BREG as a Temporary FLAG
13921392 pop hl ; Return address
13931393 pop af ; A = 1 => LOAD; A = 0 => VERIFY
@@ -1547,6 +1547,28 @@ LOAD_END:
15471547 pop ix ; Recovers stack frame pointer
15481548 ld hl , (TMP_HEADER) ; Recovers tmp_header pointer
15491549 jp MEM_FREE ; Returns via FREE_MEM, freeing tmp header
1550+ LOCAL LD_BYTES_RET
1551+ LOCAL LD_BYTES_ROM
1552+ LOCAL LD_BYTES_NOINTER
1553+ LD_BYTES_ROM EQU 0562h
1554+ LD_BYTES:
1555+ inc d
1556+ ex af , af'
1557+ dec d
1558+ ld a , r
1559+ push af
1560+ di
1561+ call 0562h
1562+ LD_BYTES_RET:
1563+ ; Restores DI / EI state
1564+ ex af , af'
1565+ pop af
1566+ jp po , LD_BYTES_NOINTER
1567+ ei
1568+ LD_BYTES_NOINTER:
1569+ ex af , af'
1570+ ret
1571+ #line 262 "/zxbasic/library-asm/load.asm"
15501572 ENDP
15511573PRINT_TAPE_MESSAGES:
15521574 PROC
Original file line number Diff line number Diff line change @@ -386,7 +386,7 @@ SAVE_CODE:
386386 LOCAL ROM_SAVE
387387 LOCAL __ERR_EMPTY
388388 LOCAL SAVE_STOP
389- ROM_SAVE EQU 0970h
389+ #line 21 "/zxbasic/library-asm/save.asm"
390390 MEMBOT EQU 23698 ; Use the CALC mem to store header
391391 pop hl ; Return address
392392 pop bc ; data length in bytes
@@ -448,6 +448,45 @@ SAVE_CONT:
448448SAVE_STOP:
449449 pop ix
450450 jp __STOP
451+ LOCAL CHAN_OPEN
452+ LOCAL PO_MSG
453+ LOCAL WAIT_KEY
454+ LOCAL SA_BYTES
455+ CHAN_OPEN EQU 1601h
456+ PO_MSG EQU 0C0Ah
457+ WAIT_KEY EQU 15D4h
458+ SA_BYTES EQU 04C6h
459+ ROM_SAVE:
460+ push hl
461+ ld a , 0FDh
462+ call CHAN_OPEN
463+ xor a
464+ ld de , 09A1h
465+ call PO_MSG
466+ set 5 , (iy + 02h )
467+ call WAIT_KEY
468+ push ix
469+ ld de , 0011h
470+ ld a , r
471+ push af
472+ xor a
473+ call SA_BYTES
474+ pop ix
475+ ld b , 32h
476+ LOCAL SA_1_SEC
477+ SA_1_SEC:
478+ halt
479+ djnz SA_1_SEC
480+ ld e , (ix + 0Bh )
481+ ld d , (ix + 0Ch )
482+ ld a , 0FFh
483+ pop ix
484+ call SA_BYTES
485+ pop af
486+ ret po
487+ ei
488+ ret
489+ #line 144 "/zxbasic/library-asm/save.asm"
451490 ENDP
452491#line 33 "save.bas"
453492ZXBASIC_USER_DATA:
Original file line number Diff line number Diff line change @@ -390,7 +390,7 @@ SAVE_CODE:
390390 LOCAL ROM_SAVE
391391 LOCAL __ERR_EMPTY
392392 LOCAL SAVE_STOP
393- ROM_SAVE EQU 0970h
393+ #line 21 "/zxbasic/library-asm/save.asm"
394394 MEMBOT EQU 23698 ; Use the CALC mem to store header
395395 pop hl ; Return address
396396 pop bc ; data length in bytes
@@ -452,6 +452,45 @@ SAVE_CONT:
452452SAVE_STOP:
453453 pop ix
454454 jp __STOP
455+ LOCAL CHAN_OPEN
456+ LOCAL PO_MSG
457+ LOCAL WAIT_KEY
458+ LOCAL SA_BYTES
459+ CHAN_OPEN EQU 1601h
460+ PO_MSG EQU 0C0Ah
461+ WAIT_KEY EQU 15D4h
462+ SA_BYTES EQU 04C6h
463+ ROM_SAVE:
464+ push hl
465+ ld a , 0FDh
466+ call CHAN_OPEN
467+ xor a
468+ ld de , 09A1h
469+ call PO_MSG
470+ set 5 , (iy + 02h )
471+ call WAIT_KEY
472+ push ix
473+ ld de , 0011h
474+ ld a , r
475+ push af
476+ xor a
477+ call SA_BYTES
478+ pop ix
479+ ld b , 32h
480+ LOCAL SA_1_SEC
481+ SA_1_SEC:
482+ halt
483+ djnz SA_1_SEC
484+ ld e , (ix + 0Bh )
485+ ld d , (ix + 0Ch )
486+ ld a , 0FFh
487+ pop ix
488+ call SA_BYTES
489+ pop af
490+ ret po
491+ ei
492+ ret
493+ #line 144 "/zxbasic/library-asm/save.asm"
455494 ENDP
456495#line 37 "save01.bas"
457496ZXBASIC_USER_DATA:
You can’t perform that action at this time.
0 commit comments