DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦7ab8bfec7⟧ TextFile

    Length: 23808 (0x5d00)
    Types: TextFile
    Names: »PROMBR1.NAS«

Derivation

└─⟦122ca995a⟧ Bits:30005902 Move-IT arbejdsdiskette
    └─ ⟦this⟧ »PROMBR1.NAS« 

TextFile


0001               ;     PROGRAM TIL BITS & P.C.s PROM BLOWER
0002               ;       AF OZ4RV VIGGO BO JENSEN  820130
0003               ;
0004 8000                  ORG  08000H
0005               ;       MEM  $
0006               ;
0007               ;     CNTR PORT ER PORT B OG ER SOM FØLGER
0008               ;
0009 0000          ACLOCK: EQU  0  ;ADR COUNT CLOK LOW TO CLOK
0010 0001          RESET:  EQU  1  ;RESET ADR COUNTER HIGH TO RES.
0011 0002          RP2708: EQU  2  ;READ / PROG 2708 LOW TO READ
0012 0003          MROM:   EQU  3  ;MARSTER ROM SEL LOW TO SELECT
0013 0004          TRIG:   EQU  4  ;TRIG PROGRAM PULS HIGH TO TRIG
0014 0005          RW2716: EQU  5  ;READ / WRITE 2716 LOW READ
0015 0006          STATE3: EQU  6  ;ACTIVATE 2708 DESELECT
0016 0007          B2732:  EQU  7  ;BIT IS SET TO HIGH IF 2732
0017               ;
0018 000E          ADATA:  EQU 14  ;DATA TIL OG FRA COMPUT
0019 0010          ACTRL:  EQU 16  ;CTRL FOR DATAPORT
0020 000F          BDATA:  EQU 15  ;CTRL PORT FOR BRÆNDER
0021 0011          BCTRL:  EQU 17  ;CTRL FOR CTRL PORT
0022               ;
0023 0007          TBIT:   EQU  7  ;PROM LOW = 2708, HIGH = 2716
0024               ;
0025               ;             MONITORRUTINER.
0026               ;
0027 0060          ARGS:   EQU 60H       ;GET ARGUMENTS
0028 0063          INLIN:  EQU 63H       ;HENT INPUTLINJE
0029 0066          TBCD3:  EQU 66H       ;DISPLAY HL I ASCII
0030 006B          ERRM:   EQU 6BH       ;ERROR MSG.
0031 005B          MRET:   EQU 5BH       ;RETUR TIL NASSYS
0032 005D          TDEL:   EQU 5DH       ;DELAY CA. 1 SEK VED 4Mhz
0033 0028          PRS:    EQU 28H       ;PRINT STRING
0034 0068          B2HEX:  EQU 68H       ;OUTPUT A I ASCII
0035 0069          SPACE:  EQU 69H       ;OUTPUT EN SPACE
0036 0008          RIN:    EQU 08H       ;VENT PAA TAST
0037 0079          RLIN:   EQU 79H       ;HENT ARG. TIL ARGS ADR.
0038 0062          KEY:    EQU 62H       ;CHECK FOR TAST
0039 001B          ESC:    EQU 1BH       ;ASCII ESCAPE
0040               ;
0041 0C0C          ARG1:   EQU  0C0CH    ;ARGUMENT 1
0042 0C0E          ARG2:   EQU  0C0EH    ;ARGUMENT 2
0043 0C10          ARG3:   EQU  0C10H    ;ARGUMENT 3
0044 0BCA          CFP:    EQU  0BCAH    ;CURSER FIRST POSS.
0045 0C29          CLP:    EQU  0C29H    ;CURSER LAST POSS.
0046               ;             S
0047               ;
0048               ;
0049 8000 EF0C00   START:  DB   0EFH,0CH,0 ;CLS
0050 8003 11D30B           LD   DE,0BD3H   ;START ADR FOR TEXT
0051 8006 211080           LD   HL,MESS    ;OVERSKRIFT
0052 8009 011B00           LD   BC,MESS1-MESS
0053 800C EDB0             LDIR
0054 800E 181B             JR   MENU▶8a◀0055               ;
0056 8010 4550524F MESS:   DB   "EPROM PROGRAMMER TIL 2 MHz."
0057 8014 4D205052 
0058 8018 4F475241 
0059 801C 4D4D4552 
0060 8020 2054494C 
0061 802B          MESS1:  EQU  $
0062               ;
0063 802B 310010   MENU:   LD   SP,1000H   ;RESET SP
0064 802E 3EFF             LD   A,0FFH
0065 8030 D310             OUT  (ACTRL),A   ;DATAPORT=INPORT
0066 8032 D310             OUT  (ACTRL),A   ;ALLE 8=INPUT
0067 8034 3ECF             LD   A,0CFH
0068 8036 D311             OUT  (BCTRL),A   ;CONTR.PORT=BITCONTR.
0069 8038 3E80             LD   A,80H
0070 803A D311             OUT  (BCTRL),A
0071 803C 3EFF             LD   A,0FFH
0072 803E D30F             OUT  (BDATA),A  ;INIT.CONTR.PORT
0073               ;
0074               ;            HER UDSKRIVES MENUEN
0075               ;
0076 8040 EF               RST  PRS
0077 8041 0D0D             DB   0DH,0DH
0078 8043 42203A20         DB   'B : BLOW FULLY ERASED PROM: '
0079 8047 424C4F57 
0080 804B 2046554C 
0081 804F 4C592045 
0082 8053 52415345 
0083 805F 54595045         DB   'TYPE, D OR ADR.'
0084 8063 2C204420 
0085 8067 4F522041 
0086 806B 44522E   
0087 806E 0D               DB   0DH
0088 806F 45203A20         DB   'E : BLOW NOT ERASED PROM: '
0089 8073 424C4F57 
0090 8077 204E4F54 
0091 807B 20455241 
0092 807F 53454420 
0093 8089 54595045         DB   'TYPE, D OR ADR.'
0094 808D 2C204420 
0095 8091 4F522041 
0096 8095 44522E   
0097 8098 0D               DB   0DH
0098 8099 56203A20         DB   'V : VERIFICER PROM: '
0099 809D 56455249 
0100 80A1 46494345 
0101 80A5 52205052 
0102 80A9 4F4D3A20 
0103 80AD 54595045         DB   'TYPE, D OR ADR.'
0104 80B1 2C204420 
0105 80B5 4F522041 
0106 80B9 44522E   
0107 80BC 0D               DB   0DH
0108 80BD 52203A20         DB   'R : READ DONOR: TYPE, TO ADR.'
0109 80C1 52454144 ▶8a◀0110 80C5 20444F4E 
0111 80C9 4F523A20 
0112 80CD 54595045 
0113 80DA 0D               DB   0DH
0114 80DB 4B203A20         DB   'K : CHECK PROM FULLY ERASED: '
0115 80DF 43484543 
0116 80E3 4B205052 
0117 80E7 4F4D2046 
0118 80EB 554C4C59 
0119 80F8 54595045         DB   'TYPE'
0120 80FC 0D               DB   0DH
0121 80FD 46203A20         DB   'F : FF I BUFFER (4K): ADR:'
0122 8101 46462049 
0123 8105 20425546 
0124 8109 46455220 
0125 810D 28344B29 
0126 8117 0D               DB   0DH
0127 8118 4D203A20         DB   'M : MODIFY: ADR.'
0128 811C 4D4F4449 
0129 8120 46593A20 
0130 8124 4144522E 
0131 8128 0D               DB   0DH
0132 8129 43203A20         DB   'C : COPY FROM, TO, BYTE: '
0133 812D 434F5059 
0134 8131 2046524F 
0135 8135 4D2C2054 
0136 8139 4F2C2042 
0137 8142 41524720         DB   'ARG 1, ARG 2, ARG 3'
0138 8146 312C2041 
0139 814A 52472032 
0140 814E 2C204152 
0141 8152 472033   
0142 8155 0D               DB   0DH
0143 8156 54203A20         DB   'T : DISPLAY FROM,TO,LINES: '
0144 815A 44495350 
0145 815E 4C415920 
0146 8162 46524F4D 
0147 8166 2C544F2C 
0148 8171 41524720         DB   'ARG 1, ARG 2, ARG 3'
0149 8175 312C2041 
0150 8179 52472032 
0151 817D 2C204152 
0152 8181 472033   
0153 8184 0D51203A         DB   0DH,'Q : RETURN TO MONITOR.'
0154 8188 20524554 
0155 818C 55524E20 
0156 8190 544F204D 
0157 8194 4F4E4954 
0158 819B 0D0D00           DB   0DH,0DH,0
0159               ;
0160 819E DF63             SCAL INLIN      ;HENT KOMMANDO KARAKTER
0161 81A0 1A               LD   A,(DE)     ;IND I A
0162 81A1 FE41             CP   'A'        ;<A?
0163 81A3 DA8E83           JP   C,ERROR0   ;ELLER
0164 81A6 FE5B             CP   'Z'+1      ;>A?▶8a◀0165 81A8 D28E83           JP   NC,ERROR0
0166 81AB FE42             CP   'B'
0167 81AD CA6A82           JP   Z,ROMBLO
0168 81B0 FE45             CP   'E'
0169 81B2 CA6282           JP   Z,NEBLOW
0170 81B5 FE56             CP   'V'
0171 81B7 CA4483           JP   Z,VERIF1
0172 81BA FE52             CP   'R'
0173 81BC CA2983           JP   Z,INPUT
0174 81BF FE51             CP   'Q'
0175 81C1 281C             JR   Z,MONRET
0176 81C3 FE4B             CP   'K'
0177 81C5 CA2083           JP   Z,ERASE
0178 81C8 FE46             CP   'F'
0179 81CA CA5C84           JP   Z,FFIRAM
0180 81CD FE4D             CP   'M'
0181 81CF CA7384           JP   Z,MODIFY
0182 81D2 FE43             CP   'C'
0183 81D4 CA7B84           JP   Z,COPY
0184 81D7 FE54             CP   'T'
0185 81D9 CA8584           JP   Z,TAB
0186 81DC C38E83           JP   ERROR0
0187               ;
0188 81DF DF5B     MONRET: SCAL 5BH
0189               ;
0190               ;RUTINE TIL AT HENTE ARGUMENTER TIL ARGS ADR.
0191               ;
0192 81E1 13       INARGS: INC  DE
0193 81E2 DF79             SCAL RLIN
0194 81E4 C9               RET
0195               ;
0196 81E5 3E7F     INBYTE: LD   A,7FH
0197 81E7 D310             OUT  (ACTRL),A
0198 81E9 79               LD   A,C
0199 81EA D30F             OUT  (BDATA),A
0200 81EC DB0E             IN   A,(ADATA)
0201 81EE C9               RET
0202               ;
0203               ; DENNE RUTINE KONTROLLERER OM DET ER EN 2708,
0204               ;   OG SETTER TESTBIT HVIS DET ER EN SÅDAN.
0205               ;
0206 81EF ED5B0C0C ROMCHK: LD   DE,(ARG1)
0207 81F3 3E27             LD   A,27H
0208 81F5 BA               CP   D          ;ER DET EN 27XX ?
0209 81F6 C28E83           JP   NZ,ERROR0  ;NÅ IKKE SÅ ER DER FEJL
0210 81F9 3E08             LD   A,08H
0211 81FB BB               CP   E          ;ER DET EN 2708 ?
0212 81FC 2008             JR   NZ,ROMT1   ;IKKE 2708, MEN 2716 ?
0213 81FE 110004           LD   DE,1024    ;LOKATIONER I EN 2708
0214 8201 79               LD   A,C        ;HENT CTRL ORD
0215 8202 CBBF             RES  TBIT,A
0216 8204 4F               LD   C,A        ;GEM CTRL ORD
0217 8205 C9               RET
0218               ;
0219               ; DENNE RUTINE KONTROLLERER OM DET ER EN 2716.▶8a◀0220               ;   OG SETTER TESTBIT HVIS DET ER EN SÅDAN.
0221               ;
0222 8206 3E16     ROMT1:  LD   A,16H
0223 8208 BB               CP   E          ;ER DET EN 2716 ?
0224 8209 C21482           JP   NZ,ROMT2   ;IKKE 2716, MEN 2732 ?
0225 820C 110008           LD   DE,2048    ;LOKATIONER I EN 2716
0226 820F 79               LD   A,C        ;HENT CTRL ORD
0227 8210 CBFF             SET  TBIT,A
0228 8212 4F               LD   C,A        ;GEM CTRL ORD
0229 8213 C9               RET
0230               ;
0231               ; DENNE RUTINE KONTROLLERER OM DET ER EN 2732,
0232               ;   OG SETTER TESTBIT HVIS DET ER EN SÅDAN.
0233               ;
0234 8214 3E32     ROMT2:  LD   A,32H
0235 8216 BB               CP   E          ;ER DET SÅ EN 2732 ?
0236 8217 C28E83           JP   NZ,ERROR0  ;EJ 2732 SÅ ER DER FEJL
0237 821A 110010           LD   DE,4096    ;LOKATIONER I EN 2732
0238 821D 79               LD   A,C        ;HENT CTRL ORD
0239 821E CBFF             SET  TBIT,A
0240 8220 4F               LD   C,A        ;GEM CTRL ORD
0241 8221 C9               RET
0242               ;
0243 8222 3E0F     INIT:   LD   A,0FH
0244 8224 D311             OUT  (BCTRL),A
0245 8226 3E6F             LD   A,6FH
0246 8228 D30F             OUT  (BDATA),A
0247 822A CB8F             RES  RESET,A
0248 822C D30F             OUT  (BDATA),A
0249 822E 4F               LD   C,A
0250 822F C9               RET
0251               ;
0252               ;     CHECK OM DET ER DONOR ELLER RAM DER SKAL
0253               ;     BRUGES, OG SELEKT DONOR HVIS DONOR
0254               ;
0255 8230 2A0E0C   DONRAM: LD   HL,(ARG2)
0256 8233 3E0D             LD   A,0DH
0257 8235 BD               CP   L          ;ER DET DONOR ELLER RAM
0258 8236 2007             JR   NZ,MBRAM   ;HVIS DONOR SÅ RETURN
0259 8238 79               LD   A,C        ;HENT CTRL ORD
0260 8239 CB9F             RES  MROM,A     ;SELEKT DONOR
0261 823B 4F               LD   C,A        ;GEM CTRL ORD
0262 823C 210000           LD   HL,0
0263 823F C9       MBRAM:  RET
0264               ;
0265               ;DENNE RUTINE INC ADDRESSE COUNTEREN OG DEC DE
0266               ;KLAR TIL TEST, SAMT INC HL TIL NESTE BYTE
0267               ;
0268 8240 79       INCADD: LD   A,C        ;HENT CTRL ORD
0269 8241 CB87             RES  ACLOCK,A
0270 8243 D30F             OUT  (BDATA),A  ;SET CK PULS LAV
0271 8245 00               NOP
0272 8246 CBC7             SET  ACLOCK,A
0273 8248 D30F             OUT  (BDATA),A  ;SET CK PULS HØJ
0274 824A 4F               LD   C,A        ;GEM CTRL ORD▶8a◀0275 824B 23               INC  HL         ;GØR KLAR TIL NESTE BYT
0276 824C 1B       DECDE:  DEC  DE
0277 824D 7A               LD   A,D
0278 824E B3               OR   E          ;SET FLAF HVIS ZER0 -
0279 824F C9               RET             ;TEST FL I HOVED RUTINE
0280               ;
0281               ;  RUTINE DER SKRIVER LOOP NR. OG ADR NR. VED
0282               ;       BLOWING PÅ CRT NÅR PROG RUNNES
0283               ;
0284 8250 78       PNTHEX: LD   A,B
0285 8251 3D               DEC  A
0286 8252 DF68             SCAL B2HEX      ;OUTPUT A I ASCII
0287 8254 3E07             LD   A,7
0288 8256 85               ADD  A,L
0289 8257 6F               LD   L,A
0290 8258 22290C           LD   (CLP),HL
0291 825B 7A               LD   A,D
0292 825C DF68             SCAL B2HEX
0293 825E 7B               LD   A,E
0294 825F DF68             SCAL B2HEX
0295 8261 C9               RET
0296               ;
0297               ;BLOW RUTINE UDEN CHECK FOR AT PROM ER ERASED
0298               ;
0299 8262 CDE181   NEBLOW: CALL INARGS
0300 8265 CDEF81           CALL ROMCHK
0301 8268 1806             JR   BLOW
0302               ;
0303               ;BLOW RUTINE MED CHECK FOR AT PROM ER ERASED
0304               ;
0305 826A CDE181   ROMBLO: CALL INARGS
0306 826D CD0183           CALL ALSET1     ;CHEK FOR ERASED
0307 8270 210084   BLOW:   LD   HL,MES1    ;HENT TEXT
0308 8273 CD4E84           CALL TLINE      ;SKRIV TEXT LINIE
0309 8276 79               LD   A,C
0310 8277 CB7F             BIT  TBIT,A     ;TESTBIT
0311 8279 C28082           JP   NZ,CYCL16
0312 827C 0664             LD   B,100      ;ANTAL LOOP FOR 2708
0313 827E 1802             JR   ROMBL4
0314 8280 0602     CYCL16: LD   B,2        ;ANTAL LOOP FOR 2716
0315 8282 CD2282   ROMBL4: CALL INIT
0316 8285 CDEF81           CALL ROMCHK     ;HVILKEN PROM TYPE ?
0317 8288 CD3082           CALL DONRAM     ;DONOR ELLER RAM ?
0318 828B 79               LD   A,C
0319 828C CBB7             RES  STATE3,A   ;DESELEKT 2708
0320 828E 4F               LD   C,A
0321 828F CB5F             BIT  MROM,A     ;SELEKT MARSTER PROM
0322 8291 C49882           CALL NZ,ROMBL1
0323 8294 3E7F             LD   A,7FH
0324 8296 1802             JR   ROMBL2
0325               
0326               ;I THIS MODE IT WILL NOT EFFECT THE DATA BUS ON
0327               ;THE PROM BLOWER SLAVE IN PROG. MODE FROM INIT.
0328               ;
0329 8298 3E0F     ROMBL1: LD   A,0FH      ;SET PORT TIL OUTPUT▶8a◀0330 829A D310     ROMBL2: OUT  (ACTRL),A  ;SET TO CHOSEN MODE
0331 829C 79               LD   A,C        ;HENT CTRL
0332 829D D30F             OUT  (BDATA),A  ;OUTPUT CTRL ORD
0333 829F 7E       ROMBL3: LD   A,(HL)     ;DATA FRA RAM TIL A
0334 82A0 D30E             OUT  (ADATA),A  ;SEND DATA TIL PORTEN
0335 82A2 79               LD   A,C        ;HENT CTRL ORD IGEN
0336 82A3 CBE7             SET  TRIG,A
0337 82A5 D30F             OUT  (BDATA),A  ;SEND TRIG PULS
0338 82A7 D5               PUSH DE
0339 82A8 54               LD   D,H
0340 82A9 5D               LD   E,L
0341 82AA E5               PUSH HL
0342 82AB 212408           LD   HL,0824H   ;TEXT POS ON CRT.
0343 82AE 22290C           LD   (CLP),HL
0344 82B1 CD5082           CALL PNTHEX     ;SEND TEXT
0345 82B4 E1               POP  HL
0346 82B5 D1               POP  DE
0347 82B6 79               LD   A,C        ;HENT CTRL ORD
0348 82B7 D5               PUSH DE         ;GEM COUNT LOCATION
0349 82B8 CB7F             BIT  TBIT,A     ;ER DET 2708 ELLER 2716
0350 82BA CAC582           JP   Z,NODEL    ;2708 SÅ HOP TIL NODEL
0351               ;
0352               ;DELAY FOR 2716 PR. PULS, 333 VED 2Mhz CPU CLOK
0353               ;DELAY FOR 2716 PR. PULS, 555 VED 4Mhz CPU CLOK
0354               ;
0355 82BD 113303           LD   DE,333H
0356               ;
0357 82C0 CD4C82   GODEL:  CALL DECDE
0358 82C3 20FB             JR   NZ,GODEL
0359 82C5 D1       NODEL:  POP  DE
0360 82C6 79               LD   A,C
0361 82C7 D30F             OUT  (BDATA),A
0362 82C9 CD4082           CALL INCADD
0363 82CC 20D1             JR   NZ,ROMBL3
0364 82CE 05               DEC  B
0365 82CF C28282           JP   NZ,ROMBL4
0366 82D2 00               NOP
0367 82D3 00               NOP
0368 82D4 00               NOP
0369 82D5 EF0C             DB   0EFH,0CH
0370 82D7 57414954         DB   'WAITING 5 Secs                ',0
0371 82DB 494E4720 
0372 82DF 35205365 
0373 82E3 63732020 
0374 82E7 20202020 
0375 82F6 DF5D             SCAL TDEL       ;DELAYET ER VED 4 Mhz -
0376 82F8 DF5D             SCAL TDEL       ;CA. 1 SEK.
0377 82FA DF5D             SCAL TDEL
0378 82FC DF5D             SCAL TDEL
0379 82FE CD4483           CALL VERIF1
0380               ;
0381               ;       RUTINE TIL AT SETTE CTRL MED
0382               ;
0383 8301 EF0C00   ALSET1: DB   0EFH,0CH,00H
0384 8304 CD2282           CALL INIT▶8a◀0385 8307 CDEF81           CALL ROMCHK
0386 830A 79               LD   A,C
0387 830B CB97             RES  RP2708,A   ;*
0388 830D CBF7             SET  STATE3,A   ;*SET CTRL TO READ PROM
0389 830F CBAF             RES  RW2716,A   ;*
0390 8311 4F               LD   C,A        ;GEM CTRL ORD
0391               ;
0392               ;    CHECK OM ALLE LOKATIONER I PROM ER FF
0393               ;
0394 8312 CDE581   ALSET2: CALL INBYTE     ;HENT EN BYTE
0395 8315 FEFF             CP   0FFH       ;TEST FOR ALLE BIT = 1
0396 8317 C2AD83           JP   NZ,ERROR1  ;HVIS IKKE SÅ ERROR
0397 831A CD4082           CALL INCADD     ;OPDATER POINTER
0398 831D 20F3             JR   NZ,ALSET2  ;HENT DEN NÆSTE BYTE
0399 831F C9               RET
0400               ;
0401               ;    RUTINE TIL CHECK OM PROM ER FULLY ERASE
0402               ;
0403 8320 CDE181   ERASE:  CALL INARGS
0404 8323 CD0183           CALL ALSET1
0405 8326 C32B80           JP   MENU
0406               ;
0407               ;    RUTINE TIL AT LÆSE DONOR IND I RAM BUFFER
0408               ;
0409 8329 CDE181   INPUT:  CALL INARGS
0410 832C CD2282           CALL INIT
0411 832F CDEF81           CALL ROMCHK
0412 8332 2A0E0C           LD   HL,(ARG2)
0413 8335 CB9F             RES  MROM,A
0414 8337 4F               LD   C,A
0415 8338 CDE581   INPUT2: CALL INBYTE
0416 833B 77               LD   (HL),A
0417 833C CD4082           CALL INCADD
0418 833F 20F7             JR   NZ,INPUT2
0419 8341 C32B80           JP   MENU
0420               ;
0421               ;       RUTINE TIL CHECK AF INDHOLD PROM
0422               ;
0423 8344 CDE181   VERIF1: CALL INARGS
0424 8347 212784           LD   HL,MES2    ;HENT TEXT
0425 834A CD4E84           CALL TLINE      ;SEND TEXT TOL CRT
0426 834D CD2282   VERIFY: CALL INIT
0427 8350 CDEF81           CALL ROMCHK     ;PROM TYPE ?
0428 8353 CD3082           CALL DONRAM     ;ER DET DONOR ELLER RAM
0429 8356 D5       V1:     PUSH DE
0430 8357 79               LD   A,C        ;HENT CTRL ORD
0431 8358 5F               LD   E,A
0432 8359 CB97             RES  RP2708,A   ;*
0433 835B CBF7             SET  STATE3,A   ;*SET CTRL TO READ PROM
0434 835D CBAF             RES  RW2716,A   ;*
0435 835F CBDF             SET  MROM,A     ;DESELECT DONOR
0436 8361 4F               LD   C,A        ;GEM CTRL ORD
0437 8362 CDE581           CALL INBYTE     ;HENT BYTE FRA PROM
0438 8365 57               LD   D,A        ;GEM BYTE
0439 8366 7B               LD   A,E▶8a◀0440 8367 CB5F             BIT  MROM,A     ;HVORFRA KOMMER DATA ?
0441 8369 200E             JR   NZ,VRAM
0442 836B CBEF             SET  RW2716,A
0443 836D CBD7             SET  RP2708,A
0444 836F CBF7             SET  STATE3,A
0445 8371 CB9F             RES  MROM,A     ;SELECT DONOR
0446 8373 4F               LD   C,A        ;GEM CTRL ORD
0447 8374 CDE581           CALL INBYTE     ;HENT BYTE FRA DONOR
0448 8377 1801             JR   V2
0449               
0450 8379 7E       VRAM:   LD   A,(HL)     ;HENT BYTE FRA RAM
0451 837A BA       V2:     CP   D          ;ER DE 2 BYTE ENS ?
0452 837B C4CA83           CALL NZ,ERROR2  ;HVIS IKKE SÅ ERROR
0453 837E D1               POP  DE
0454 837F CD4082           CALL INCADD     ;HENT NÅSTE BYTE
0455 8382 20D2             JR   NZ,V1
0456 8384 C32B80           JP   MENU
0457               ;
0458 8387 21CA0B   CURPOS: LD   HL,CFP
0459 838A 22290C           LD   (CLP),HL
0460 838D C9               RET
0461               ;
0462 838E EF       ERROR0: RST  PRS
0463 838F 0C               DB   0CH
0464 8390 2A202A20         DB   '* * OPTIONS INCORRECT * *',0
0465 8394 4F505449 
0466 8398 4F4E5320 
0467 839C 494E434F 
0468 83A0 52524543 
0469 83AA C32B80           JP   MENU
0470               ;
0471 83AD EF       ERROR1: RST  PRS
0472 83AE 0C               DB   0CH
0473 83AF 2A202A20         DB   '* * PROM NOT ERASED * *',0
0474 83B3 50524F4D 
0475 83B7 204E4F54 
0476 83BB 20455241 
0477 83BF 53454420 
0478 83C7 C32B80           JP   MENU
0479               ;
0480 83CA 47       ERROR2: LD   B,A
0481 83CB 04               INC  B
0482 83CC E5               PUSH HL
0483 83CD D5               PUSH DE
0484 83CE 54               LD   D,H
0485 83CF 5D               LD   E,L
0486 83D0 EF0D2045         DB   0EFH,0DH,' ERROR IN LOCATION     '
0487 83D4 52524F52 
0488 83D8 20494E20 
0489 83DC 4C4F4341 
0490 83E0 54494F4E 
0491 83E9 20202000         DB   '   ',0
0492 83ED 2A290C           LD   HL,(CLP)
0493 83F0 CD5082           CALL PNTHEX     ;SKRIV LOC. UD PÅ CRT
0494 83F3 3E08             LD   A,08H▶8a◀0495 83F5 85               ADD  A,L
0496 83F6 6F               LD   L,A
0497 83F7 22290C           LD   (CLP),HL
0498 83FA D1               POP  DE
0499 83FB 7A               LD   A,D
0500 83FC DF68             SCAL B2HEX      ;SKRIV BYTEN UD PÅ CRT
0501 83FE E1               POP  HL
0502 83FF C9               RET
0503               ;
0504 8400 2A202A20 MES1:   DB   '* * BLOWING * *          LOOP  '
0505 8404 424C4F57 
0506 8408 494E4720 
0507 840C 2A202A20 
0508 8410 20202020 
0509 841F 4C4F4341         DB   'LOCATION'
0510 8423 54494F4E 
0511               ;
0512 8427 2A202A20 MES2:   DB   '* * VERIFYING * *             '
0513 842B 56455249 
0514 842F 4659494E 
0515 8433 47202A20 
0516 8437 2A202020 
0517 8445 20202020         DB   '         '
0518 8449 20202020 
0519 844D 20       
0520               ;
0521               ;    SKRIVER TEXT UD I ØVERSTE LINIE PÅ CRT
0522               ;
0523 844E C5       TLINE:  PUSH BC
0524 844F EF0C00           DB   0EFH,0CH,0
0525 8452 11CA0B           LD   DE,CFP
0526 8455 012700           LD   BC,39
0527 8458 EDB0             LDIR
0528 845A C1               POP  BC
0529 845B C9               RET
0530               ;
0531               ;DENNE RUTINE FYLDER FF I RAM-BUFFER.
0532               ;BRUGES TIL VERIFY AF SLETTET EPROM, OG
0533               ;HVIS KUN DELE AF EPROM SKAL PROGRAMMERES
0534               ;
0535 845C CDE181   FFIRAM: CALL INARGS
0536 845F 2A0C0C           LD   HL,(ARG1)  ;BUFFER START ADR.
0537 8462 1610             LD   D,16       ;BLOKKE AF 256
0538 8464 0600             LD   B,0        ;BYTETELLER
0539 8466 3EFF             LD   A,0FFH
0540 8468 77       FFLOOP: LD   (HL),A
0541 8469 23               INC  HL
0542 846A 05               DEC  B
0543 846B 20FB             JR   NZ,FFLOOP
0544 846D 15               DEC  D
0545 846E 20F8             JR   NZ,FFLOOP
0546 8470 C32B80           JP   MENU
0547               ;
0548               ;MODYFY RUTINE KALDER NASSYS MODIFY
0549               ;▶8a◀0550 8473 CDE181   MODIFY: CALL INARGS
0551 8476 DF4D             SCAL 'M'
0552 8478 C32B80           JP   MENU
0553               ;
0554               ;COPY COMMAND FLYTTER DATA I MEMORYEN
0555               ;FRA = ARG 1, TIL = ARG 2, ANTAL BYTE = ARG 3
0556               ;
0557 847B CDE181   COPY:   CALL INARGS     ;GET ARGUMENTS FROM CRT
0558 847E DF60             SCAL ARGS       ;GET ARGUMENTS
0559 8480 EDB0             LDIR            ;COPY DATA
0560 8482 C32B80           JP   MENU
0561               ;
0562               ;TABULERINGS RUTINE KALDER "T"COMANDO I NAS SYS
0563               ;
0564 8485 CDE181   TAB:    CALL INARGS     ;GET ARGUMENTS FROM CRT
0565 8488 DF60             SCAL ARGS       ;GE ARGUMENTS
0566 848A DF54             SCAL 'T'        ;KALD T UNDER NAS SYS
0567 848C C32B80           JP   MENU
0568               ;
0569 848F                  END
«eof»